aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLi-Wen Hsu <lwhsu@FreeBSD.org>2014-05-29 16:48:07 +0000
committerLi-Wen Hsu <lwhsu@FreeBSD.org>2014-05-29 16:48:07 +0000
commit163ba6b752e2d1b900f88ba29324ed5998b14551 (patch)
tree3010592efec60252103b5e76eab918b0491bb533
parent536050cea8f16998f8fbddf6b4aff8469e149ec0 (diff)
Convert zh_TW from Big5 to UTF-8.
Approved by: bcr
Notes
svn path=/head/; revision=44974
-rw-r--r--Makefile2
-rw-r--r--en_US.ISO8859-1/books/faq/book.xml4
-rw-r--r--en_US.ISO8859-1/books/fdp-primer/structure/chapter.xml2
-rw-r--r--en_US.ISO8859-1/htdocs/Makefile2
-rw-r--r--zh_TW.Big5/articles/Makefile.inc5
-rw-r--r--zh_TW.Big5/articles/contributing/article.xml465
-rw-r--r--zh_TW.Big5/articles/cvs-freebsd/article.xml570
-rw-r--r--zh_TW.Big5/articles/mailing-list-faq/article.xml416
-rw-r--r--zh_TW.Big5/articles/nanobsd/article.xml434
-rw-r--r--zh_TW.Big5/articles/remote-install/article.xml475
-rw-r--r--zh_TW.Big5/books/Makefile.inc5
-rw-r--r--zh_TW.Big5/books/faq/book.xml11876
-rw-r--r--zh_TW.Big5/books/fdp-primer/overview/chapter.xml241
-rw-r--r--zh_TW.Big5/books/fdp-primer/tools/chapter.xml235
-rw-r--r--zh_TW.Big5/books/fdp-primer/translations/chapter.xml383
-rw-r--r--zh_TW.Big5/books/fdp-primer/writing-style/chapter.xml440
-rw-r--r--zh_TW.Big5/books/handbook/basics/chapter.xml2366
-rw-r--r--zh_TW.Big5/books/handbook/desktop/chapter.xml1037
-rw-r--r--zh_TW.Big5/books/handbook/geom/chapter.xml356
-rw-r--r--zh_TW.Big5/books/handbook/introduction/chapter.xml842
-rw-r--r--zh_TW.Big5/books/handbook/jails/chapter.xml793
-rw-r--r--zh_TW.Big5/books/handbook/ports/chapter.xml1300
-rw-r--r--zh_TW.Big5/htdocs/about.xml99
-rw-r--r--zh_TW.Big5/htdocs/applications.xml129
-rw-r--r--zh_TW.Big5/htdocs/docs/webresources.xml111
-rw-r--r--zh_TW.Big5/htdocs/send-pr.xml162
-rw-r--r--zh_TW.Big5/htdocs/support.xml40
-rw-r--r--zh_TW.Big5/share/xml/authors.ent94
-rw-r--r--zh_TW.Big5/share/xml/header.l10n.ent41
-rw-r--r--zh_TW.Big5/share/xml/navibar.l10n.ent167
-rw-r--r--zh_TW.Big5/share/xml/news.xml2579
-rw-r--r--zh_TW.UTF-8/Makefile (renamed from zh_TW.Big5/Makefile)0
-rw-r--r--zh_TW.UTF-8/Makefile.inc (renamed from zh_TW.Big5/Makefile.inc)0
-rw-r--r--zh_TW.UTF-8/articles/Makefile (renamed from zh_TW.Big5/articles/Makefile)0
-rw-r--r--zh_TW.UTF-8/articles/Makefile.inc5
-rw-r--r--zh_TW.UTF-8/articles/contributing/Makefile (renamed from zh_TW.Big5/articles/contributing/Makefile)0
-rw-r--r--zh_TW.UTF-8/articles/contributing/article.xml465
-rw-r--r--zh_TW.UTF-8/articles/cvs-freebsd/Makefile (renamed from zh_TW.Big5/articles/cvs-freebsd/Makefile)0
-rw-r--r--zh_TW.UTF-8/articles/cvs-freebsd/article.xml570
-rw-r--r--zh_TW.UTF-8/articles/freebsd-questions/Makefile (renamed from zh_TW.Big5/articles/freebsd-questions/Makefile)0
-rw-r--r--zh_TW.UTF-8/articles/freebsd-questions/article.xml (renamed from zh_TW.Big5/articles/freebsd-questions/article.xml)12
-rw-r--r--zh_TW.UTF-8/articles/hubs/Makefile (renamed from zh_TW.Big5/articles/hubs/Makefile)0
-rw-r--r--zh_TW.UTF-8/articles/hubs/article.xml (renamed from zh_TW.Big5/articles/hubs/article.xml)48
-rw-r--r--zh_TW.UTF-8/articles/mailing-list-faq/Makefile (renamed from zh_TW.Big5/articles/mailing-list-faq/Makefile)0
-rw-r--r--zh_TW.UTF-8/articles/mailing-list-faq/article.xml416
-rw-r--r--zh_TW.UTF-8/articles/nanobsd/Makefile (renamed from zh_TW.Big5/articles/nanobsd/Makefile)0
-rw-r--r--zh_TW.UTF-8/articles/nanobsd/article.xml434
-rw-r--r--zh_TW.UTF-8/articles/pr-guidelines/Makefile (renamed from zh_TW.Big5/articles/pr-guidelines/Makefile)0
-rw-r--r--zh_TW.UTF-8/articles/pr-guidelines/article.xml (renamed from zh_TW.Big5/articles/pr-guidelines/article.xml)110
-rw-r--r--zh_TW.UTF-8/articles/problem-reports/Makefile (renamed from zh_TW.Big5/articles/problem-reports/Makefile)0
-rw-r--r--zh_TW.UTF-8/articles/problem-reports/article.xml (renamed from zh_TW.Big5/articles/problem-reports/article.xml)2
-rw-r--r--zh_TW.UTF-8/articles/remote-install/Makefile (renamed from zh_TW.Big5/articles/remote-install/Makefile)0
-rw-r--r--zh_TW.UTF-8/articles/remote-install/article.xml475
-rw-r--r--zh_TW.UTF-8/books/Makefile (renamed from zh_TW.Big5/books/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/Makefile.inc5
-rw-r--r--zh_TW.UTF-8/books/developers-handbook/Makefile (renamed from zh_TW.Big5/books/developers-handbook/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/developers-handbook/book.xml (renamed from zh_TW.Big5/books/developers-handbook/book.xml)28
-rw-r--r--zh_TW.UTF-8/books/developers-handbook/chapters.ent (renamed from zh_TW.Big5/books/developers-handbook/chapters.ent)2
-rw-r--r--zh_TW.UTF-8/books/developers-handbook/introduction/chapter.xml (renamed from zh_TW.Big5/books/developers-handbook/introduction/chapter.xml)58
-rw-r--r--zh_TW.UTF-8/books/developers-handbook/ipv6/chapter.xml (renamed from zh_TW.Big5/books/developers-handbook/ipv6/chapter.xml)2
-rw-r--r--zh_TW.UTF-8/books/developers-handbook/kerneldebug/Makefile (renamed from zh_TW.Big5/books/developers-handbook/kerneldebug/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/developers-handbook/kerneldebug/chapter.xml (renamed from zh_TW.Big5/books/developers-handbook/kerneldebug/chapter.xml)2
-rw-r--r--zh_TW.UTF-8/books/developers-handbook/l10n/chapter.xml (renamed from zh_TW.Big5/books/developers-handbook/l10n/chapter.xml)2
-rw-r--r--zh_TW.UTF-8/books/developers-handbook/policies/Makefile (renamed from zh_TW.Big5/books/developers-handbook/policies/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/developers-handbook/policies/chapter.xml (renamed from zh_TW.Big5/books/developers-handbook/policies/chapter.xml)2
-rw-r--r--zh_TW.UTF-8/books/developers-handbook/secure/chapter.xml (renamed from zh_TW.Big5/books/developers-handbook/secure/chapter.xml)2
-rw-r--r--zh_TW.UTF-8/books/developers-handbook/sockets/chapter.xml (renamed from zh_TW.Big5/books/developers-handbook/sockets/chapter.xml)2
-rw-r--r--zh_TW.UTF-8/books/developers-handbook/testing/chapter.xml (renamed from zh_TW.Big5/books/developers-handbook/testing/chapter.xml)2
-rw-r--r--zh_TW.UTF-8/books/developers-handbook/tools/chapter.xml (renamed from zh_TW.Big5/books/developers-handbook/tools/chapter.xml)592
-rw-r--r--zh_TW.UTF-8/books/developers-handbook/x86/chapter.xml (renamed from zh_TW.Big5/books/developers-handbook/x86/chapter.xml)2
-rw-r--r--zh_TW.UTF-8/books/faq/Makefile (renamed from zh_TW.Big5/books/faq/Makefile)2
-rw-r--r--zh_TW.UTF-8/books/faq/book.xml11876
-rw-r--r--zh_TW.UTF-8/books/fdp-primer/Makefile (renamed from zh_TW.Big5/books/fdp-primer/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/fdp-primer/book.xml (renamed from zh_TW.Big5/books/fdp-primer/book.xml)94
-rw-r--r--zh_TW.UTF-8/books/fdp-primer/chapters.ent (renamed from zh_TW.Big5/books/fdp-primer/chapters.ent)2
-rw-r--r--zh_TW.UTF-8/books/fdp-primer/doc-build/chapter.xml (renamed from zh_TW.Big5/books/fdp-primer/doc-build/chapter.xml)2
-rw-r--r--zh_TW.UTF-8/books/fdp-primer/examples/appendix.xml (renamed from zh_TW.Big5/books/fdp-primer/examples/appendix.xml)86
-rw-r--r--zh_TW.UTF-8/books/fdp-primer/overview/chapter.xml241
-rw-r--r--zh_TW.UTF-8/books/fdp-primer/psgml-mode/chapter.xml (renamed from zh_TW.Big5/books/fdp-primer/psgml-mode/chapter.xml)2
-rw-r--r--zh_TW.UTF-8/books/fdp-primer/see-also/chapter.xml (renamed from zh_TW.Big5/books/fdp-primer/see-also/chapter.xml)4
-rw-r--r--zh_TW.UTF-8/books/fdp-primer/sgml-markup/chapter.xml (renamed from zh_TW.Big5/books/fdp-primer/sgml-markup/chapter.xml)2
-rw-r--r--zh_TW.UTF-8/books/fdp-primer/sgml-primer/chapter.xml (renamed from zh_TW.Big5/books/fdp-primer/sgml-primer/chapter.xml)26
-rw-r--r--zh_TW.UTF-8/books/fdp-primer/structure/chapter.xml (renamed from zh_TW.Big5/books/fdp-primer/structure/chapter.xml)4
-rw-r--r--zh_TW.UTF-8/books/fdp-primer/stylesheets/chapter.xml (renamed from zh_TW.Big5/books/fdp-primer/stylesheets/chapter.xml)2
-rw-r--r--zh_TW.UTF-8/books/fdp-primer/the-website/chapter.xml (renamed from zh_TW.Big5/books/fdp-primer/the-website/chapter.xml)114
-rw-r--r--zh_TW.UTF-8/books/fdp-primer/tools/chapter.xml235
-rw-r--r--zh_TW.UTF-8/books/fdp-primer/translations/chapter.xml383
-rw-r--r--zh_TW.UTF-8/books/fdp-primer/writing-style/chapter.xml440
-rw-r--r--zh_TW.UTF-8/books/handbook/Makefile (renamed from zh_TW.Big5/books/handbook/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/advanced-networking/Makefile (renamed from zh_TW.Big5/books/handbook/advanced-networking/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/advanced-networking/chapter.xml (renamed from zh_TW.Big5/books/handbook/advanced-networking/chapter.xml)74
-rw-r--r--zh_TW.UTF-8/books/handbook/audit/Makefile (renamed from zh_TW.Big5/books/handbook/audit/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/audit/chapter.xml (renamed from zh_TW.Big5/books/handbook/audit/chapter.xml)2
-rw-r--r--zh_TW.UTF-8/books/handbook/basics/Makefile (renamed from zh_TW.Big5/books/handbook/basics/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/basics/chapter.xml2366
-rw-r--r--zh_TW.UTF-8/books/handbook/basics/example-dir1.dot (renamed from zh_TW.Big5/books/handbook/basics/example-dir1.dot)0
-rw-r--r--zh_TW.UTF-8/books/handbook/basics/example-dir2.dot (renamed from zh_TW.Big5/books/handbook/basics/example-dir2.dot)0
-rw-r--r--zh_TW.UTF-8/books/handbook/basics/example-dir3.dot (renamed from zh_TW.Big5/books/handbook/basics/example-dir3.dot)0
-rw-r--r--zh_TW.UTF-8/books/handbook/basics/example-dir4.dot (renamed from zh_TW.Big5/books/handbook/basics/example-dir4.dot)0
-rw-r--r--zh_TW.UTF-8/books/handbook/basics/example-dir5.dot (renamed from zh_TW.Big5/books/handbook/basics/example-dir5.dot)0
-rw-r--r--zh_TW.UTF-8/books/handbook/bibliography/Makefile (renamed from zh_TW.Big5/books/handbook/bibliography/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/bibliography/chapter.xml (renamed from zh_TW.Big5/books/handbook/bibliography/chapter.xml)178
-rw-r--r--zh_TW.UTF-8/books/handbook/book.xml (renamed from zh_TW.Big5/books/handbook/book.xml)104
-rw-r--r--zh_TW.UTF-8/books/handbook/boot/Makefile (renamed from zh_TW.Big5/books/handbook/boot/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/boot/chapter.xml (renamed from zh_TW.Big5/books/handbook/boot/chapter.xml)12
-rw-r--r--zh_TW.UTF-8/books/handbook/chapters.ent (renamed from zh_TW.Big5/books/handbook/chapters.ent)2
-rw-r--r--zh_TW.UTF-8/books/handbook/colophon.xml (renamed from zh_TW.Big5/books/handbook/colophon.xml)2
-rw-r--r--zh_TW.UTF-8/books/handbook/config/Makefile (renamed from zh_TW.Big5/books/handbook/config/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/config/chapter.xml (renamed from zh_TW.Big5/books/handbook/config/chapter.xml)214
-rw-r--r--zh_TW.UTF-8/books/handbook/cutting-edge/Makefile (renamed from zh_TW.Big5/books/handbook/cutting-edge/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/cutting-edge/chapter.xml (renamed from zh_TW.Big5/books/handbook/cutting-edge/chapter.xml)790
-rw-r--r--zh_TW.UTF-8/books/handbook/desktop/Makefile (renamed from zh_TW.Big5/books/handbook/desktop/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/desktop/chapter.xml1037
-rw-r--r--zh_TW.UTF-8/books/handbook/disks/Makefile (renamed from zh_TW.Big5/books/handbook/disks/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/disks/chapter.xml (renamed from zh_TW.Big5/books/handbook/disks/chapter.xml)798
-rw-r--r--zh_TW.UTF-8/books/handbook/eresources/Makefile (renamed from zh_TW.Big5/books/handbook/eresources/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/eresources/chapter.xml (renamed from zh_TW.Big5/books/handbook/eresources/chapter.xml)288
-rw-r--r--zh_TW.UTF-8/books/handbook/firewalls/Makefile (renamed from zh_TW.Big5/books/handbook/firewalls/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/firewalls/chapter.xml (renamed from zh_TW.Big5/books/handbook/firewalls/chapter.xml)440
-rw-r--r--zh_TW.UTF-8/books/handbook/geom/Makefile (renamed from zh_TW.Big5/books/handbook/geom/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/geom/chapter.xml356
-rw-r--r--zh_TW.UTF-8/books/handbook/install/Makefile (renamed from zh_TW.Big5/books/handbook/install/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/install/chapter.xml (renamed from zh_TW.Big5/books/handbook/install/chapter.xml)2144
-rw-r--r--zh_TW.UTF-8/books/handbook/install/example-dir1.dot (renamed from zh_TW.Big5/books/handbook/install/example-dir1.dot)0
-rw-r--r--zh_TW.UTF-8/books/handbook/install/example-dir2.dot (renamed from zh_TW.Big5/books/handbook/install/example-dir2.dot)0
-rw-r--r--zh_TW.UTF-8/books/handbook/install/example-dir3.dot (renamed from zh_TW.Big5/books/handbook/install/example-dir3.dot)0
-rw-r--r--zh_TW.UTF-8/books/handbook/install/example-dir4.dot (renamed from zh_TW.Big5/books/handbook/install/example-dir4.dot)0
-rw-r--r--zh_TW.UTF-8/books/handbook/install/example-dir5.dot (renamed from zh_TW.Big5/books/handbook/install/example-dir5.dot)0
-rw-r--r--zh_TW.UTF-8/books/handbook/introduction/Makefile (renamed from zh_TW.Big5/books/handbook/introduction/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/introduction/chapter.xml842
-rw-r--r--zh_TW.UTF-8/books/handbook/jails/chapter.xml793
-rw-r--r--zh_TW.UTF-8/books/handbook/kernelconfig/Makefile (renamed from zh_TW.Big5/books/handbook/kernelconfig/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/kernelconfig/chapter.xml (renamed from zh_TW.Big5/books/handbook/kernelconfig/chapter.xml)448
-rw-r--r--zh_TW.UTF-8/books/handbook/l10n/Makefile (renamed from zh_TW.Big5/books/handbook/l10n/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/l10n/chapter.xml (renamed from zh_TW.Big5/books/handbook/l10n/chapter.xml)104
-rw-r--r--zh_TW.UTF-8/books/handbook/linuxemu/Makefile (renamed from zh_TW.Big5/books/handbook/linuxemu/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/linuxemu/chapter.xml (renamed from zh_TW.Big5/books/handbook/linuxemu/chapter.xml)72
-rw-r--r--zh_TW.UTF-8/books/handbook/mac/Makefile (renamed from zh_TW.Big5/books/handbook/mac/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/mac/chapter.xml (renamed from zh_TW.Big5/books/handbook/mac/chapter.xml)2
-rw-r--r--zh_TW.UTF-8/books/handbook/mail/Makefile (renamed from zh_TW.Big5/books/handbook/mail/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/mail/chapter.xml (renamed from zh_TW.Big5/books/handbook/mail/chapter.xml)98
-rw-r--r--zh_TW.UTF-8/books/handbook/mirrors/Makefile (renamed from zh_TW.Big5/books/handbook/mirrors/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/mirrors/chapter.xml (renamed from zh_TW.Big5/books/handbook/mirrors/chapter.xml)42
-rw-r--r--zh_TW.UTF-8/books/handbook/multimedia/Makefile (renamed from zh_TW.Big5/books/handbook/multimedia/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/multimedia/chapter.xml (renamed from zh_TW.Big5/books/handbook/multimedia/chapter.xml)164
-rw-r--r--zh_TW.UTF-8/books/handbook/network-servers/Makefile (renamed from zh_TW.Big5/books/handbook/network-servers/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/network-servers/chapter.xml (renamed from zh_TW.Big5/books/handbook/network-servers/chapter.xml)4
-rw-r--r--zh_TW.UTF-8/books/handbook/pgpkeys/Makefile (renamed from zh_TW.Big5/books/handbook/pgpkeys/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/pgpkeys/chapter.xml (renamed from zh_TW.Big5/books/handbook/pgpkeys/chapter.xml)2
-rw-r--r--zh_TW.UTF-8/books/handbook/ports/Makefile (renamed from zh_TW.Big5/books/handbook/ports/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/ports/chapter.xml1300
-rw-r--r--zh_TW.UTF-8/books/handbook/ppp-and-slip/Makefile (renamed from zh_TW.Big5/books/handbook/ppp-and-slip/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/ppp-and-slip/chapter.xml (renamed from zh_TW.Big5/books/handbook/ppp-and-slip/chapter.xml)2
-rw-r--r--zh_TW.UTF-8/books/handbook/preface/preface.xml (renamed from zh_TW.Big5/books/handbook/preface/preface.xml)218
-rw-r--r--zh_TW.UTF-8/books/handbook/printing/Makefile (renamed from zh_TW.Big5/books/handbook/printing/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/printing/chapter.xml (renamed from zh_TW.Big5/books/handbook/printing/chapter.xml)264
-rw-r--r--zh_TW.UTF-8/books/handbook/security/Makefile (renamed from zh_TW.Big5/books/handbook/security/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/security/chapter.xml (renamed from zh_TW.Big5/books/handbook/security/chapter.xml)176
-rw-r--r--zh_TW.UTF-8/books/handbook/serialcomms/Makefile (renamed from zh_TW.Big5/books/handbook/serialcomms/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/serialcomms/chapter.xml (renamed from zh_TW.Big5/books/handbook/serialcomms/chapter.xml)2
-rw-r--r--zh_TW.UTF-8/books/handbook/txtfiles.ent (renamed from zh_TW.Big5/books/handbook/txtfiles.ent)2
-rw-r--r--zh_TW.UTF-8/books/handbook/users/Makefile (renamed from zh_TW.Big5/books/handbook/users/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/users/chapter.xml (renamed from zh_TW.Big5/books/handbook/users/chapter.xml)344
-rw-r--r--zh_TW.UTF-8/books/handbook/vinum/Makefile (renamed from zh_TW.Big5/books/handbook/vinum/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/vinum/chapter.xml (renamed from zh_TW.Big5/books/handbook/vinum/chapter.xml)2
-rw-r--r--zh_TW.UTF-8/books/handbook/virtualization/Makefile (renamed from zh_TW.Big5/books/handbook/virtualization/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/virtualization/chapter.xml (renamed from zh_TW.Big5/books/handbook/virtualization/chapter.xml)460
-rw-r--r--zh_TW.UTF-8/books/handbook/x11/Makefile (renamed from zh_TW.Big5/books/handbook/x11/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/handbook/x11/chapter.xml (renamed from zh_TW.Big5/books/handbook/x11/chapter.xml)436
-rw-r--r--zh_TW.UTF-8/books/porters-handbook/Makefile (renamed from zh_TW.Big5/books/porters-handbook/Makefile)0
-rw-r--r--zh_TW.UTF-8/books/porters-handbook/book.xml (renamed from zh_TW.Big5/books/porters-handbook/book.xml)1010
-rw-r--r--zh_TW.UTF-8/htdocs/Makefile (renamed from zh_TW.Big5/htdocs/Makefile)2
-rw-r--r--zh_TW.UTF-8/htdocs/Makefile.inc (renamed from zh_TW.Big5/htdocs/Makefile.inc)0
-rw-r--r--zh_TW.UTF-8/htdocs/about.xml99
-rw-r--r--zh_TW.UTF-8/htdocs/applications.xml129
-rw-r--r--zh_TW.UTF-8/htdocs/art.xml (renamed from zh_TW.Big5/htdocs/art.xml)62
-rw-r--r--zh_TW.UTF-8/htdocs/availability.xml (renamed from zh_TW.Big5/htdocs/availability.xml)15
-rw-r--r--zh_TW.UTF-8/htdocs/community.xml (renamed from zh_TW.Big5/htdocs/community.xml)14
-rw-r--r--zh_TW.UTF-8/htdocs/developers.xml (renamed from zh_TW.Big5/htdocs/developers.xml)38
-rw-r--r--zh_TW.UTF-8/htdocs/doc/Makefile (renamed from zh_TW.Big5/htdocs/doc/Makefile)0
-rw-r--r--zh_TW.UTF-8/htdocs/docs.xml (renamed from zh_TW.Big5/htdocs/docs.xml)10
-rw-r--r--zh_TW.UTF-8/htdocs/docs/Makefile (renamed from zh_TW.Big5/htdocs/docs/Makefile)0
-rw-r--r--zh_TW.UTF-8/htdocs/docs/books.xml (renamed from zh_TW.Big5/htdocs/docs/books.xml)228
-rw-r--r--zh_TW.UTF-8/htdocs/docs/webresources.xml111
-rw-r--r--zh_TW.UTF-8/htdocs/index.xsl (renamed from zh_TW.Big5/htdocs/index.xsl)82
-rw-r--r--zh_TW.UTF-8/htdocs/layout/Makefile (renamed from zh_TW.Big5/htdocs/layout/Makefile)0
-rw-r--r--zh_TW.UTF-8/htdocs/layout/Makefile.inc (renamed from zh_TW.Big5/htdocs/layout/Makefile.inc)0
-rw-r--r--zh_TW.UTF-8/htdocs/layout/css/Makefile (renamed from zh_TW.Big5/htdocs/layout/css/Makefile)0
-rw-r--r--zh_TW.UTF-8/htdocs/layout/css/fixed.css (renamed from zh_TW.Big5/htdocs/layout/css/fixed.css)0
-rw-r--r--zh_TW.UTF-8/htdocs/layout/css/fixed_large.css (renamed from zh_TW.Big5/htdocs/layout/css/fixed_large.css)0
-rw-r--r--zh_TW.UTF-8/htdocs/layout/css/global.css (renamed from zh_TW.Big5/htdocs/layout/css/global.css)0
-rw-r--r--zh_TW.UTF-8/htdocs/layout/css/layout.css (renamed from zh_TW.Big5/htdocs/layout/css/layout.css)0
-rw-r--r--zh_TW.UTF-8/htdocs/layout/css/navigation.css (renamed from zh_TW.Big5/htdocs/layout/css/navigation.css)0
-rw-r--r--zh_TW.UTF-8/htdocs/layout/css/text.css (renamed from zh_TW.Big5/htdocs/layout/css/text.css)0
-rw-r--r--zh_TW.UTF-8/htdocs/logo.xml (renamed from zh_TW.Big5/htdocs/logo.xml)60
-rw-r--r--zh_TW.UTF-8/htdocs/send-pr.xml162
-rw-r--r--zh_TW.UTF-8/htdocs/support.xml40
-rw-r--r--zh_TW.UTF-8/htdocs/where.xml (renamed from zh_TW.Big5/htdocs/where.xml)208
-rw-r--r--zh_TW.UTF-8/share/xml/authors.ent94
-rw-r--r--zh_TW.UTF-8/share/xml/catalog.xml (renamed from zh_TW.Big5/share/xml/catalog.xml)0
-rw-r--r--zh_TW.UTF-8/share/xml/entities.ent (renamed from zh_TW.Big5/share/xml/entities.ent)0
-rw-r--r--zh_TW.UTF-8/share/xml/freebsd-dblatex.xsl (renamed from zh_TW.Big5/share/xml/freebsd-dblatex.xsl)0
-rw-r--r--zh_TW.UTF-8/share/xml/freebsd-fo.xsl (renamed from zh_TW.Big5/share/xml/freebsd-fo.xsl)12
-rw-r--r--zh_TW.UTF-8/share/xml/freebsd-xhtml.xsl (renamed from zh_TW.Big5/share/xml/freebsd-xhtml.xsl)16
-rw-r--r--zh_TW.UTF-8/share/xml/glossary.ent (renamed from zh_TW.Big5/share/xml/glossary.ent)46
-rw-r--r--zh_TW.UTF-8/share/xml/header.l10n.ent41
-rw-r--r--zh_TW.UTF-8/share/xml/l10n.ent (renamed from zh_TW.Big5/share/xml/l10n.ent)18
-rw-r--r--zh_TW.UTF-8/share/xml/libcommon.xsl (renamed from zh_TW.Big5/share/xml/libcommon.xsl)68
-rw-r--r--zh_TW.UTF-8/share/xml/mailing-lists.ent (renamed from zh_TW.Big5/share/xml/mailing-lists.ent)198
-rw-r--r--zh_TW.UTF-8/share/xml/navibar.l10n.ent167
-rw-r--r--zh_TW.UTF-8/share/xml/news.xml2579
-rw-r--r--zh_TW.UTF-8/share/xml/press.xml (renamed from zh_TW.Big5/share/xml/press.xml)308
-rw-r--r--zh_TW.UTF-8/share/xml/release.l10n.ent (renamed from zh_TW.Big5/share/xml/release.l10n.ent)62
-rw-r--r--zh_TW.UTF-8/share/xml/trademarks.ent (renamed from zh_TW.Big5/share/xml/trademarks.ent)174
-rw-r--r--zh_TW.UTF-8/share/xml/urls.ent (renamed from zh_TW.Big5/share/xml/urls.ent)4
215 files changed, 31533 insertions, 31532 deletions
diff --git a/Makefile b/Makefile
index a1379b792b..fe941a2e57 100644
--- a/Makefile
+++ b/Makefile
@@ -28,7 +28,7 @@ SUBDIR+= ru_RU.KOI8-R
SUBDIR+= sr_YU.ISO8859-2
SUBDIR+= tr_TR.ISO8859-9
SUBDIR+= zh_CN.UTF-8
-SUBDIR+= zh_TW.Big5
+SUBDIR+= zh_TW.UTF-8
.endif
SUBDIR+= share
diff --git a/en_US.ISO8859-1/books/faq/book.xml b/en_US.ISO8859-1/books/faq/book.xml
index b1a481b5b6..fb553bc60d 100644
--- a/en_US.ISO8859-1/books/faq/book.xml
+++ b/en_US.ISO8859-1/books/faq/book.xml
@@ -792,9 +792,9 @@
</row>
<row>
- <entry><literal>zh_TW.Big5</literal></entry>
+ <entry><literal>zh_TW.UTF-8</literal></entry>
- <entry>Traditional Chinese (Taiwan, Big5
+ <entry>Traditional Chinese (Taiwan, UTF-8
encoding)</entry>
</row>
</tbody>
diff --git a/en_US.ISO8859-1/books/fdp-primer/structure/chapter.xml b/en_US.ISO8859-1/books/fdp-primer/structure/chapter.xml
index ee20be4d81..9d0635be5d 100644
--- a/en_US.ISO8859-1/books/fdp-primer/structure/chapter.xml
+++ b/en_US.ISO8859-1/books/fdp-primer/structure/chapter.xml
@@ -100,7 +100,7 @@
<entry>One directory exists for each available translation
and encoding of the documentation, for example
<filename>en_US.ISO8859-1/</filename>
- and <filename>zh_TW.Big5/</filename>.
+ and <filename>zh_TW.UTF-8/</filename>.
The names are long, but by fully specifying the language
and encoding we prevent any future headaches when a
translation team wants to provide documentation in the
diff --git a/en_US.ISO8859-1/htdocs/Makefile b/en_US.ISO8859-1/htdocs/Makefile
index 85ec9a80b7..3f4bed8bbb 100644
--- a/en_US.ISO8859-1/htdocs/Makefile
+++ b/en_US.ISO8859-1/htdocs/Makefile
@@ -103,7 +103,7 @@ WEB_LANG= da_DK.ISO8859-1 \
pt_BR.ISO8859-1 \
ru_RU.KOI8-R \
zh_CN.UTF-8 \
- zh_TW.Big5
+ zh_TW.UTF-8
.endif
.if !defined(ENGLISH_ONLY) || empty(ENGLISH_ONLY)
.for _D in ${WEB_LANG}
diff --git a/zh_TW.Big5/articles/Makefile.inc b/zh_TW.Big5/articles/Makefile.inc
deleted file mode 100644
index 748b0b8f6c..0000000000
--- a/zh_TW.Big5/articles/Makefile.inc
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# $FreeBSD$
-#
-
-DESTDIR?= ${DOCDIR}/zh_TW.Big5/articles/${.CURDIR:T}
diff --git a/zh_TW.Big5/articles/contributing/article.xml b/zh_TW.Big5/articles/contributing/article.xml
deleted file mode 100644
index b5ff35f1e8..0000000000
--- a/zh_TW.Big5/articles/contributing/article.xml
+++ /dev/null
@@ -1,465 +0,0 @@
-<?xml version="1.0" encoding="big5"?>
-<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
- "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
-<!--
- The FreeBSD Documentation Project
- The FreeBSD Chinese (Traditional) Documentation Project
-
- Original Revision: 1.506
- Chased Revision: 1.508
--->
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="zh_tw">
- <info><title>U FreeBSD</title>
-
-
- <abstract>
- <para>L׬OӤHάOUز´ApGƱ欰 FreeBSD UAiHb夤XAkC</para>
- </abstract>
-
- <authorgroup>
- <author><personname><firstname>Jordan</firstname><surname>Hubbard</surname></personname><contrib>ۡG </contrib></author>
- </authorgroup>
-
- <legalnotice xml:id="trademarks" role="trademarks">
- &tm-attrib.freebsd;
- &tm-attrib.ieee;
- &tm-attrib.general;
- </legalnotice>
-
- <pubdate>$FreeBSD$</pubdate>
-
- <releaseinfo>$FreeBSD$</releaseinfo>
-
- </info>
-
- <indexterm><primary>^m</primary></indexterm>
-
- <para>AƱ FreeBSD IܡHӦnFAڭwACFreeBSD
- OsjϥΪ̪^m~oHoijCڭ̤ȫD`P±zҰ^mAӥBAoǤu@ FreeBSD oi]nC</para>
-
-
- <para>]\PzQPAzJoO@WX⪺ ProgrammerA]LM
- FreeBSD core team ܦnpAڭ̷|@Pݱzu@C
- FreeBSD }oHMyAja޳NMUA~֤]D`sxC
- MӡACѧڭ̳bW[u@AӭWSHA]ڭHwzUC</para>
-
- <para>FreeBSD pҳBzO@ӧ㪺@~tҡAӤuO@ kernel άO@ǹsu]C
- ]Aڭ̪ <filename>TODO</filename> ݿȦC̥]tUU˪u@G
- qBϥΪ̴աBdemoAtΦw˵{MM~ kernel }oC
- ]Lױz޳NǦpAqƦػAiHUoӭpC</para>
-
- <para>ڭ̹yqƩM FreeBSD u@~MڭpôC
- zݭn@ǯSXiӨϱz~B_ӶܡH
- z|o{ڭַ̫ܼNzШDADOSO}_jǪC
- zO_qƬWȷ~ȡH ڭ̨UzaA
- ڭ̤]\iHbYǤ譱ۤX@C
- ۥѳnɥbVO}¦خ(On}oBPM@)A
- ڭ̧Ʊбzܤ֯൹@|C</para>
-
- <sect1 xml:id="contrib-what">
- <title>ڭ̪ݨD</title>
-
- <para>UCXF@ǻݭnȩMlpA
- ̥N <filename>TODO</filename>(ݿȦC)
- CNAHΨϥΪ̪nDC</para>
-
- <sect2 xml:id="non-programmer-tasks">
- <title>bi椤(D{}oH)</title>
-
- <para>ܦhѥ[ FreeBSD pHO ProgrammerC
- oӭp̦󼶼g̡B]pvBHΧ޳N䴩HC
- oǸquӻAL̥uݭn^m@ǮɶAåB㦳DzߪN@C</para>
-
- <orderedlist>
- <listitem>
- <para>ziHɱ`½\ FAQ MU(Handbook)
- ApGo{MaAάOXɩyAƦܧTaA
- ЧiDڭ̡CMAYබḼץAçɻ~Hڭ̡ANnFC:)
- (SGML äǡAڭ̤]Ϲz@ ASCII ¤r)C</para>
- </listitem>
-
- <listitem>
- <para>Uڭ̧ FreeBSD ½ĶAyC
- pGAywgsbFA
- ]iH½Ķ@B~AΪˬdǤwO_̷sC
- ziH²ݬ FreeBSD p <link xlink:href="&url.books.fdp-primer;/translations.html">½Ķɪ`D</link>C
- ѥ[½Ķu@AäOzntxľ½ĶҦ FreeBSD C
- quAnh֤u@MzN@C@YӤH}l½ĶFA
- XG@w|LHѻPoǤu@ӡC
- pGɶAΪ̺Oh½ĶAiHh½Ķw˫nC</para>
- </listitem>
-
- <listitem>
- <para>\Ū &a.questions; ð½\(ƦܦWߦao˰) &ng.misc;
- CPOHɱzM~ѡA
- UL̸ѨMDAOOHrƱF
- ɭԡAzƦܥiHboӹL{Ǩ@ǷsFI
- oǽ׾¦ɤ]|zEoX@ǤQkC</para>
- </listitem>
- </orderedlist>
- </sect2>
-
- <sect2 xml:id="ongoing-programmer-tasks">
- <title>bi椤({}oH)</title>
- <para>Cbo̪jȳݭnzJi[ɶAΪ̻ݭnzb FreeBSD kernel
- 譱״IѡAΪ̨̳nCMo̤]ܦhnȡAAXO
- <quote>weekend hackers</quote> ouζgNiHdw HackerC</para>
-
- <orderedlist>
- <listitem>
- <para>pGzb]O FreeBSD -CURRENT AåBt٤A
- iH <systemitem class="fqdomainname">current.FreeBSD.org</systemitem>A
- oxCѷ|@ӷs &mdash; pGzšA
- ziHTɤUæwˡA
- 䶡pGXFDAЧiDڭ̡C</para>
- </listitem>
-
- <listitem>
- <para>\Ū &a.bugs;CoǰDAγ\zണѦس]ʷNqNA
- Ϊդ@ patch C~AƦܥiHխץ䤤@ǰDC</para>
- </listitem>
-
- <listitem>
- <para>pGzD@ǭץwgb -CURRENT W\aϥΡA
- bgL@qɶ(q`O 2 gk)AX֨ -STABLE
- (oBJNO MFC -- Merged From Current)AiH committer Ho§HC</para>
- </listitem>
-
- <listitem>
- <para>NĤT(3rd party)n[JlX
- <filename>src/contrib</filename> ؿC</para>
- </listitem>
-
- <listitem>
- <para>TO <filename>src/contrib</filename> lXO̷sC</para>
- </listitem>
-
- <listitem>
- <para>sĶlX(άOlX)ɡAЧΧ󰪪ĵi(warning level)
- HK(debug)ΡAæbաBT{`AMoǽsĶĵišC</para>
- </listitem>
-
- <listitem>
- <para>sǦb ports ϥιLɪFA
- Ҧp <function>gets()</function> Υ]t
- <filename>malloc.h</filename> ҲͪĵiC</para>
- </listitem>
-
- <listitem>
- <para>pG ports @FץA
- аOoNz patch o@ (oˤUɯŮɡAzu@|ܱoP@)C</para>
- </listitem>
-
- <listitem>
- <para>oзǡAp &posix; ƥC
- b <link xlink:href="&url.base;/projects/c99/index.html">FreeBSD
- C99 &amp; POSIX зǬۮep</link> WAiHo챵C
- бN FreeBSD 欰PWzзǶiAYұoGP C99 &amp; POSIX зǤPܡA
- SOODzӸ`a誺LptAеo@󥦪 PR (Di)C
- pGiAЫXpץAH PR patch C
- pGz{зǦDAЦVodzWзǪAШDi歫sҼ{C</para>
- </listitem>
-
- <listitem>
- <para>oCѧhijI</para>
- </listitem>
- </orderedlist>
- </sect2>
-
- <sect2>
- <title>d\ PR Ʈw</title>
-
- <indexterm><primary>DiƮw</primary></indexterm>
-
- <para><link xlink:href="http://www.FreeBSD.org/cgi/query-pr-summary.cgi">FreeBSD
- PR C</link> o̷|ܥثeҦ PR DAAHΥ
- FreeBSD ϥΪ̴檺iijC
- PR ƮwPɥ]AF}oHMD}oHȡC
- dݨǩ|ѨM PRAìݬݬO_zP쪺ȡC
- o䤤i঳@ǬOD`²檺DAuݭnݤ@ݨýT{ PR OTC
- t~@ǥi|D`AΪ̧ץC</para>
-
- <para>ݤ@ݨ٨SH⪺ PRC
- pG PR wgtF䥦HAݰ_ӬOzBzA
- ziHHHӤHAø߰ݱzO_iHU &mdash;
- L̥iwgiѴժ patch AΦ@ǥiѰQתNC</para>
- </sect2>
-
- <sect2>
- <title> <quote>Ideas</quote> @</title>
-
- <para><link xlink:href="&url.base;/projects/ideas/">&os; list of
- projects and ideas for volunteers</link> P˦a}񵹦N@ѻP
- &os; pHC
- oMNasAPɴѦUӶتTҦH
- ]׬O_{]pH^C</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="contrib-how">
- <title>p󴣨U</title>
-
- <para>򥻤WiHHU 5 ؤ覡G</para>
-
- <sect2 xml:id="contrib-general">
- <title>~iMNo</title>
-
- <para>q`A<emphasis>@</emphasis>
- ޳NQkMijӵo &a.hackers;C
- P˦aAoǪF観쪺H (MA
- L̦P٭ne <emphasis>jq</emphasis> lI)
- iHҼ{q\ &a.hackers;C
- аѾ\ <link xlink:href="&url.books.handbook;/eresources.html#ERESOURCES-MAIL">FreeBSD
- ϥΤU</link> HFoӶl׾¡A
- HΨ䥦l׾ªԲӱpC</para>
-
- <para>pGzo{F bug Ϊ̷QnYǭקA
- гzL &man.send-pr.1; {Ψϥ
- <link xlink:href="&url.base;/send-pr.html">
- ^</link> ӴCиյ۶g PR CӶءC
- @ӻAD patch ɶWL 65 KBAڭ̫ijb PR W patch NiHFC
- YiM patch lXܡAijb PR
- Synopsis <literal>[PATCH]</literal>C
- FAbW patch ɡA <emphasis>n</emphasis>
- zLƹyƻsBKWzӶiA]o˰| Tab ܦŮA
- |ɭP patch NΤFCpG patch WL 20KBA
- ЦҼ{Yèϥ &man.uuencode.1; ӶisXC</para>
-
- <para>bg PR Az|@ʽT{lHΨƥlܽsC
- ЫOdoӽsA]ƫiHγosoH &a.bugfollowup;
- Ӧ^СBӨƥ󪺫ơCzݭnONsl󪺼DA
- Ҧp <literal>"Re:
- kern/3377"</literal>C
- YOP@D^Ф譱AӳzLoؤ覡ӶiC</para>
-
- <para>pGzb@qɶ (WL 3 ѬƦ 1 gAoMzlA)ᤴMST{H
- Ϊ̥ѩ@ǭ]Lkϥ &man.send-pr.1; {A
- hiHoH &a.bugs; ӽЧOHANHC</para>
-
- <para>аѾ\ <link xlink:href="&url.articles.problem-reports;/article.html">og峹</link>
- FѦp󼶼gnDiC</para>
- </sect2>
-
- <sect2>
- <title>󪺭׭q</title>
-
- <indexterm><primary></primary></indexterm>
-
- <para>󪺭ק譱AO &a.doc; ӼfdC
- аѾ\ <link xlink:href="&url.books.fdp-primer;/index.html">FreeBSD Documentation Project Primer</link>
- o㪺оDzӸ`C
- Ы <xref linkend="contrib-general"/> Ъkϥ &man.send-pr.1;
- ӴsAΪ̧ﵽ{ (ȬOܤpi]Ow諸I)C</para>
- </sect2>
-
- <sect2>
- <title>{lXק</title>
-
- <indexterm><primary>FreeBSD-CURRENT</primary></indexterm>
-
- <para>b{lXWiקμW[\AbYص{פWOݭnhޥơA
- åBٸzثe FreeBSD }o{Fѵ{צC
- hؤ覡iHoQ٧@ <quote>FreeBSD-CURRENT</quote>
- FreeBSD }oC
- аѾ\ FreeBSD ϥΤU <link xlink:href=" &url.books.handbook;/current-stable.html"></link> AӤFѨϥ FreeBSD-CURRENT ԱC</para>
-
- <para>bªlXWiקAhq`ilXwLɡA
- λPstӤjӵLkQsX FreeBSD C
- pGzq &a.announce; H &a.current; ܡA
- hiHzL̨ӤjPFѥثe}oAC</para>
-
- <para>YzqH̷slXӶizקA
- hU@BnƱNOͱzҭק諸 diff ɡA
- ñNo FreeBSD @HCou@iHzL &man.diff.1;
- ROӧC</para>
-
- <para> patch ɡAij &man.diff.1; 榡ĥ unified diff (iH <command>diff
- -u</command> Ӳ)CLApGzקFjqlXA
- hϥ <command>diff -c</command> ӥͦ context diff
- diff ie\ŪA]ӱ˨ϥΡC@ӨAjOĥ <command>diff -ruN</command> YiC</para>
-
- <indexterm>
- <primary><command>diff</command></primary>
- </indexterm>
-
- <para>ҦpG</para>
-
- <para>
- <screen>&prompt.user; <userinput>diff -c oldfile newfile</userinput></screen>
-
-
-
- <screen>&prompt.user; <userinput>diff -c -r olddir newdir</userinput></screen>
-
- N|SwؿA context diff ɡC</para>
-
- <para>Ϊ̹O...
- <screen>&prompt.user; <userinput>diff -u oldfile newfile</userinput></screen>
-
- <screen>&prompt.user; <userinput>diff -u -r olddir newdir</userinput></screen>
-
- Nͤ@˪ diff AO榡 unified C</para>
-
- <para>hӸ`AаѾ\ &man.diff.1;C</para>
-
- <para>@zϥ &man.diff.1; Ӳ diff (iHϥ
- &man.patch.1; ROӴդ@U)ANiH楦̡AHKQ FreeBSD C
- zLϥ <xref linkend="contrib-general"/>
- ҤЪ &man.send-pr.1; {NiHou@C
- Ъ`NGnu diff ɵo &a.hackers;A
- _h̥i|QѡI ڭ̷|D`PEz檺ק
- (oO@ӸqupI)F ]ڭ̳ܦA
- ]ɤ@wߧYץDA PR ƮwN@O۳oǰOA
- ]unHFɶ̴NQ勵FC
- pGzDi]A patch AnѤFbD[W
- <literal>[PATCH]</literal> ӱjդ@UC</para>
-
- <indexterm>
- <primary><command>uuencode</command></primary>
- </indexterm>
-
- <para>pGz{XA (ҦpWBRɮשΧɦW)A
- ٥iHҼ{ϥ
- <command>tar</command> ӱNɮץ]AM &man.uuencode.1;
- ӽsXC~A]iH &man.shar.1; ͪ覡C</para>
-
- <para>pGzקisbbijAҦpA
- zTwvDAΪ̷PıݭngLY檺_f~iHoG̡A
- ho &a.core;AӤOzL &man.send-pr.1; ӵoeC
- &a.core; opզjhq FreeBSD `u@C
- ݭn`NOAoӤpդ]]QLA
- ]ubD`nɭԡA~gHL̡C</para>
-
- <para>аѦ &man.intro.9; M &man.style.9; HF󼶼g{X氾nC
- YbeX{XeAFѳoǡAjaӻNOjUC</para>
- </sect2>
-
- <sect2>
- <title>slXέn[ȳn]</title>
-
- <para>pGzⴣѳWҸjlXAΪ̬ FreeBSD W[ns\A
- hiॲN̳zL uuencode isXAζǨY Web
- FTP IAHKhHo쥦CpGzSo˪DA
- Ш FreeBSD l׾´XAݬݬO_H@Nzm̡C</para>
-
- <para>jqlXӨAvD֩w|QXC
- FreeBSD 򥻨tΤϥΪvn]AG</para>
-
- <orderedlist>
- <listitem>
- <para>BSD<indexterm><primary>BSD vn</primary></indexterm> vCڭ̶ɦVϥγovlXA
- ]y[hlzA]ӧlްӷ~~ϥΡC
- FreeBSD äϹӷ~qϥΥlXAۤϡA
- ڭ̿nayӷ~qϥΧڭ̪lXA
- MApG̭Y̲ׯⳡlXAsص FreeBSD NnFC</para>
- </listitem>
-
- <listitem>
- <para>GNU General Public LicenseA² <quote>GPL</quote>C<indexterm><primary>GPL</primary><see>GNU General Public License</see></indexterm><indexterm><primary>GNU General Public License</primary></indexterm>
- ڭ̨äwϥγo˱vlXA
- ]ӷ~qϥΥݭnhu@CLAѩܦhϥ
- GPL vlXثeOLkקK (compiler, assembler, text formatter)
- AڵϥΩҦĥγo˱vnOܤC
- ĥ GPL vlX|QlX@ǯSwmAҦp
- <filename>/sys/gnu</filename>
- <filename>/usr/src/gnu</filename>AHKǻ{ GPL
- i|y·ЪH@XAP_C</para>
- </listitem>
- </orderedlist>
-
- <para>ϥΨ䥦vlXbiJ FreeBSD egLV_fMҼ{C
- ĥΥ]tYFӷ~vlXA@ӻ|QڵA
- ڭ̹yoǭlX@̡AzLۤv޹Dӵo̡C</para>
-
- <para>YnbzGW[J <quote>BSD-based</quote> vܡA
- ЧUCrClX̶}lA
- åξAr <literal>%%</literal> rC</para>
-
- <programlisting>Copyright (c) %%proper_years_here%%
- %%your_name_here%%, %%your_state%% %%your_zip%%.
- All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer as
- the first lines of this file unmodified.
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY %%your_name_here%% ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL %%your_name_here%% BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- &#36;Id&#36;</programlisting>
-
- <para>FKzϥΡAb
- <filename>/usr/share/examples/etc/bsd-style-copyright</filename>
- ]iH즹vƥC</para>
- </sect2>
-
- <sect2>
- <title>٧UBw Internet mirror</title>
-
- <para>ڭ̫D`@NUاΦءAHi@Bݮi FreeBSD p
- A]zAڭ̳o˪quVO~jNI
- صw]D`nA]o˯Uڭ̼W[i䴩wA
- ӧڭ̤ܦhHèSʸmoǵwC</para>
-
- <sect3 xml:id="donations">
- <title></title>
-
- <para>FreeBSD |O@ӫDQBҵ|ŧKv|A
- ҥH|إ߳oӰ|AOF FreeBSD pii[C
- ]Ӱ| 501(c)3 A@Өڵ|ܡAiHKúpJ|A
- HάùԦh{J|Cq`󦳽ҵ|ŧKvi殽تܡA
- iHpJҵ|BC</para>
-
- <para>ziH䲼HG
- <address>
- The FreeBSD Foundation
- <street>7321 Brockway Dr.</street>
- <city>Boulder</city>, <state>CO</state> <postcode>80303</postcode>
- <country>USA</country>
- </address>
- </para>
-
- <para>FreeBSD |{biHzL PayPal qWڡC
- pGzQV|ڡAаѾ\ <link xlink:href="http://www.freebsdfoundation.org">FreeBSD |</link> C</para>
-
- <para> FreeBSD |hԱAiHb <link xlink:href="http://people.FreeBSD.org/~jdp/foundation/announcement.html">FreeBSD
- | -- </link> Cnp|A
- еoeqll
- <email>bod@FreeBSDFoundation.org</email>C</para>
- </sect3>
-
- <sect3>
- <title>صw</title>
- <indexterm><primary></primary></indexterm>
-
- <para>FreeBSD pwHإiHϥΪwC
- pGz쮽صwApô <link xlink:href="&url.base;/donations/">pH줽</link>C</para>
- </sect3>
-
- <sect3>
- <title> FreeBSD mirror </title>
-
- <para>ڭws FTPBWWW
- <command>cvsup</command> mirror CpGzƱ榨o˪ mirror A
- аѾ\ <link xlink:href="&url.articles.hubs;/index.html">p[] FreeBSD mirror</link>
- @AHFѶi@BpC</para>
- </sect3>
- </sect2>
- </sect1>
-
- <index/>
-</article>
diff --git a/zh_TW.Big5/articles/cvs-freebsd/article.xml b/zh_TW.Big5/articles/cvs-freebsd/article.xml
deleted file mode 100644
index e11bef3a62..0000000000
--- a/zh_TW.Big5/articles/cvs-freebsd/article.xml
+++ /dev/null
@@ -1,570 +0,0 @@
-<?xml version="1.0" encoding="big5"?>
-<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
- "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
-<!-- $FreeBSD$ -->
-<!-- The FreeBSD Documentation Project -->
-<!-- Setting up a CVS repository - the FreeBSD way -->
-<!-- Translate into Chinese by jose@jose.idv.tw -->
-<!-- English Version: 1.15 -->
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="zh_tw">
- <info><title>إ CVS xsw(repository) - ϥ FreeBSD 覡</title>
-
-
- <author><personname><firstname>Stijn</firstname><surname>Hoop</surname></personname><affiliation>
- <address><email>stijn@win.tue.nl</email></address>
- </affiliation></author>
-
- <pubdate>$FreeBSD$</pubdate>
-
- <copyright>
- <year>2001</year>
- <year>2002</year>
- <year>2003</year>
- <holder role="mailto:stijn@win.tue.nl">Stijn Hoop</holder>
- </copyright>
-
- <releaseinfo>$FreeBSD$</releaseinfo>
-
- <legalnotice xml:id="trademarks" role="trademarks">
- &tm-attrib.freebsd;
- &tm-attrib.general;
- </legalnotice>
-
- <abstract>
- <para>oyzFϥΩM FreeBSD M׬ۦPROZӫإ CVS xswBJ
- CoMз CVS إߪxsw۸U\huIA]tFhlX
- granular access AHάC@沣ͩŪqllC</para>
- </abstract>
- </info>
-
- <sect1 xml:id="introduction">
- <title>²</title>
-
- <para>jhƪ}lXnM׳ϥ <application>CVS</application> @
- L̪lXtΡC <application>CVS</application> o˪uIsb
- ɡA]岫MIC䤤@]OML}o̤ɭlX
- ֳtaɭPtκ޲zcڡASOOpG䤤@HƱO@lXK
- @몺sC</para>
-
- <para>FreeBSD O䤤@Өϥ <application>CVS</application> MסAPɤ]
- O󥦪}o̹MG@ɡCL̼gF@ǩROZϱo޲zxswܱo[
- eC̪oǩROZ &a.joe; szLBзǤơAϱobLMפWA
- ϥγoǩROZ|[eCNyzϥγoǷsROZkC</para>
-
- <para>Fϥ󤤪TΡAAݭnx <application>CVS</application>
- 򥻪ާ@覡C</para>
- </sect1>
-
- <sect1 xml:id="first-setup">
- <title>򥻳]w</title>
-
- <warning>
- <para>̦n覡Ob@ӥsxswoǨBJAýTwAFѩҦ
- GCPɡAнTwA̷sBiŪƳƥI</para>
- </warning>
-
- <sect2>
- <title>lxsw</title>
-
- <para>nOإߤ@ӷsxswAUCROiD
- <application>CVS</application> إߨêlơG</para>
-
- <screen>&prompt.user; <userinput>cvs -d path-to-repository init</userinput></screen>
-
- <para>oROiD <application>CVS</application> إ
- <filename>CVSROOT</filename> ؿAoӥؿ̩mFҦպAɡC</para>
- </sect2>
-
- <sect2>
- <title>]wxsws</title>
-
- <para>{bڭ̱Nإߤ@Ӿ֦xswsաAҦ}o̥[JoӸs
- Ao˥L̤~sxswCڭ̰]sզW٬OH FreeBSD w
- <literal>ncvs</literal>C</para>
-
- <screen>&prompt.root; <userinput>pw groupadd ncvs</userinput></screen>
-
- <para>̧Aݭnϥ &man.chown.8; NؿҦ̫wsWsաG</para>
-
- <screen>&prompt.root; <userinput>chown -R :ncvs path-to-your-repository</userinput></screen>
-
- <para>p@ӨSAsճ\iNSLHiHgJxswC</para>
- </sect2>
-
- <sect2>
- <title>^lɮ</title>
-
- <para>{bAݭnq FreeBSD xsw^ <filename>CVSROOT</filename> ؿA
- q FreeBSD ΦW CVS MgӨ^|O²檺kCЬd\ <link xlink:href="&url.books.handbook;/anoncvs.html">b handbook `</link>
- ohTCڭ̰]^ɮצsbۦPؿU
- <filename>CVSROOT-freebsd</filename> ؿC</para>
- </sect2>
-
- <sect2>
- <title>ƻs FreeBSD ROZ</title>
-
- <para>Uӧڭ̭nƻs FreeBSD <filename>CVSROOT</filename> ̪ɮרA
- xswCpGAOEx <application>CVS</application>AA]\|QA
- iHפJoǩROZAչϧePɩMsPBFLAƹO
- <application>CVS</application> boӳIGפJɮר
- <filename>CVSROOT</filename> ɡAä|sպAɡCFn{Xoɮ
- AAٻݭnbפJ̫@@sAoNhF
- <literal>cvs import</literal> ȡC]AijkOȽƻsoǩRO
- ZLhC</para>
-
- <para>YWzeASNqOn&mdash;]̫᪺GO@˪C
- ץXA <filename>CVSROOT</filename>AMƻs^ FreeBSD
- ɮר쥻aؿ]|ܰʹL^G</para>
-
- <screen>&prompt.user; <userinput>cvs -d path-to-your-repository checkout CVSROOT</userinput>
-&prompt.user; <userinput>cd CVSROOT</userinput>
-&prompt.user; <userinput>cp ../CVSROOT-freebsd/* .</userinput>
-&prompt.user; <userinput>cvs add *</userinput></screen>
-
- <para>`NGAܥi|o@qYǥؿSQƻsĵiAoO`A
- AäݭnΨoǥؿC</para>
- </sect2>
-
- <sect2>
- <title>ROZ</title>
-
- <para>{bAu@ؿF FreeBSD Mצb̪xswϥΪROZ
- ƥAHUOCɮ²檺СC</para>
-
- <itemizedlist>
- <listitem>
- <para><filename>access</filename> - ɮצbw]wˤSQΨC
- oOϥΦb<link linkend="freebsdspecific">FreeBSD S]w</link>
- AΨӱxswsCpGAƱϥγoӳ]wܧAiHRoɮסC</para>
- </listitem>
-
- <listitem>
- <para><filename>avail</filename> - ɮױxswsCbɮפ
- AiHw\sxswsաA]iHwؿɮרөڵCA
- վ㬰bAxswN]tsթMؿC</para>
- </listitem>
-
- <listitem>
- <para><filename>cfg.pm</filename> - ɮ׻F]weAôѹw]]wC
- A<emphasis></emphasis>ӭק惡ɮסAӸӱNק諸]w
- <filename>cfg_local.pm</filename>C</para>
- </listitem>
-
- <listitem>
- <para><filename>cfg_local.pm</filename> - ɮץ]tҦtγ]w
- CAӳ]wҦCb]wAҦp檺lnHBbǥDW
- ϥΪ̥iH浥ChTby|C</para>
- </listitem>
-
- <listitem>
- <para><filename>checkoutlist</filename> - ɮצCXҦb
- <application>CVS</application> UؿɮסAFзǦb
- <literal>cvs init</literal> إߥXɮסCAiHRYǤݭn
- FreeBSD SɮסC</para>
- </listitem>
-
- <listitem>
- <para><filename>commit_prep.pl</filename> - ROZUشeˬdA
- AO_b <filename>cfg_local.pm</filename> ҥΡCAӧʦɮסC</para>
- </listitem>
-
- <listitem>
- <para><filename>commitcheck</filename> - ROZ|vT
- <application>CVS</application>C|ϥ
- <filename>cvs_acls.pl</filename> ˬd̬O_iHswlXA
- M <filename>commit_prep.pl</filename> ӽT{UشeˬdC
- pG@`A<application>CVS</application> N\~C
- AӧʦɮסC</para>
- </listitem>
-
- <listitem>
- <para><filename>commitinfo</filename> - ɮ׬O
- <application>CVS</application> Ψөwqbeҭn檺{&mdash;b
- ҤO <filename>commitcheck</filename>CAӧʦɮסC</para>
- </listitem>
-
- <listitem>
- <para><filename>config</filename> - xsw]wﶵCAiHקאּA
- QnAjhƪ޲z̥i|Odw]ȡChiHb]wﶵ
- TiHd\ <application>CVS</application> UC</para>
- </listitem>
-
- <listitem>
- <para><filename>cvs_acls.pl</filename> - ROZwq̪AH
- ΥL/oO_\slXAO <filename>avail</filename>
- ]wCAӧʦɮסC</para>
- </listitem>
-
- <listitem>
- <para><filename>cvsignore</filename> - ɮצCXɮ
- <application>CVS</application> γBzxswAAiHק令AQ
- nChiHɮתiHd\ <application>CVS</application>
- UC</para>
- </listitem>
-
- <listitem>
- <para><filename>cvswrappers</filename> - ɮ׬O
- <application>CVS</application> ΨӱҥΩΰri}AΪ̬O_
- ׸ӳQGiɡCAiHק令AQnChiHɮת
- iHd\ <application>CVS</application> UC`N <literal>-t</literal>
- M <literal>-f</literal> ﶵb <application>CVS</application>
- client/server äTB@C</para>
- </listitem>
-
- <listitem>
- <para><filename>edithook</filename> - ɮפwgSbϥΤFAdۥu
- OFYǦNq]CAiHwaRɮסC</para>
- </listitem>
-
- <listitem>
- <para><filename>editinfo</filename> - <application>CVS</application>
- ϥγoɮרӱjAϥίSws边CFreeBSD Sϥγoӥ\A]
- JxTwg <filename>verifymsg</filename> M
- <filename>logcheck</filename> ӧCoO]
- <filename>editinfo</filename> \bqݴάOϥ
- <literal>-m</literal> <literal>-F</literal> ﶵɤ|CA
- ӧʦɮסC</para>
- </listitem>
-
- <listitem>
- <para><filename>exclude</filename> - ɮצCXQ
- <filename>commit_prep.pl</filename> wq]tץYɮסC
- b FreeBSD ]wAҦbץUɮ׻ݦ@ӭץY
- A]O &dollar;FreeBSD&dollar;^CbɮפҦŦX@@Ӫ
- צWٱN|QˬdCAiHbɮפݭnץYɮ׷sW@
- ӥWB⦡CFw˳oǩROZA̦nkOư
- <filename>CVSROOT/</filename> |YˬdC</para>
- </listitem>
-
- <listitem>
- <para><filename>log_accum.pl</filename> - ROZ|Bz
- <filename>logcheck</filename> ҴѪxTAåBNƥت
- [xswOɮסCPɤ]nNlHAѪHc{
- ]b <filename>cfg_local.pm</filename> ^CM
- <application>CVS</application> O <filename>loginfo</filename>
- tdqCAӧʦɮסC</para>
- </listitem>
-
- <listitem>
- <para><filename>logcheck</filename> - ɮפR̴ѪxT
- AøչϹ@Mzʧ@CM <application>CVS</application> O
- <filename>verifymsg</filename> tdqCAӧʦɮסC</para>
-
- <note><para>ROZ̪󥻦a FreeBSD <application>CVS</application>
- BzGFreeBSD bROZקL~ŪxTFзǪ
- <application>CVS</application> MˬdykWO_TA
- |MzxTC<application>CVS</application> 1.11.2 iHzLb
- <filename>config</filename> ]w <literal>RereadLogAfterVerify=always</literal>
- өM FreeBSD ۦP@ΡC</para></note>
- </listitem>
-
- <listitem>
- <para><filename>loginfo</filename> - ɮ׬O
- <application>CVS</application> ΨӱxTnH̡A
- <filename>log_accum.pl</filename> tdBzCAӧʦɮסC</para>
- </listitem>
-
- <listitem>
- <para><filename>modules</filename> - ɮ׫OdF
- <application>CVS</application> lNqCAӧRsW FreeBSD
- ҲաAíקאּAQneChiHɮתiHd\
- <application>CVS</application> UC</para>
- </listitem>
-
- <listitem>
- <para><filename>notify</filename> - ɮ׬
- <application>CVS</application> ΨӱʬݬYɮסCb FreeBSD
- xswSϥΨ즹ɮסAAiHק令AQnChiHɮ
- iHd\ <application>CVS</application> UC</para>
- </listitem>
-
- <listitem>
- <para><filename>options</filename> - ɮ׶ȭϥΩ FreeBSD M Debian
- <application>CVS</application> C]tFݭnbץY
- i}rCAiHקאּŦXAwb <filename>cfg_local.pm</filename>
- rC</para>
- </listitem>
-
- <listitem>
- <para><filename>rcsinfo</filename> - ɮשwqxswҭnϥΪ
- xT˦dAp <filename>rcstemplate</filename>CFreeBSD w]
- ҦxswϥΦP@Ӽ˦dAAiH[JLAQnC</para>
- </listitem>
-
- <listitem>
- <para><filename>rcstemplate</filename> - ɮ׬O̦bɷ|ݨ
- xT˦dAAӭקאּAwqb <filename>cfg_local.pm</filename>
- UذѼơC</para>
- </listitem>
-
- <listitem>
- <para><filename>tagcheck</filename> - ɮױbxswKWҪ
- sCзǪ FreeBSD ڵW RELENG* ҡA]oO release
- engineering u@CAiHھڻݭnӭק惡ɮסC</para>
- </listitem>
-
- <listitem>
- <para><filename>taginfo</filename> - ɮױbxswKW
- sROZAp <filename>tagcheck</filename>CAӧʦɮסC</para>
- </listitem>
-
- <listitem>
- <para><filename>unwrap</filename> - ROZiHΨӦbץXɦ۰<quote>Ѷ}</quote>
- Giɡ]Ш <filename>cvswrappers</filename>^C{b FreeBSD
- SϥΦ]wA]\bݴɨäO檺D`CAӧʦɮסC</para>
- </listitem>
-
- <listitem>
- <para><filename>verifymsg</filename> - ɮץΨӰMxT
- ROZAp <filename>logcheck</filename>CAӧʦɮסC</para>
- </listitem>
-
- <listitem>
- <para><filename>wrap</filename> - ROZiHΨӦbɦ۰<quote>]q</quote>
- Giɡ]Ш <filename>cvswrappers</filename>^C{b FreeBSD
- SϥΦ]wA]\bݴɨäO檺D`CAӧʦɮסC</para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>ۭqROZ</title>
-
- <para>UӪBJn]woǩROZϱo̥iHbAҤB@CA
- dҦbؿɮסAíקאּŦXA]wCרAA|QnקUCɮסG</para>
-
- <procedure>
- <step>
- <para>pGAƱϥ<link linkend="freebsdspecific">FreeBSD S]w</link>A
- AiHwaR <filename>access</filename>G</para>
-
- <screen>&prompt.user; <userinput>cvs rm -f access</userinput></screen>
- </step>
-
- <step>
- <para>s <filename>avail</filename> ӥ]tAQsUxsw
- ؿAнTwAOd <literal>avail||CVSROOT</literal> o@A_h
- AN|bU@BAۤvb~C</para>
-
- <para>t~AiHbɮפsW}o̪sաAFreeBSD w]ϥ
- <filename>access</filename> ӦCXҦ}o̡AAiHϥΥA
- QnΪɮסCpGAQܤ]iHsWsա]ШϥΫwb
- <filename>cvs_acls.pl</filename> Wh̪yk^C</para>
- </step>
-
- <step>
- <para>s <filename>cfg_local.pm</filename> ӥ]tAݭnﶵCר
- A˵@UUC]wءG</para>
-
- <itemizedlist>
- <listitem>
- <para><literal>%TEMPLATE_HEADERS</literal> - oOΨӨoxT
- e{ǡAå[JNe{l󶵥ةMѫDŭȪTCAi
- HR <literal>PR</literal> M <literal>MFC after</literal>
- ԭzAM]iH[JAQnC</para>
- </listitem>
-
- <listitem>
- <para><literal>$MAIL_BRANCH_HDR</literal> - pGAQnbC@
- 檺l󤤥[JyzOb@Ӥ䤤檺YAЩwq
- ŦXA]wCpGAQϥγo˪YAг]wŭȡC</para>
- </listitem>
-
- <listitem>
- <para><literal>@COMMIT_HOSTS</literal> - wqϥΪ̯檺DC</para>
- </listitem>
-
- <listitem>
- <para><literal>$MAILADDRS</literal> - ]wӦ촣l󪺶l
- }C</para>
- </listitem>
-
- <listitem>
- <para><literal>@LOG_FILE_MAP</literal> - HAһݭnӭקo
- }CACӳ]wӲŦXQ檺ؿAӴ檺xT|H
- <filename>commitlogs</filename> WxsbCӳQ]wؿUC</para>
- </listitem>
-
- <listitem>
- <para><literal>$COMMITCHECK_EXTRA</literal> - pGAQϥ
- <link linkend="freebsdspecific">FreeBSD Ss</link>
- \AAiHbɮפR <literal>$COMMITCHECK_EXTRA</literal>
- wqC</para>
- </listitem>
- </itemizedlist>
-
- <note><para>ק <literal>$IDHEADER</literal> \ub FreeBSD
- xWiHB@AO̦ۨb FreeBSD S <application>CVS</application>
- ]wWC</para></note>
-
- <para>AiHˬd <filename>cfg.pm</filename> O_LѼƥiHק
- AOק̦nO]C</para>
- </step>
-
- <step>
- <para>R <filename>exclude</filename> FreeBSD S]w
- z]pH <literal>^ports/</literal> }YC@浥^C~A
- H <literal>^CVSROOT/</literal> }YCAMsW@u
- <literal>^CVSROOT/</literal>Cri}ROZw˦nAAi
- Hb <filename>CVSROOT</filename> ؿɮ׸̥[WYAMA
- _ѪCAbA٨SehuOoˡC</para>
- </step>
-
- <step>
- <para>s <filename>modules</filename>AçRҦ FreeBSD sաC
- [JAݭnҲաC</para>
- </step>
-
- <step>
- <note><para>BJubA <filename>cfg_local.pm</filename> w
- F <literal>$IDHEADER</literal> ~n]w]ub FreeBSD S
- <application>CVS</application> ]wW~^C</para></note>
-
- <para>s <filename>options</filename> HŦXAb
- <filename>cfg_local.pm</filename> ]wҦW١CæbҦɮ
- jM <literal>FreeBSD</literal> ôA]wҦW١C</para>
- </step>
-
- <step>
- <para>ק <filename>rcstemplate</filename> Mb
- <filename>cfg_local.pm</filename> ۦP]wC</para>
- </step>
-
- <step>
- <para>ܩʪRb <filename>tagcheck</filename> w FreeBSD
- d]wCAiHȶȦbɮת̤Wh[W <literal>exit 0</literal>
- ҦҪˬdC</para>
- </step>
-
- <step>
- <para>bAe̫@ƬOT{ commitlogs iHTxsCw]|x
- sbxsw <filename>commitlogs</filename> lؿAӳoӥؿ
- ݭnإߡG</para>
-
- <screen>&prompt.user; <userinput>mkdir commitlogs</userinput>
-&prompt.user; <userinput>cvs add commitlogs</userinput></screen>
- </step>
- </procedure>
-
- <para>{bAbӤߪ˵LAAiHAקFCTwAeb
- <filename>avail</filename> \Aۤvs <filename>CVSROOT</filename>
- ؿA]pGSo˰ܧA|Aۤvb~CT{LаU
- CROG</para>
-
- <screen>&prompt.user; <userinput>cvs commit -m '- Initial FreeBSD scripts commit'</userinput></screen>
- </sect2>
-
- <sect2>
- <title>ճ]w</title>
-
- <para>AwgdzƦn򥻪դFGj <filename>avail</filename>
- HT{CƳpwB@C</para>
-
- <screen>&prompt.user; <userinput>cvs commit -f -m 'Forced commit to test the new CVSROOT scripts' avail</userinput></screen>
-
- <para>pG@`A򮥳ߤFIA{bwgAxswإߦn FreeBSD R
- OZFCpG <application>CVS</application> MĵiA^Y˵W
- zBJO_TC</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="freebsdspecific">
- <title>FreeBSD S]w</title>
-
- <para>FreeBSD MצۤvϥΤ@ӦIP]wANOPɤ]ϥ FreeBSD
- <filename>CVSROOT</filename> <filename>freebsd</filename> lؿC]
- jq̥bۦPsդA]M׼gF@²檺 wrapper ӽT{
- ̥iHTAó]wxswsզW١C</para>
-
- <para>pGAxsw]ݭno˪\AUN|ЦpإߡALn
- Ӭݤ@qzC</para>
-
- <sect2>
- <title>FreeBSD ]wϥΪɮ</title>
-
- <itemizedlist>
- <listitem>
- <para><filename>access</filename> - ɮץΨӱxswsCA
- ӽså[JҦbMפC</para>
- </listitem>
-
- <listitem>
- <para><filename>freebsd/commitmail.pl</filename> - ɮפwgSb
- ϥΤFAdۥuOFYǦNq]CAӧʦɮסC</para>
- </listitem>
-
- <listitem>
- <para><filename>freebsd/cvswrap.c</filename> - CVS wrapper l
- XOΨӫإˬdҦsu@ChTby|XCAӽs
- <literal>ACCESS</literal> M <literal>REALCVS</literal> |
- HŦXA]wC</para>
- </listitem>
-
- <listitem>
- <para><filename>freebsd/mailsend.c</filename> - ɮ׬O FreeBSD ]
- w mailing lists ݭnAAӧʦɮסC</para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>BJ</title>
-
- <procedure>
- <step>
- <para>u[JAϥΪ̦W٨ <filename>access</filename> C</para>
- </step>
-
- <step>
- <para>s <filename>cvswrap.c</filename> |HŦXA]wAwq
- bjg <literal>ACCESS</literal> CPɦpGw]ȤŦXAp
- ܤ]ӭק糧aڪ <command>cvs</command> {ҦbmCl
- <filename>cvswrap.c</filename> ƱNAݪ CVS {AҦpi
- |O <filename>/usr/bin/ncvs</filename>C</para>
-
- <para>ڪ <filename>cvswrap.c</filename> OoˡG</para>
-
- <programlisting>#define ACCESS "/local/cvsroot/CVSROOT/access"
-#define REALCVS "/usr/bin/ncvs"</programlisting>
- </step>
-
- <step>
- <para>UӬOإ wrapper ӽT{AbɬObTsդC
- bA <filename>CVSROOT</filename>
- <filename>cvswrap.c</filename> nϥΡC</para>
-
- <para>bAså[JT|ڭ̭nӽsĶlXG</para>
-
- <screen>&prompt.user; <userinput>cc -o cvs cvswrap.c</userinput></screen>
-
- <para>Miݭn]w]BJݭn root v^G</para>
-
- <screen>&prompt.root; <userinput>mv /usr/bin/cvs /usr/bin/ncvs</userinput>
-&prompt.root; <userinput>mv cvs /usr/bin/cvs</userinput>
-&prompt.root; <userinput>chown root:ncvs /usr/bin/cvs /usr/bin/ncvs</userinput>
-&prompt.root; <userinput>chmod o-rx /usr/bin/ncvs</userinput>
-&prompt.root; <userinput>chmod u-w,g+s /usr/bin/cvs</userinput></screen>
-
- <para>o|N wrapper w˦w] <command>cvs</command> {AнTw
- nϥxswHӦTsvC</para>
- </step>
-
- <step>
- <para>{bAiHRҦbxswsդϥΪ̡AҦs|g
- wrapper AP wrapper |]wsTsաC</para>
- </step>
- </procedure>
- </sect2>
-
- <sect2>
- <title>ճ]w</title>
-
- <para>A wrapper {bӤwgw˦nFAAM]iHj
- <filename>access</filename> ӴլO_`G</para>
-
- <screen>&prompt.user; <userinput>cvs commit -f -m 'Forced commit to test the new CVSROOT scripts' access</userinput></screen>
-
- <para>P˦aApG~AˬdO_WzҦBJTC</para>
- </sect2>
- </sect1>
-</article>
diff --git a/zh_TW.Big5/articles/mailing-list-faq/article.xml b/zh_TW.Big5/articles/mailing-list-faq/article.xml
deleted file mode 100644
index 9e6bffc6a5..0000000000
--- a/zh_TW.Big5/articles/mailing-list-faq/article.xml
+++ /dev/null
@@ -1,416 +0,0 @@
-<?xml version="1.0" encoding="big5"?>
-<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
- "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
-<!-- $FreeBSD$ -->
-<!-- The FreeBSD Documentation Project -->
-<!-- FreeBSD Mailing Lists `ݵ -->
-<!-- Translate into Chinese by chinsan.tw@gmail.com -->
-<!-- English Version: 1.7 -->
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="zh_tw">
- <info><title>&os; Mailing Lists `ݵ</title>
-
-
- <authorgroup>
- <author><personname><surname>The &os; Documentation Project</surname></personname></author>
- </authorgroup>
-
- <copyright>
- <year>2004</year>
- <year>2005</year>
- <year>2006</year>
- <holder>&os; pe</holder>
- </copyright>
-
- <pubdate>$FreeBSD$</pubdate>
-
- <releaseinfo>$FreeBSD$</releaseinfo>
-
- <abstract>
- <para>oO &os; mailing lists FAQCpGzU/½Ķpe
- i榳쪺ܡAбH e-mail
- &a.doc;C~AHɥiq <link xlink:href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/mailing-list-faq/index.html">
- FreeBSD </link> o󪺳̷sC
- ]iHQ HTTP ӤU <link xlink:href="article.html">HTML</link>
- AάOg <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">
- FreeBSD FTP </link> U¤rB&postscript;B PDF ɮסC
- z]iHbǫϥ
- <link xlink:href="&url.base;/search/search.html">jM FAQ </link>
- \C</para>
- </abstract>
- </info>
-
- <sect1 xml:id="introduction">
- <title>e</title>
-
- <para>pPL FAQs @ˡADnتOƱ[\b &os; mailing
- lists W`D(MA]A)C
- MA쥻cQOƱ୰CoǭưDyqApwQ{ FAQs ]O۷nΪ귽@C</para>
-
- <para>DnOyzsҰi@§(q)A奻ëDytz몺v¡C
- Yo{夺޳N岫AΪ̬OQijiHW[dzܡAаe PRAάO email &a.doc;CoI</para>
-
- <qandaset>
- <qandaentry>
- <question xml:id="purpose">
- <para>&os; mailing lists تH</para>
- </question>
-
- <answer>
- <para>&os; mailing lists DnO &os; sq޹DAo̦UMD쪺QAHοyC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="audience">
- <para>&os; mailing lists ѻP̦?</para>
- </question>
-
- <answer>
- <para>oӰDAnݦU list yW(charter)zwӦҤPC lists DnO developers bѻPQתF
- ӦǫhDnOXG &os; siHHNѻPQתCЬ <link xlink:href="http://lists.FreeBSD.org/mailman/listinfo">oM</link> WثeҦ list KnC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="participation-who">
- <para>&os; mailing lists HO}ѻPܡH</para>
- </question>
-
- <answer>
- <para>AƤ@AonݦU list yW(charter)zwӦҤPC
- ЦboeA`N\Ū list yW(charter)zAÿuhC
- p@ӡA~|ja෾qLêC</para>
-
- <para>pGݤFW@ӰݵM椧A٬OMn list hoݪܡA
- iHյۧD freebsd-questions ݬ(ХݤUɥR)C</para>
-
- <para>Ъ`NGߺDWҦ mailing lists O}oQתA]oq\|~C
- oO۷fVܡAѻP &os; sPeAùyۤɩQkC
- MӡAѩLhǤHݥΡA lists {b}lѻPQתAHקKnxZC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="subscribe">
- <para>nq\OH</para>
- </question>
-
- <answer>
- <para>iH <link xlink:href="http://lists.FreeBSD.org/mailman/listinfo">
- Mailman </link> ӭq\󤽶} listsC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="unsubscribe">
- <para>nhqH</para>
- </question>
-
- <answer>
- <para>@˽ХέWAΪ mailing list WCʫHB| URL sܻC</para>
-
- <para>dUФngHoǤ} mailing lists AnhqC
- O..]ӴNOo˰hqA䦸A|SӲөۨӳϡBԡC
- oOܨ嫬hq~ܽdAФno˰C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="archives">
- <para>iH«HƮwܡH</para>
- </question>
-
- <answer>
- <para>AIiHb <link xlink:href="http://docs.FreeBSD.org/mail/">o</link>
- «HƮw(archive)C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="digest">
- <para>mailing lists iKnOH</para>
- </question>
-
- <answer>
- <para>M]AЬ <link xlink:href="http://lists.FreeBSD.org/mailman/listinfo">
- Mailman </link>C</para>
- </answer>
- </qandaentry>
- </qandaset>
- </sect1>
-
- <sect1 xml:id="etiquette">
- <title>Mailing List ѻP§</title>
-
- <para>b mailing lists WѻPQסANbLs@ˡAڭ̳ݭn@ǷqW@ѡC
- oЪ`§(q)AŵLڡC</para>
-
- <qandaset>
- <qandaentry>
- <question xml:id="before-posting">
- <para>bo大eA`NƶOH</para>
- </question>
-
- <answer>
- <para>̭nOAwgݤFog峹AMӡAYz &os; ܡA
- iݭnsx\Ū
- <link xlink:href="&url.base;/docs/books.html">yΤ峹</link>
- ӥxoM@~tΩM@ǨGAרO䤤 <link xlink:href="&url.books.faq;/index.html">
- &os; `ݵ (FAQ)</link> A
- <link xlink:href="&url.books.handbook;/index.html">
- &os; ϥΤU(Handbook)</link>A
- Hά峹G<link xlink:href="&url.articles.freebsd-questions;/article.html">
- How to get best results from the FreeBSD-questions mailing list</link>B
- <link xlink:href="&url.articles.explaining-bsd;/article.html">
- Explaining BSD</link>BH <link xlink:href="&url.articles.new-users;/article.html">
- &os; First Steps</link>C</para>
-
- <para>~AWz󤺤wѵSXӰݪܡA|Q{O۷§C
- oäO]osӤuO۷[^AӬO@AQۦPD_hFAҲͪPܭC
- רO{שNbeAoP˰DѭAobO...C
- Ъ`NGo &os; XGOѤ@sL~ӤunߦGAӥL̤]OHC</para>
- </answer>
-
- </qandaentry>
-
- <qandaentry>
- <question xml:id="inappropriate">
- <para>pקKoOH</para>
- </question>
-
- <answer>
- <itemizedlist>
- <listitem>
- <para>oɡAаȥu mailing list CWhC</para>
- </listitem>
-
- <listitem>
- <para>n@HCnAӭn󰪪зǡC</para>
- </listitem>
-
- <listitem>
- <para>Фnչϧ@ Spam 欰(siBKhBЦۨӦ欰)C
- Ҧ mailing lists |nToǹHW̡A@ܡAGЦۦtdC</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="etiquette-posting">
- <para>oɡAӪ`NܡH</para>
- </question>
-
- <answer>
- <itemizedlist>
- <listitem>
- <para>oɡAЫO@ 75 ӦrN۰_A]äOCӬݪHܬϧΤ(GUI)ݫHnC</para>
- </listitem>
-
- <listitem>
- <para>Ъ`NGƹWAWeäOLC
- ëDCŪ̪WeܤjAҥHYQK@ǹO <filename>config.log</filename>
- ]wɤeAάOjq stack trace AЧ⥦bۤvWAMKXӺ} URL NFC
- ٦@ơAаOAoǫH󳣷|Q«HƮwOsUӡAҥHo˧@|yOsƮw|ܧֳQܤjA
- Ʀܥiz Server wЪŶC</para>
- </listitem>
-
- <listitem>
- <para>峹OnHݱoAҥHЪ`NsƪiŪʡA٦..
- d@U@@n@j@n@W@s!!!!! oIiu &os; mailing lists ~ݦp`NA
- ФŧC峹y򥻽sơznʡBsC
- HF覡q`NNۧOHAAY峹HݤFܦYO(ٷ)Br~ʥXB
- RyN޿~BάO夺R@ĸAo|HALH[PtC</para>
- </listitem>
-
- <listitem>
- <para>b@ǯSw list XAХξAyӷqC\hD^ytmailing
- lists iH
- <link xlink:href="&url.base;/community/mailinglists.html">
- o</link> dݬݡC</para>
-
- <para>\hyO^yHAڭ̸̳ѥL̪WAåBյ۾qhh][C
- ^DyHAڭ̷|qcNrΤk~BC
- &os; bo譱A@۷uqAڭ~OoDzΧaC</para>
- </listitem>
-
- <listitem>
- <para>gHɡAХάۮeзǪ Mail User Agent (MUA){C
- <link xlink:href="http://www.lemis.com/email.html">}(γ]w~)HH{</link>
- o̦C\hH榡~ܽdCHUO@ǤwHH{}ܽdG</para>
-
- <itemizedlist>
- <listitem>
- <para>cc:Mail</para>
- </listitem>
-
- <listitem>
- <para>(ª)&eudora;</para>
- </listitem>
-
- <listitem>
- <para>exmh</para>
- </listitem>
-
- <listitem>
- <para>&microsoft; Exchange</para>
- </listitem>
-
- <listitem>
- <para>&microsoft; Internet Mail</para>
- </listitem>
-
- <listitem>
- <para>&microsoft; &outlook;</para>
- </listitem>
-
- <listitem>
- <para>(ª)&netscape;</para>
- </listitem>
- </itemizedlist>
-
- <para>pPWzҨAMicrosoft X@HH{q`OۮeзǮ榡C
- оq &unix; WHH{CYb Microsoft ҤUϥαHH{ܡA
- аOoT{]wO_TCоqn <acronym>MIME</acronym> 榡G
- ]@Hbݥ <acronym>MIME</acronym> H榡C</para>
- </listitem>
-
- <listitem>
- <para>нT{GɶPɰϳ]wO_TC
- oDݰ_ӦIA]AHXH٬O|F mailing list WA
- OOAC mailing lists WqCѳ|ݼƦʫʪHA
- L̳q`|HHDɶ@ƧǨ̾ڡC
- YAHSbĤ@gѤeNX{ܡAL̴N|]iO|AoʫHA
- MNSAhݧAʫHFC</para>
- </listitem>
-
- <listitem>
- <para>дѵ{X{TAO &man.dmesg.8; Ϊ console
- messages ]NOq`|X{b <filename>/var/log/messages</filename> X{C
- ФnΤ⥴A]oȫܭWAӥB]iॴrζñ즳榡CЪ log ɥXӡA
- άOνs边ӰŵBάOηƹƻs/KWӧC|ӨҤlApGOn⹳O <command>dmesg</command>
- {TˤJYɮץhܡA@kpUG</para>
-
- <screen>&prompt.user; <userinput>dmesg &gt; /tmp/dmesg.out</userinput></screen>
-
- <para>oˤl|Te <filename>/tmp/dmesg.out</filename> ɤC</para>
- </listitem>
-
- <listitem>
- <para>bηƹŶKɡAЪ`NO_Ǥ@DzӸ`ŶKaߺDC
- רOK <filename>Makefiles</filename> ɮ׮ɡAѩ <literal>tab</literal>
- ҥXӪAOݩSrC]Ab <link xlink:href="&url.base;/support.html#gnats">
- GNATS PR Ʈw</link> Wܱ`ݨoܱ`oHDG
- <filename>Makefiles</filename> tab gLŶKAܦyť(white space)z
- άOxZ <literal>=3B</literal> escape sequenceAoǷ| committers ̤QnC</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="etiquette-replying">
- <para>b mailing lists W^媺ܡAnSO`NܡH</para>
- </question>
-
- <answer>
- <itemizedlist>
- <listitem>
- <para>оAվ峹ިסC^ɡAިФޡyͨ쪺zDAФnLPΡC
- ӫOdAΰQ׽d򪺭Aoˤl~SݹLe峹HDObAӫD@YC</para>
-
- <para>٦@I]ܭnAYOT׬۷ܡAOo "yes, I see this too"C</para>
- </listitem>
-
- <listitem>
- <para>ΧޥӽT{PۤvgG
- q`|b媺Ce[W <quote><literal>&gt; </literal></quote> H@OC
- аOoOd <quote><literal>&gt; </literal></quote> Ÿ᭱ťաAåBbHΧAҼgq[WŦA
- HK\ŪC</para>
- </listitem>
-
- <listitem>
- <para>Фn_qBw|Gq`l峹y_qzByw|z|jaܤnA]ḼNëDpAoQѡC</para>
- </listitem>
-
- <listitem>
- <para>^ɡAngbW(<literal>top post</literal>)C
- oӷNOGYn^ɡAмgbUAngbWAHKHɪſmòVcC</para>
- <!-- `NGUoOGNqĪGݵ -->
- <itemizedlist>
- <listitem>
- <para>G Because it reverses the logical flow of
- conversation.</para>
- </listitem>
- <listitem>
- <para>ݡG Why is top posting frowned upon?</para>
- </listitem>
- </itemizedlist>
- <para>(P Randy Bush ѯ)</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
- </qandaset>
- </sect1>
-
- <sect1 xml:id="recurring">
- <title>Mailing Lists WƩʰD</title>
-
- <para>b mailing lists WѻPQסANbLs@ˡAڭ̳ݭn@ǷqW@ѡC
- \h mailing lists |]ѻPQת̳jPD FreeBSD p@ǾvWC
- רOss`Ow|_ưDC
- Cӵo媺HAdקKJo˪cʴ`jC
- ]Ai mailing list Wॿ`QסAקKۤvJԪdhC</para>
-
- <para>nקKOH̦nkNOγo <link xlink:href="http://docs.FreeBSD.org/mail/">
- mailing list «HƮw(archives)</link>AAѬIC
- ѩo]AҥH <link xlink:href="http://www.FreeBSD.org/search/search.html#mailinglists">
- mailing list jM</link> NoD`nΡC
- (YokLk즳ΪסAЧΦۤvRΪjMa)</para>
-
- <para>zLo«HƮwAuiAѥeQ׹LǸDA]iHDGOQתB
- ǤHѻPQ׹LBDnݪHSOǤHC
- JHUoǭhuO &os; mailing list W~oˡA@˥iHAXLaC</para>
-
- <para>archives eLæa۷sxAӥB|ǰD_ХX{A
- ɰQר᭱`|DCLצpAboݫeqȴNOn\ҡA
- HקKogcʴ`AרOOHϷP <literal>bikeshed]L)</literal>C</para>
- </sect1>
-
- <sect1 xml:id="bikeshed">
- <title>O "Bikeshed" rH</title>
- <para>NrWNܡA<literal>bikeshed</literal> OM}񨮡BquϥΪBBסA
- MөOAb &os; o䪺koLN(aS)OG
- YǯSwDưQסAרOb &os; s|@ѡABijDC
- (orJ_b <link xlink:href="&url.books.faq;/misc.html#BIKESHED-PAINTING">
- o</link> h)CAunboH@ &os; mailing lists eADoӰ򥻷NFC</para>
-
- <para>@AybikeshedzOܮeͳ\hiԻPB~QתijDApGƥDoǭIܡC</para>
-
- <para>UAӦQצ^k`AӤnuOBLӤwCPI</para>
- </sect1>
-
- <sect1 xml:id="acknowledgments">
- <title>P</title>
-
- <variablelist>
- <varlistentry>
- <term>&a.grog;</term>
- <listitem>
- <para><link xlink:href="&url.articles.freebsd-questions;/article.html">
- How to get best results from the FreeBSD-questions mailing list</link> @媺@̡A
- ڭ̱qLo夺o\h mailing list W§(q)g@DC</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.linimon;</term>
- <listitem>
- <para> FAQ Ϊ@</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect1>
-
-</article>
diff --git a/zh_TW.Big5/articles/nanobsd/article.xml b/zh_TW.Big5/articles/nanobsd/article.xml
deleted file mode 100644
index dc4af81e83..0000000000
--- a/zh_TW.Big5/articles/nanobsd/article.xml
+++ /dev/null
@@ -1,434 +0,0 @@
-<?xml version="1.0" encoding="big5"?>
-<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
- "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
-<!--
- The FreeBSD Documentation Project
- The FreeBSD Chinese (Traditional) Documentation Project
-
- Original Revision: 1.1
--->
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="zh_tw">
- <info><title>NanoBSD ²</title>
-
-
- <authorgroup>
- <author><personname><firstname>Daniel</firstname><surname>Gerzo</surname></personname></author>
- </authorgroup>
-
- <copyright>
- <year>2006</year>
- <holder>The FreeBSD Documentation Project</holder>
- </copyright>
-
- <pubdate>$FreeBSD$</pubdate>
-
- <releaseinfo>$FreeBSD$</releaseinfo>
-
- <legalnotice xml:id="trademarks" role="trademarks">
- &tm-attrib.freebsd;
- &tm-attrib.general;
- </legalnotice>
-
- <abstract>
- <para>og󴣨ѤF <application>NanoBSD</application> u㪺СA
- ouiΨӫإߥΩOJε{ &os; tάMɡA
- HKs Compact Flash d(H)C</para>
- </abstract>
- </info>
-
- <sect1 xml:id="intro">
- <title>NanoBSD ²</title>
-
- <indexterm><primary>NanoBSD</primary></indexterm>
-
- <para><application>NanoBSD</application> O &a.phk; ثeb}o@uC
- iΨӫإߥΩOJε{ &os; tάMɡA
- HKs Compact Flash d(HСAmass storage medium)C</para>
-
- <para>o@u]iHΨӦۻswˬMɡA
- H²ƫU٬ <quote>OJt(computer appliances)</quote> tΦwˡB@u@C
- q`ACӴOJtβ~wwMnA
- Ϊ̴AҦε{Ow˦nC
- odz]ƥiH{AӥB(XGO)ߧYϥΡC</para>
-
- <para><application>NanoBSD</application> Ѫ\]AG</para>
-
- <itemizedlist>
- <listitem>
- <para>iHM &os; @˨ϥ Ports M Packages &mdash;
- Ҧε{dziHb <application>NanoBSD</application> ϥΡA
- Ӥ覡P &os; @ˡC</para>
- </listitem>
-
- <listitem>
- <para>\൷@l &mdash; b &os; u@AiHb
- <application>NanoBSD</application> ϥΡA
- Dzbإ <application>NanoBSD</application> MɮɡA
- wn̡C</para>
- </listitem>
-
- <listitem>
- <para>ҦFbBɳOŪ &mdash; iHwaޱqYC
- tΤ`ܡAΦA] &man.fsck.8; FC</para>
- </listitem>
-
- <listitem>
- <para>iPsĶBۦ楴y &mdash; uݨϥΤ@ shell script M@ӳ]wɡA
- ziHP̻ݨDӶqqAΪMɡC</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 xml:id="howto">
- <title>pϥ NanoBSD</title>
-
- <sect2 xml:id="design">
- <title>NanoBSD ]p</title>
-
- <para>@NMɦsJOJwANiHΥӤ޾ <application>NanoBSD</application>
- FC w]pUAHз|TG</para>
-
- <itemizedlist>
- <listitem>
- <para>ӬMɤΰϡG <literal>code#1</literal>
- M <literal>code#2</literal>C</para>
- </listitem>
-
- <listitem>
- <para>@ӳ]wɤΰϡAbBҤA
- iHN䱾(mount) <filename>/cfg</filename> ؿUC</para>
- </listitem>
- </itemizedlist>
-
- <para>oǤΰϡAbw]pUOHŪ覡C</para>
-
- <para><filename>/etc</filename> M
- <filename>/var</filename> ؿ
- &man.md.4;(malloc)ϺСC</para>
-
- <para>]wɪΰϫhOb
- <filename>/cfg</filename> ؿC
- ]tFΩ <filename>/etc</filename>
- ؿɮסAbҰʤȮɥHŪ覡C ]AYQn}Ods]wA
- nOoq <filename>/etc</filename> Lɮ׽ƻs^
- <filename>/cfg</filename> ؿ~C</para>
-
- <example>
- <title>קL <filename>/etc/resolv.conf</filename> ]wOs_</title>
-
- <screen>&prompt.root; <userinput>vi /etc/resolv.conf</userinput>
-[...]
-&prompt.root; <userinput>mount /cfg</userinput>
-&prompt.root; <userinput>cp /etc/resolv.conf /cfg</userinput>
-&prompt.root; <userinput>umount /cfg</userinput></screen>
- </example>
-
- <note>
- <para>ubtαҰʹL{AHλݭnק]wɪɭԡA~ݭnt
- <filename>/cfg</filename> ӤΰϡC</para>
-
- <para>@ <filename>/cfg</filename>
- O@ӦnDNASOOz <application>NanoBSD</application>
- bAXijqgJʧ@ΰϮ
- (pGѩɮרtΪPBƷ|wbtκФgJ)C</para>
- </note>
- </sect2>
-
- <sect2>
- <title>y NanoBSD M</title>
-
- <para><application>NanoBSD</application> MɬOzLϥΫD`²檺
- <filename>nanobsd.sh</filename> shell script ӥyAo script iHb
- <filename>/usr/src/tools/tools/nanobsd</filename>
- ؿC o script إߪMɡAiH &man.dd.1; uӽƻsHФWC</para>
-
- <para>y
- <application>NanoBSD</application> MɩһݪOOG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/src/tools/tools/nanobsd</userinput> <co xml:id="nbsd-cd"/>
-&prompt.root; <userinput>sh nanobsd.sh</userinput> <co xml:id="nbsd-sh"/>
-&prompt.root; <userinput>cd /usr/obj/nanobsd.full</userinput> <co xml:id="nbsd-cd2"/>
-&prompt.root; <userinput>dd if=_.disk.full of=/dev/da0 bs=64k</userinput> <co xml:id="nbsd-dd"/></screen>
-
- <calloutlist>
- <callout arearefs="nbsd-cd">
- <para>iJ <application>NanoBSD</application> y script DؿC</para>
- </callout>
-
- <callout arearefs="nbsd-sh">
- <para>}lyL{C</para>
- </callout>
-
- <callout arearefs="nbsd-cd2">
- <para>iJynMɩҦbؿC</para>
- </callout>
-
- <callout arearefs="nbsd-dd">
- <para>bHФWw <application>NanoBSD</application>C</para>
- </callout>
- </calloutlist>
- </sect2>
-
- <sect2>
- <title>ۦ楴y NanoBSD M</title>
-
- <para>oiO <application>NanoBSD</application> ̬nA
- Pɤ]Oz̷P쪺\C PɡAb}o
- <application>NanoBSD</application> ε{ɡAo]O۷ӮɪL{C</para>
-
- <para>UON|
- <filename>nanobsd.sh</filename> ŪثeҦbؿ
- <filename>myconf.nano</filename> ɪ]wG</para>
-
- <screen>&prompt.root; <userinput>sh nanobsd.sh -c myconf.nano</userinput></screen>
-
- <para>ۦ楴yy{AuݨӨBJG</para>
-
- <itemizedlist>
- <listitem>
- <para>ۭqﶵ</para>
- </listitem>
-
- <listitem>
- <para>ۭq\</para>
- </listitem>
- </itemizedlist>
-
- <sect3>
- <title>ۭqﶵ</title>
-
- <para>zLק]wAiH]wΩ
- <application>NanoBSD</application> yL{ <literal>buildworld</literal>
- M <literal>installworld</literal> qsĶBw˿ﶵAH
- <application>NanoBSD</application> DnyL{ﶵC
- zLϥγoǿﶵiHdtΪؤoAϤJ
- 64 MB HСC z٥iHi@BzLoǿﶵӫd &os;A
- 쥦u]t kernel HΨT userland ɮ׬C</para>
-
- <para>]wɮפ]tΥHNw]Ȫ]wﶵC²̭nX]wpUG</para>
-
- <itemizedlist>
- <listitem>
- <para><literal>NANO_NAME</literal> &mdash; yW(ҫإߤu@ؿW)C</para>
- </listitem>
-
- <listitem>
- <para><literal>NANO_SRC</literal> &mdash; ΥHsĶByMɪ source tree mC</para>
- </listitem>
-
- <listitem>
- <para><literal>NANO_KERNEL</literal> &mdash; ]wΨӽsĶ kernel ]wɦWC</para>
- </listitem>
-
- <listitem>
- <para><literal>CONF_BUILD</literal> &mdash; Ω
- <literal>buildworld</literal> yqﶵC</para>
- </listitem>
-
- <listitem>
- <para><literal>CONF_INSTALL</literal> &mdash; Ω
- <literal>installworld</literal> yqﶵC</para>
- </listitem>
-
- <listitem>
- <para><literal>CONF_WORLD</literal> &mdash; Ω
- <literal>buildworld</literal> M
- <literal>installworld</literal> oӥyqﶵC</para>
- </listitem>
-
- <listitem>
- <para><literal>FlashDevice</literal> &mdash; wqҥΪOJwC
- ԱаѦ <filename>FlashDevice.sub</filename> ɡC</para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>ۭq\</title>
-
- <para>zLb]wɮפϥ shell ơAiHi@BL
- <application>NanoBSD</application>C |һ@Uۦ楴yƪ򥻤覡G</para>
-
- <programlisting>cust_foo()(
- echo "bar=topless" &gt; \
- &dollar;{NANO_WORLDDIR}/etc/foo
-)
-customize_cmd cust_foo</programlisting>
-
- <para>U|IҤlA|w]
- <filename>/etc</filename> ؿjpAq 5MB վ㬰 30MBG</para>
-
- <programlisting>cust_etc_size()(
- cd &dollar;{NANO_WORLDDIR}/conf
- echo 30000 &gt; default/etc/md_size
-)
-customize_cmd cust_etc_size</programlisting>
-
- <para>~A٦Xӹw]\wqiHΨӦۭqG</para>
-
- <itemizedlist>
- <listitem>
- <para><literal>cust_comconsole</literal> &mdash; bw] VGA ܥdW &man.getty.8;
- (<filename>/dev/ttyv*</filename>)ñҥ serial port COM1 H@t consoleC</para>
- </listitem>
-
- <listitem>
- <para><literal>cust_allow_ssh_root</literal> &mdash; \ &man.sshd.8;
- iH <systemitem class="username">root</systemitem> bnJC</para>
- </listitem>
-
- <listitem>
- <para><literal>cust_install_files</literal> &mdash;
- q <filename>nanobsd/Files</filename>
- ؿwɮסAo]t@ǹΪtκ޲z script C</para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>]wɮ|</title>
-
- <para>UOΩۦ楴y <application>NanoBSD</application> MɪҤlG</para>
-
- <programlisting>NANO_NAME=custom
-NANO_SRC=/usr/src
-NANO_KERNEL=MYKERNEL
-NANO_IMAGES=2
-
-CONF_BUILD='
-NO_KLDLOAD=YES
-NO_NETGRAPH=YES
-NO_PAM=YES
-'
-
-CONF_INSTALL='
-NO_ACPI=YES
-NO_BLUETOOTH=YES
-NO_CVS=YES
-NO_FORTRAN=YES
-NO_HTML=YES
-NO_LPR=YES
-NO_MAN=YES
-NO_SENDMAIL=YES
-NO_SHAREDOCS=YES
-NO_EXAMPLES=YES
-NO_INSTALLLIB=YES
-NO_CALENDAR=YES
-NO_MISC=YES
-NO_SHARE=YES
-'
-
-CONF_WORLD='
-NO_BIND=YES
-NO_MODULES=YES
-NO_KERBEROS=YES
-NO_GAMES=YES
-NO_RESCUE=YES
-NO_LOCALES=YES
-NO_SYSCONS=YES
-NO_INFO=YES
-'
-
-FlashDevice SanDisk 1G
-
-cust_nobeastie()(
- touch &dollar;{NANO_WORLDDIR}/boot/loader.conf
- echo "beastie_disable=\"YES\"" &gt;&gt; &dollar;{NANO_WORLDDIR}/boot/loader.conf
-)
-
-customize_cmd cust_comconsole
-customize_cmd cust_install_files
-customize_cmd cust_allow_ssh_root
-customize_cmd cust_nobeastie</programlisting>
- </sect3>
- </sect2>
-
- <sect2>
- <title>s NanoBSD</title>
-
- <para>s <application>NanoBSD</application> ۹ &os; Ө²G</para>
-
- <procedure>
- <step>
- <para>Me@˥ys <application>NanoBSD</application> MɡC</para>
- </step>
-
- <step>
- <para>NsMɩJB檺
- <application>NanoBSD</application> ΪΰϤ@C</para>
-
- <para>Pe̪w <application>NanoBSD</application> BJۤA
- o@BJ̭nϧObGo <filename>_.disk.full</filename> (]tӺϺЪM)A
- w <filename>_.disk.image</filename> M(oɮפAu]t@ӨtΤΰ)C</para>
- </step>
-
- <step>
- <para>sҰʡAñqsw˪ΰϤҰʨtΡC</para>
- </step>
-
- <step>
- <para>pG@QܡAɯŤu@NFC</para>
- </step>
-
- <step>
- <para>pGoͤFDAhiHqeΰϱҰ
- (䤤]tFªB iΪM)AӺɧ֫_tΥ\C
- UӥiHץssĶsbDAíƫezBJC</para>
- </step>
- </procedure>
-
- <para>nbbB檺
- <application>NanoBSD</application> tΤw˷sMɡAiHϥΦ
- <filename>/root</filename> ؿ
- <filename>updatep1</filename>
- <filename>updatep2</filename> script A
- ڤWnέ@ scriptAhM󥿦bB檺tάOӤΰϦөwC</para>
-
- <para>Hɴѷs <application>NanoBSD</application> MɩҴѪAȡA
- HαĥΪǿkPAziHѦҨèϥΤUCTؤ覡@G</para>
-
- <sect3>
- <title>ϥ &man.ftp.1;</title>
-
- <para>pGǿt׬OĤ@nDܡAбĥΤUҤlG</para>
-
- <screen>&prompt.root; <userinput>ftp myhost
-get _.disk.image "| sh updatep1"</userinput></screen>
- </sect3>
-
- <sect3>
- <title>ϥ &man.ssh.1;</title>
-
- <para>pGQwܡAѦҤUҤlG</para>
-
- <screen>&prompt.root; <userinput>ssh myhost cat _.disk.image.gz | zcat | sh updatep1</userinput></screen>
- </sect3>
-
- <sect3>
- <title>ϥ &man.nc.1;</title>
-
- <para>pG{DJ &man.ftp.1; AȡA] &man.sshd.8; AȪܡG</para>
-
- <procedure>
- <step>
- <para>AbѬMɪDW} TCP listenAMɶǵ clientG</para>
-
- <screen>myhost&prompt.root; <userinput>nc -l 2222 &lt; _.disk.image</userinput></screen>
-
- <note>
- <para>нT{zҨϥΪ port SQӦ
- <application>NanoBSD</application> client suШDC</para>
- </note>
- </step>
- <step>
- <para>s촣ѷsMɪAȪDAð <filename>updatep1</filename> o scriptG</para>
-
- <screen>&prompt.root; <userinput>nc myhost 2222 | sh updatep1</userinput></screen>
- </step>
- </procedure>
- </sect3>
- </sect2>
- </sect1>
-
- <index/>
-</article>
diff --git a/zh_TW.Big5/articles/remote-install/article.xml b/zh_TW.Big5/articles/remote-install/article.xml
deleted file mode 100644
index f676dce8ec..0000000000
--- a/zh_TW.Big5/articles/remote-install/article.xml
+++ /dev/null
@@ -1,475 +0,0 @@
-<?xml version="1.0" encoding="big5"?>
-<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
- "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
-<!--
- The FreeBSD Documentation Project
- The FreeBSD Chinese (Traditional) Documentation Project
-
- Original Revision: 1.5
-
--->
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="zh_tw">
- <info><title>ݦw &os; @~tΦӤ Remote Console</title>
-
-
- <author><personname><firstname>Daniel</firstname><surname>Gerzo</surname></personname><affiliation>
- <address><email>danger@FreeBSD.org</email></address>
- </affiliation></author>
-
- <legalnotice xml:id="trademarks" role="trademarks">
- &tm-attrib.freebsd;
- &tm-attrib.general;
- </legalnotice>
-
- <copyright>
- <year>2008</year>
- <holder>The &os; Documentation Project</holder>
- </copyright>
-
- <pubdate>$FreeBSD$</pubdate>
-
- <releaseinfo>$FreeBSD$</releaseinfo>
-
- <abstract>
- <para>夶ЦpbSks컷 console &os; ݦwˡC
- cQӦ۩@̻P &a.mm; X@GA
- H &a.pjd; ҧ`ѦhߦC</para>
- </abstract>
- </info>
-
- <sect1 xml:id="background">
- <title>t_</title>
-
- <para>@W\h server hosting providerA䤤x䴩 &os;
- hO۷hC L̳q`|bҴѪW &linux; distribution
- wˤ䴩C</para>
-
- <para>Ƿ|ziܳߦn &linux; distribution ӸˡA
- oرpNiHյۦw &os;C ӦǫhO|ѱϫΪtΡA
- oؤ]iHΨӦw &os;C</para>
-
- <para>夶гoǻݰ򥻦w &os; 覡AH RAID-1 P
- <application>ZFS</application> ]wBJC</para>
- </sect1>
-
- <sect1 xml:id="intro">
- <title></title>
-
- <para>K@U媺تHĭzoҲ[\FC
- Lx䴩 &os; NުA(colocation)ΤӨA
- 夤ҤШ쪺O|۷ΡC</para>
-
- <procedure>
- <step>
- <para>pe <link linkend="background">t_</link> Ҵ쪺A\hWn٤઺
- server hosting q|Ѥ@DZϫΨtΡAiHzL
- <acronym>LAN</acronym> 覡}A]iHzL
- <application>SSH</application> 覡i޲zC q`|ӥ[ȪAȡA
- HL̪ȤiHsiӭ״_D@~tΡC
- `NЦpzLϫtΨӦw &os;C</para>
- <!-- XXXTR: Solaris has a restore command, something like
- sysrestore, FreeBSD Should have one too. -->
- </step>
-
- <step>
- <para>U@`|Цpb]wHΥy̤p &os; XX
- Ӫ̫|bݾWzL ramdisk 覡ҰʡAåH
- <application>sysinstall</application> q <acronym>FTP</acronym>
- mirror Ӧw˧㪺 &os; @~tΡC</para>
- </step>
-
- <step>
- <para>lNЦw˵{ǡAH <application>ZFS</application>
- ɮרtΪ]wC</para>
- </step>
- </procedure>
-
- <sect2 xml:id="requirements">
- <title>ݨD</title>
-
- <para>F\ݦwˡAnG</para>
-
- <itemizedlist>
- <listitem>
- <para>niHW@~tΡAåB <application>SSH</application>
- iHsuC</para>
- </listitem>
-
- <listitem>
- <para>A &os; w˵{</para>
- </listitem>
-
- <listitem>
- <para>xpϥ &man.sysinstall.8;</para>
- </listitem>
-
- <listitem>
- <para> &os; w˥ФΪ <acronym>ISO</acronym> image </para>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
-
- <sect1 xml:id="preparation">
- <title>dz - <application>mfsBSD</application></title>
-
- <para>b &os; eAny̤pƪ &os; @~t image ɡA
- HKiHqwФW}C p@ӡAstδNiHzLӾާ@A
- ӳѤUӪw˳YizL consoleC</para>
-
- <para> <application>mfsBSD</application> oMuNOΨӥyp
- &os; image ɡC <application>mfsBSD</application> (Wr䤤
- <quote>mfs</quote> NO <quote>memory file system</quote>)ҫسyXӪ
- Mtη|zL ramdisk 覡ӹB@C ѩ󦹤@SAwЪNA
- ]iHΨӦw˧㪺 &os; @~tΡC <application>mfsBSD</application>
- <uri xlink:href="http://people.freebsd.org/~mm/mfsbsd/">http://people.freebsd.org/~mm/mfsbsd/</uri>A
- 䤤sӤu㪺̷s release C</para>
-
- <para>Ъ`NG<application>mfsBSD</application> B@覡Ӹ`A
- b夶нd򤧤C Yo譱쪺Ū̡Ai
- <application>mfsBSD</application> xd\C</para>
-
- <para>U̷s <application>mfsBSD</application> øYA
- MY᪺u@ؿA]NO <application>mfsBSD</application>
- script ɩҦbBG</para>
-
- <screen>&prompt.root; <userinput>fetch http://people.freebsd.org/~mm/mfsbsd/mfsbsd-latest.tar.gz</userinput>
-&prompt.root; <userinput>tar xvzf mfsbsd-1.0-beta1.tar.gz</userinput>
-&prompt.root; <userinput>cd mfsbsd-1.0-beta1/</userinput></screen>
-
- <sect2 xml:id="mfsbsd-config">
- <title>]w <application>mfsBSD</application></title>
-
- <para>bN <application>mfsBSD</application> }eA
- Xӭn]wn]C ɳ̭n]wAܩNO]wC
- 쩳]̦nAhMҳBҡA
- HθӺd|H@Xʵ{JөwC ڭ̱N|ݨ
- <application>mfsBSD</application> pbpUi]wC</para>
-
- <para>t@󭫭nƴNO]w <systemitem class="username">root</systemitem> KXC
- oIiHzL <filename>conf/rootpw.conf</filename> ӧC
- ФOGɱKXOH覡sA]iju`bΪKXC
- MӳoKXuO{ɱKXӤwAiHb}ɦA󴫡C</para>
-
- <sect3>
- <title>]w(<filename>conf/interfaces.conf</filename> 覡)</title>
-
- <para>Yn˪d٤DO@ڡAiH[Q
- <application>mfsBSD</application> ۰ʰ\C
- <application>mfsBSD</application> } script |ھںd MAC
- }dӰTXʵ{AOUC
- <filename>conf/interfaces.conf</filename> ]weG</para>
-
- <programlisting>initconf_interfaces="ext1"
-initconf_mac_ext1="00:00:00:00:00:00"
-initconf_ip_ext1="192.168.0.2"
-initconf_netmask_ext1="255.255.255.0"</programlisting>
-
- <para>OѤFb <filename>conf/rc.conf</filename> n[W
- <literal>defaultrouter</literal> ]wG</para>
-
- <programlisting>defaultrouter="192.168.0.1"</programlisting>
- </sect3>
-
- <sect3>
- <title>]w(<filename>conf/rc.conf</filename> 覡)</title>
-
- <para>YwgDdO@ءAn]wܪ
- <filename>conf/rc.conf</filename> |KC
- ɳ]wykP &os; зǪ &man.rc.conf.5; O@PC</para>
-
- <para>|ӨҤlAYDӾdO &man.re.4;ANb
- <filename>conf/rc.conf</filename> UC]wG</para>
-
- <programlisting>defaultrouter="192.168.0.1"
-ifconfig_re0="inet 192.168.0.2 netmask 255.255.255.0"</programlisting>
- </sect3>
- </sect2>
-
- <sect2 xml:id="mfsbsd-build">
- <title>y <application>mfsBSD</application> image</title>
-
- <para>y <application>mfsBSD</application>
- image ɪL{۷²C</para>
-
- <para>O &os; w˥ЩΪ̦w˥Ϊ <acronym>ISO</acronym> image
- ɥ <filename>/cdrom</filename>C
- ҦҤl@PA尲]O &os; 7.0-RELEASE
- <acronym>ISO</acronym>C ӧ ISO image ɱ <filename>/cdrom</filename> ؿ۷²A
- NO &man.mdconfig.8;G</para>
-
- <screen>&prompt.root; <userinput>mdconfig -a -t vnode -u 10 -f 7.0-RELEASE-amd64-disc1.iso</userinput>
-&prompt.root; <userinput>mount_cd9660 /dev/md10 /cdrom</userinput></screen>
-
- <para>۴N}lyi} <application>mfsBSD</application>
- imageG</para>
-
- <screen>&prompt.root; <userinput>make BASE=/cdrom/7.0-RELEASE</userinput></screen>
-
- <note>
- <para>Wz <command>make</command> Onb
- <application>mfsBSD</application> ̤WhؿA軡 <filename>~/mfsbsd-1.0-beta1/</filename>C</para>
- </note>
- </sect2>
-
- <sect2>
- <title><application>mfsBSD</application> }</title>
-
- <para>{b <application>mfsBSD</application> image wgƧA
- nWǨ컷ݾϫtΩΪ̹ww˪ &linux; distributionC
- nou@̾AXuNO <application>scp</application>G</para>
-
- <screen>&prompt.root; <userinput>scp disk.img root@192.168.0.2:.</userinput></screen>
-
- <para>FබQҰ <application>mfsBSD</application> imageA
- nɮשbw˾Ĥ@(i})wФWC
- ]ҤlĤ@}wХN <filename>sda</filename>A
- @kNUoˡG</para>
-
- <screen>&prompt.root; <userinput>dd if=/root/disk.img of=/dev/sda bs=1m</userinput></screen>
-
- <para>Y@QA image ɲ{bӷ|bĤ@wЪ
- <acronym>MBR</acronym> ϰϨåiH}li歫}FC iH
- &man.ping.8; u˴Ӿ}P_C @ ping 줧A
- NiHzL &man.ssh.1; sihAåB <systemitem class="username">root</systemitem>
- Hέ]wKXnJC</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="installation">
- <title>&os; @~tΪw</title>
-
- <para>{b <application>mfsBSD</application> wQҰʡAåBӥiHzL
- &man.ssh.1; 覡ӳsC `NЦpإ slice ΡB]w
- <application>gmirror</application> H@ RAID-1BpH
- <application>sysinstall</application> Ӧw &os;
- @~tΪ̤pƦwˡC</para>
-
- <sect2>
- <title>dzƵw</title>
-
- <para>n@OtmwЪŶ &os;AOإ slice ΰϡC
- ܩaAثeb]@~tάOJtΰO餺A
- ]nwаtmõLDC oǤu@iH
- <application>sysinstall</application> Ϊ̥H &man.fdisk.8; ft
- &man.bsdlabel.8; ӧC</para>
-
- <para>UwгMšC йUwЧ@UCOG</para>
-
- <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/ad0 count=2</userinput></screen>
-
- <para>ۡAHzDΪuӫإ slice Hγ]w labelC q`|ijH
- <application>sysinstall</application> uӧ@|PA
- Ϊ̬OjӤSӷ|Xlr &unix; зǤu(O &man.fdisk.8;,
- &man.bsdlabel.8;)Aoy]|@֤СC e̳b &os; Handbook
- <link xlink:href="&url.books.handbook;/install-steps.html">w
- &os;</link> `۷ԺɪСAҥHoDnnЪOpإ
- RAID-1 tΥH <application>ZFS</application>C
- o|ЫإߥH &man.gmirror.8; p mirrored ɮרtΡG
- <filename>/</filename> (ڥؿ), <filename>/usr</filename> H <filename>/var</filename>AӵwЪlѾlŶhqqH
- &man.zpool.8; <application>ZFS</application> mirrored ɮרt
- C Ъ`NGn &os; @~tθ˦nö}A~i]w
- <application>ZFS</application> ɮרtΡC</para>
-
- <para>UҤl|Цpإ slice H labelBbCӤΰϤWҥ
- &man.gmirror.8;BpbC mirrored ΰϤWإ
- <application>UFS2</application> ɮרtΡG</para>
-
- <screen>&prompt.root; <userinput>fdisk -BI /dev/ad0</userinput> <co xml:id="fdisk"/>
-&prompt.root; <userinput>fdisk -BI /dev/ad1</userinput>
-&prompt.root; <userinput>bsdlabel -wB /dev/ad0s1</userinput> <co xml:id="bsdlabel-writing"/>
-&prompt.root; <userinput>bsdlabel -wB /dev/ad1s1</userinput>
-&prompt.root; <userinput>bsdlabel -e /dev/ad0s1</userinput> <co xml:id="bsdlabel-editing"/>
-&prompt.root; <userinput>bsdlabel /dev/ad0s1 &gt; /tmp/bsdlabel.txt &amp;&amp; bsdlabel -R /dev/ad1s1 /tmp/bsdlabel.txt</userinput> <co xml:id="bsdlabel-restore"/>
-&prompt.root; <userinput>gmirror label root /dev/ad[01]s1a</userinput> <co xml:id="gmirror1"/>
-&prompt.root; <userinput>gmirror label var /dev/ad[01]s1d</userinput>
-&prompt.root; <userinput>gmirror label usr /dev/ad[01]s1e</userinput>
-&prompt.root; <userinput>gmirror label -F swap /dev/ad[01]s1b</userinput> <co xml:id="gmirror2"/>
-&prompt.root; <userinput>newfs /dev/mirror/root</userinput> <co xml:id="newfs"/>
-&prompt.root; <userinput>newfs /dev/mirror/var</userinput>
-&prompt.root; <userinput>newfs /dev/mirror/usr</userinput></screen>
-
- <calloutlist>
- <callout arearefs="fdisk">
- <para>ӵwЫإ slice åBbĹsyBN}@lC
- йӾҦwг@@ʧ@C</para>
- </callout>
-
- <callout arearefs="bsdlabel-writing">
- <para>UwмgJ label H bootstrap XC</para>
- </callout>
-
- <callout arearefs="bsdlabel-editing">
- <para>{bʭקӵwЪ labelAܩpإߤΰ(partitions)
- аѾ\ &man.bsdlabel.8; C
- ΰϤOإߡG<literal>a</literal> O <filename>/</filename> (ڥؿ)A
- <literal>b</literal> swapA
- <literal>d</literal> <filename>/var</filename>A
- <literal>e</literal> <filename>/usr</filename>A
- ̫A|byBJ <literal>f</literal>
- <application>ZFS</application> ϥΡC</para>
- </callout>
-
- <callout arearefs="bsdlabel-restore">
- <para>誺 label ]wץXAAפJĤGwФWA
- p@Ө䪺w label ]wN|PˡC</para>
- </callout>
-
- <callout arearefs="gmirror1">
- <para>bUΰϤWҥ &man.gmirror.8;</para>
- </callout>
-
- <callout arearefs="gmirror2">
- <para>Ъ`NG<option>-F</option> ﶵOΦb swap WC
- oѼƷ| &man.gmirror.8; {ӵwOBiaAA
- Yϵo͹qG٩ΨtηA]|hPBC</para>
- </callout>
-
- <callout arearefs="newfs">
- <para>bUӦ mirror ΰϤWإ <application>UFS2</application>
- ɮרt</para>
- </callout>
- </calloutlist>
- </sect2>
-
- <sect2>
- <title>tΦw</title>
-
- <para>o̬O̭n@A
- `йڤWpbe@`ҰnwЦw˳̤pƪ &os;A
- F@ؼСAҦɮרtγA~
- <application>sysinstall</application> iH &os; ˨wФG</para>
-
- <screen>&prompt.root; <userinput>mount /dev/mirror/root /mnt</userinput>
-&prompt.root; <userinput>mkdir /mnt/var /mnt/usr</userinput>
-&prompt.root; <userinput>mount /dev/mirror/var /mnt/var</userinput>
-&prompt.root; <userinput>mount /dev/mirror/usr /mnt/usr</userinput></screen>
-
- <para>Wzʧ@Aа &man.sysinstall.8;C бqD椤
- <guimenuitem>Custom</guimenuitem> wˡA
- <guimenuitem>Options</guimenuitem> <keycap>Enter</keycap>C
- MHV䲾ʨ <literal>Install Root</literal> BA
- <keycap>Space</keycap> Mאּ <filename>/mnt</filename>AA <keycap>Enter</keycap>
- HNקȦs_ӡAM <keycap>q</keycap> Yi}o
- <guimenuitem>Options</guimenuitem> eC</para>
-
- <warning>
- <para>Ъ`NGBJnAYܨ
- <application>sysinstall</application> NSkw &os;C</para>
- </warning>
-
- <para>ۿ <guimenuitem>Distributions</guimenuitem>AMᲾʴШ
- <option>Minimal</option> BA <keycap>Space</keycap> C
- 大ҥHг̤pƦwˬOFn`ٺyqA]tΦwˬOzL
- <application>ftp</application> 覡ӶiC n}eAп
- <option>Exit</option> YiC</para>
-
- <note>
- <para>ܩ <guimenuitem>Partition</guimenuitem>
- <guimenuitem>Label</guimenuitem> BJhiLA
- ]oǥثewg]wFC</para>
- </note>
-
- <para>b <guimenuitem>Media</guimenuitem> 椤п
- <option>FTP</option>C п̪ mirror AåB
- <application>sysinstall</application> ]wg]C
- UӴN|^ <guimenuitem>Custom</guimenuitem> C</para>
-
- <para>̫AU <guimenuitem>Commit</guimenuitem> Yi}liwˡC
- w˫AYi} <application>sysinstall</application>C</para>
- </sect2>
-
- <sect2>
- <title>w˨BJ</title>
-
- <para> &os; @~tӤwg˧AM٦ǫy{nC
- n@ǫ]wA~ &os; iH}nJC</para>
-
- <para>{bn &man.chroot.8; Hs˦ntΤC
- OpUG</para>
-
- <screen>&prompt.root; <userinput>chroot /mnt</userinput></screen>
-
- <para>MAUCOH~򧹦G</para>
-
- <itemizedlist>
- <listitem>
- <para> <literal>GENERIC</literal> kernel ƻs
- <filename>/boot/kernel</filename>
- ؿG</para>
-
- <screen>&prompt.root; <userinput>cp -Rp /boot/GENERIC/* /boot/kernel</userinput></screen>
- </listitem>
-
- <listitem>
- <para>إ <filename>/etc/rc.conf</filename>,
- <filename>/etc/resolv.conf</filename>
- <filename>/etc/fstab</filename> ɮסC OѤFAnOob
- <filename>/etc/rc.conf</filename> ɳ]]wAHΧ
- <application>sshd</application> ҥΡC ~A
- <filename>/etc/fstab</filename> ӷ|UoˡG</para>
-
- <programlisting># Device Mountpoint FStype Options Dump Pass#
-/dev/mirror/swap none swap sw 0 0
-/dev/mirror/root / ufs rw 1 1
-/dev/mirror/usr /usr ufs rw 2 2
-/dev/mirror/var /var ufs rw 2 2
-/dev/cd0 /cdrom cd9660 ro,noauto 0 0</programlisting>
- </listitem>
-
- <listitem>
- <para>sW <filename>/boot/loader.conf</filename> ɡA
- åBeJUCG</para>
-
- <programlisting>geom_mirror_load="YES"
-zfs_load="YES"</programlisting>
- </listitem>
-
- <listitem>
- <para>UCOAHbU}ɱҥ <application>ZFS</application>
- G</para>
-
- <screen>&prompt.root; <userinput>echo 'zfs_enable="YES"' &gt;&gt; /etc/rc.conf </userinput></screen>
- </listitem>
-
- <listitem>
- <para>ϥ &man.adduser.8; uӷsWLϥΪ̱bC OѤFA
- ܤ֭n@ӱbo[J <systemitem class="groupname">wheel</systemitem> sաA
- ~b}Hӱb rootC</para>
- </listitem>
-
- <listitem>
- <para>AˬdWz]wAO_|ΥC</para>
- </listitem>
- </itemizedlist>
-
- <para>{bӨtβשiH}FAХ &man.reboot.8;
- OH}C</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="zfs">
- <title>ZFS</title>
-
- <para>tέ}AӴNiHnJFC wϥΥs &os; wˤ覡A
- zLݦӤW remote consoleI</para>
-
- <para>Uӥuѭnվ &man.zpool.8; HΫإ &man.zfs.8; ɮרtΦӤwC
- <application>ZFS</application> إߤκ޲zO۷LC A
- إ mirrored poolG</para>
-
- <screen>&prompt.root; <userinput>zpool create tank mirror /dev/ad[01]s1f</userinput></screen>
-
- <para>ۡAإɮרtΡG</para>
-
- <screen>&prompt.root; <userinput>zfs create tank/ports</userinput>
-&prompt.root; <userinput>zfs create tank/src</userinput>
-&prompt.root; <userinput>zfs set compression=gzip tank/ports</userinput>
-&prompt.root; <userinput>zfs set compression=on tank/src</userinput>
-&prompt.root; <userinput>zfs set mountpoint=/usr/ports tank/ports</userinput>
-&prompt.root; <userinput>zfs set mountpoint=/usr/src tank/src</userinput></screen>
-
- <para>@NOo²C Y &os; W <application>ZFS</application>
- Ӹ`AаѾ\ &os; Wiki W <link xlink:href="http://wiki.freebsd.org/ZFS">ZFS</link> @`C</para>
- </sect1>
-</article>
diff --git a/zh_TW.Big5/books/Makefile.inc b/zh_TW.Big5/books/Makefile.inc
deleted file mode 100644
index 7f3730bc40..0000000000
--- a/zh_TW.Big5/books/Makefile.inc
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# $FreeBSD$
-#
-
-DESTDIR?= ${DOCDIR}/zh_TW.Big5/books/${.CURDIR:T}
diff --git a/zh_TW.Big5/books/faq/book.xml b/zh_TW.Big5/books/faq/book.xml
deleted file mode 100644
index 774de27d1c..0000000000
--- a/zh_TW.Big5/books/faq/book.xml
+++ /dev/null
@@ -1,11876 +0,0 @@
-<?xml version="1.0" encoding="big5"?>
-<!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook XML V4.5-Based Extension//EN"
- "../../../share/xml/freebsd45.dtd" [
-<!ENTITY bibliography SYSTEM "../../../share/xml/bibliography.xml">
-]>
-
-<!-- The FreeBSD Traditional Chinese Documentation Project -->
-<!-- Original Revision: 1.772 -->
-
-<book lang='zh_tw'>
- <bookinfo>
- <title>FreeBSD 5.XB6.X `ݵ</title>
-
- <corpauthor>FreeBSD pe</corpauthor>
-
- <copyright>
- <year>1995</year>
- <year>1996</year>
- <year>1997</year>
- <year>1998</year>
- <year>1999</year>
- <year>2000</year>
- <year>2001</year>
- <year>2002</year>
- <year>2003</year>
- <year>2004</year>
- <year>2005</year>
- <year>2006</year>
- <year>2007</year>
- <year>2008</year>
- <holder>FreeBSD pe</holder>
- </copyright>
-
- &legalnotice;
-
- <legalnotice id="trademarks" role="trademarks">
- &tm-attrib.freebsd;
- &tm-attrib.3com;
- &tm-attrib.adobe;
- &tm-attrib.creative;
- &tm-attrib.cvsup;
- &tm-attrib.ibm;
- &tm-attrib.ieee;
- &tm-attrib.intel;
- &tm-attrib.iomega;
- &tm-attrib.linux;
- &tm-attrib.microsoft;
- &tm-attrib.mips;
- &tm-attrib.netscape;
- &tm-attrib.opengroup;
- &tm-attrib.oracle;
- &tm-attrib.sgi;
- &tm-attrib.sparc;
- &tm-attrib.sun;
- &tm-attrib.usrobotics;
- &tm-attrib.xfree86;
- &tm-attrib.general;
- </legalnotice>
-
- <releaseinfo>$FreeBSD$</releaseinfo>
-
- <abstract>
- <para>oO FreeBSD 5.X 6.X `ݵC
- DSO[A_hoǶسAΩ FreeBSD 5.0 ΥH᪺C
- (pGؤe &lt;XXX&gt; hO|ĶC)
- pGzU/½Ķpei榳쪺ܡAбH e-mail
- &a.doc;C~AHɥiq <ulink
- url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/faq/index.html">
- FreeBSD </ulink> o󪺳̷sC
- ]iHQ HTTP ӤU@ej <ulink url="book.html">HTML</ulink>
- AάOg <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">
- FreeBSD FTP </ulink> U¤rB&postscript;B PDF ɮסC
- z]iHbǫϥ <ulink
- url="&url.base;/search/search.html">jM</ulink> \C</para>
- </abstract>
- </bookinfo>
-
- <chapter id="introduction">
- <chapterinfo>
- <author>
- <firstname>Ying-Chieh</firstname>
- <surname>Liao</surname>
- <affiliation>
- <address><email>ijliao@FreeBSD.org</email></address>
- </affiliation>
- </author>
- </chapterinfo>
-
- <title>eB@D</title>
-
- <para>wϥ FreeBSD 4.X-6.X FAQ!</para>
-
- <para>L Usenet W FAQ @ˡAo[\F FreeBSD
- oM@~tγ̱`Qݨ쪺D (M]AF^I)C
- Mڭ̥ӪتOFֺWeOA
- HקKP˪D@AX{AƹW FAQ
- wQ{Oȱo\Ū귽C</para>
-
- <para>ڭ̤wgiaϳo FAQ ״IFCpGzpﵽB
- iB譱ijAHɱHqll &a.doc;C</para>
-
- <qandaset>
- <qandaentry>
- <question id="what-is-FreeBSD">
- <para>O FreeBSDH</para>
- </question>
-
- <answer>
- <para>²aӻAFreeBSD O@MiHb Alpha/AXP, AMD64
- &intel; EM64T, &i386; IA-64, PC-98, &ultrasparc; W檺
- UN*X-like @~tΡAOھ U.C. Berkeley Ҷ}oXӪ
- <quote>4.4BSD-Lite</quote>Aå[WF\h <quote>4.4BSD-Lite2</quote>
- Wj\CPɤ]ϥΤF U.C. Berkeley Ҷ}oXӨå
- William Jolitz Ө i386 <quote>Net/2</quote>A]NO
- <quote>386BSD</quote>A
- L{b 386BSD {XuѤUּٯdsb FreeBSD C
- ziHb <ulink url="&url.base;/index.html">FreeBSD
- </ulink> FreeBSD HΥiHzǤ򪺬TC</para>
-
- <para>FreeBSD wQsxaQ@ɦUaq渹BISPBsHB
- qMaBǥ͡AHήaxΤҨϥΡAΦbu@BШ|HήT֤WC</para>
-
- <para>pGQ FreeBSD `JơAЬ
- <ulink url="&url.books.handbook;/index.html">FreeBSD ϥΤU
- </ulink>C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="FreeBSD-goals">
- <para>oi FreeBSD تOH</para>
- </question>
-
- <answer>
- <para>FreeBSD peتOѥiHNϥΥBSnC
- ڭ̦b{X (Hέpޥ) WIXFjqߦA
- M|NIW^XALڭ̵藍|pC
- ڭ̬۫Hڭ̭n<quote></quote>
- NOѵ{XC@ӨϥΪ̡A
- ޥL̥ΨӷFFo@ӡA
- oǵ{X~QΦb̦haA]~o̳̤jįqC
- ڭ̬۫HoNOۥѳn̰򥻪ؼФ@A
- ӥBڭ̷|ɥOhC</para>
-
- <para>bڭ source tree {XOĥΩҿת <ulink
- url="http://www.FreeBSD.org/copyright/COPYING">GPL</ulink> άO
- <ulink url="http://www.FreeBSD.org/copyright/COPYING.LIB">LGPL
- </ulink> vŧiA
- MoǪvŧiOΨӫO٦ӫDϥΪ̪vQA
- OۥѤFǡC
- ѩo GPL nbӷ~ϥΤW|ް_D`vDA
- ]un|Aڭ̷|ɶqHĥΤeP
- <ulink url="http://www.FreeBSD.org/copyright/freebsd-license.html">
- FreeBSD v</ulink>nӨNo GPL vŧinC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="bsd-license-restrictions">
- <para>FreeBSD v󭭨ܡH</para>
- </question>
-
- <answer>
- <para>COoäOAhϥγoǵ{XAӬOAݫ
- FreeBSD oӭpeCpGAvJ{gܡAо\Ū<ulink
- url="http://www.FreeBSD.org/copyright/freebsd-license.html">
- v</ulink>C²aӻAovIiHCpUC</para>
-
- <itemizedlist>
- <listitem>
- <para>Фūź٬OzgFoӵ{C</para>
- </listitem>
-
- <listitem>
- <para>pGXDFAniڭ̡C</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="replace-current-OS">
- <para>FreeBSD iHNڲ{bbΪ@~tζܡH</para>
- </question>
-
- <answer>
- <para>jHӻOo˨SA
- ƹWoDèSon^C</para>
-
- <para>jHäOubϥΤ@ӧ@~tΡC
- L̨ϥΪOε{FӨε{~OuΨ@~tΪFC
- FreeBSD O]pΨӴѤ@ӱjB\৹㪺@~ҵε{ӰC
- 䴩FhsA줽ǮMnAqll\ŪnAøϵ{A
- {]pҡAAnAHδXGҦAQnFC
- j{iHa <ulink
- url="http://www.freebsd.org/ports/">Ports Collection</ulink>
- Ӻ޲zC</para>
-
- <para>OpGAQnϥΪε{ubYӯSw@~tΤW
- ܡAAN໴a⥦AΪ̫b FreeBSD Wܬۦ
- {~|CpGAQnO@ӱj줽ǩάOAAάO
- @íwu@AάOQbQ_ҤUu@ܡAFreeBSD L
- Oz̨οܡC@ɦUaܦhϥΪ̡A]Aǩθ` &unix; ޲z
- H FreeBSD L̰ߤ@W@~tΡC</para>
-
- <para>pGAOqL &unix; ഫ FreeBSD ܡA
- 򥻤WOjPpCOpGAeΪOϧάɭ@~tΡA
- ҦpO &windows; άOjѪ &macos; ܡA
- iNnh@IɶӾDz߫ &unix; 覡ӰC
- AiHqo FAQ M <ulink
- url="&url.books.handbook;/index.html">
- FreeBSD ϥΤU</ulink> ӤJC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="why-called-FreeBSD">
- <para>ns FreeBSDH</para>
- </question>
-
- <answer>
- <itemizedlist>
- <listitem>
- <para>ziHKOϥΥAYϬOΩӷ~γ~C</para>
- </listitem>
-
- <listitem>
- <para> FreeBSD @~tΧ㪺l{iHKOoAӥB
- ެObϥΡAGάOXiL{U譱]ṳp
- (׬O_Ωӷ~γ~)C</para>
- </listitem>
-
- <listitem>
- <para>HiHۥѦaLtΪ}ο~ץ{X[J
- source tree (MnŦXXӥM)C</para>
- </listitem>
- </itemizedlist>
-
- <para>SOȱo`NOo̪ <quote>free</quote> X{F⦸AӥB
- NO@˪G@إN <quote>KO</quote>At@إN
- <quote>ۥ</quote>CziH FreeBSD hzQnơAF@
- <emphasis>ҥ~</emphasis>AҦpzź FreeBSD OzgC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="differences-to-other-bsds">
- <para>FreeBSD NetBSD, OpenBSD HΨL
- open source BSD @~tΤ󤣦PBOH</para>
- </question>
-
- <answer>
- <para>James Howard b <ulink url="http://www.daemonnews.org/">
- DaemonNews</ulink> WgF <ulink
- url="http://ezine.daemonnews.org/200104/bsd_family.html">
- The BSD Family Tree</ulink> A̭FoǾvWγo
- *BSD aڭpetC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="latest-version">
- <para>̷s FreeBSD O@H</para>
- </question>
-
-<!--
- This answer is a hack to deal with the fact that for now there are
- multiple "latest" versions of FreeBSD.
- oӦIH^AƹW FreeBSD \hy̷szC
--->
-
- <answer>
- <para>N FreeBSD ثeoiӨAӥDnoiG
- <emphasis>5-STABLE</emphasis> ҵo(release) 5.X tCB
- <emphasis>6-STABLE</emphasis> ҵo(release) 6.X
- tCoӤC</para>
-
- <para>b 5.3 release eA4.X tC
- <emphasis>-STABLE</emphasis> C
- ۱q 5.3 }lA5.X tC}lWs
- <emphasis>-STABLE</emphasis> oiIA
- 4.X NuۭbjDW(pG|}׸ɡBw@)
- HΩҿת &quot;extended support&quot;
- AA|s}ʵoiCt@譱A5-STABLE
- MN~oAOѩ󥦥uO legacy LA
- ҥHjhƥDOwಾ 6-STABLE ~}oC</para>
-
-<!-- note: the entity definitions are out of date -->
- <para> &rel.current.date; ҵo檺 <ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE">&rel.current;</ulink>
- Oثe̷s <emphasis>6-STABLE</emphasis> F
- ө &rel2.current.date; ҵo檺 <ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel2.current;-RELEASE/">&rel2.current;</ulink>
- hOثe̷s <emphasis>5-STABLE</emphasis> C</para>
-
- <para>²aӻA<emphasis>-STABLE</emphasis> DnDDHO
- íwʤΧCܲʪݨDӹL̷s <emphasis>-CURRENT</emphasis>
- snapshot SOs\઺ݨDAҦp ISP Τq渹ϥΪ̡Co
- branch i| release AuA౵
- <emphasis>-CURRENT</emphasis> <emphasis>-STABLE</emphasis>
- eʳo@IA~ӥ <emphasis>-CURRENT</emphasis>C</para>
-
- <para>Release <link linkend="release-freq">CXӤ</link>~|o
- @CMpAܦhHM FreeBSD lXPBs]Ԩ
- <link linkend="current">&os.current;</link> M <link
- linkend="stable">&os.stable;</link> D)A]lX
- O@_abܰʪAҥHpGno򰵪ܱonWh
- OC</para>
-
- <para>Lh FreeBSD o污Ai FreeBSD W <ulink
- url="http://www.FreeBSD.org/releng/index.html">
- Release Engineering</ulink> oC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="current">
- <para>O &os.current;H</para>
- </question>
-
- <answer>
- <para><ulink
- url="&url.books.handbook;/cutting-edge.html#CURRENT">
- &os.current;</ulink> Oboi@~tΪA
- ױNbAɾ &os.stable; C
- bOuAXtεoi̥HΦݤO~lRn̨ϥΡC
- pGQno즳pϥ -CURRENT `JTAаѦ <ulink
- url="&url.books.handbook;/index.html">ϥΤU</ulink> <ulink
- url="&url.books.handbook;/cutting-edge.html#CURRENT">
- </ulink>C</para>
-
- <para>pGz@~tΥäOܼxAάOzSkzJ쪺
- DOuoͤFDάOȮɩʪppAzNӨϥ
- &os.current;CoӤ䪺{Xɭܰʱoܧ֡AӥBi|]
- ӨϱznXѪɶLksztΡCڭ̰]ϥ
- &os.current; ϥΪ̳OhRL̩ҹJ쪺DåBu^
- uDӫD<quote>pp</quote>CpGzb -CURRENT mailing
- list <quote>make world y@Ǧ groups
- ~</quote>DܡA]\|QLHC</para>
-
- <para>ڭ̨Cѳ|ھڥثe -CURRENT M -STABLE poӤU
- o@ <ulink url="&url.base;/snapshots/">snapshot
- </ulink> CɭԬƦٷ|oiѨoCoo snapshot
- تbG</para>
-
- <itemizedlist>
- <listitem>
- <para>ճ̷sw˵{C</para>
- </listitem>
-
- <listitem>
- <para>Ѥ@²檺kdzwϥ -CURRENT άO -STABLEA
- OSɶMWehCѪ@ŪϥΪ̡C</para>
- </listitem>
-
- <listitem>
- <para>Fڭ̵oi{Od@өTwѦIAHڭ̥
- ӳyC(M@Ө CVS iHoتiȨƥ :)
- </para>
- </listitem>
-
- <listitem>
- <para>FTOҦݭnժs\ೣiHo̦hաC</para>
- </listitem>
- </itemizedlist>
-
- <para>ڭ̤ -CURRENT snapshot Φ<quote>~O
- </quote>CpGAQnO@íwBgLRչLtΪܡA
- ̦nܨϥΧ release AάOϥ -STABLE snapshotsC</para>
-
- <para>ziHq <ulink
- url="&url.base;/snapshots/">
- snapshots</ulink> Bo -CURRENT
- snapshot releaseC</para>
-
- <para>CӦbʪӨACѳ|ͤ@ snapshotsC
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="stable">
- <para>O &os.stable;H</para>
- </question>
-
- <answer>
- <para>^ FreeBSD 2.0.5 oɭԡAڭ̨Mw FreeBSD oi
- C@s <ulink
- url="&url.books.handbook;/current-stable.html#STABLE">-STABLE
- </ulink>Aڭ̥u復~ץΤpTתק (oO ISP
- Mӷ~qA礤\णP쪺ҨϥΪ)C
- t~@s <ulink
- url="&url.books.handbook;/current-stable.html#CURRENT">-CURRENT
- </ulink>Aq 2.0 oHAN_aµ 6.2-RELEASE
- (t򪺪)eiۡC</para>
-
- <para>6-STABLE Oq 6.0-RELEASE }l (5-STABLE O
- 5.3-RELEASE ~}l)AM쥻 &os.current;
- N| 7-CURRENTC</para>
-
-
- <para>2.2-STABLE oӤH 2.2.8 oӥ\hC3-STABLE o
- hOb 3.5.1 oA]O 3.X ̫@oCᰣF
- w|}ץ~AoǤNXGSAʹLC
- 5-STABLE 䪺䴩N@qɶA
- DnJIȦbw譱|}BΤΨLYD׸ɡC</para>
-
- <para>6-STABLE Oثeboi -STABLE C 6-STABLE
- ̷s@oOb &rel.current.date; o檺
- &rel.current;-RELEASEC</para>
-
- <para>7-CURRENT oӤO &os; -CURRENT A
- M_aboiC pGQnDhoӤ䪺TܡA
- аѦ <link
- linkend="current">O &os;-CURRENTH</link>C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="naming">
- <para>FreeBSD RWhOOH</para>
- </question>
-
- <answer>
- <para>zi|ݨHUX FreeBSD W١G</para>
- <itemizedlist>
- <listitem>
- <para>1) 4.4.2-RELEASEB4.4-BETAG̫eƦr A.B.C ̡A
- A ܥDn@~tΪ(Major)A
- B ܦn@~tΪ(Minor)A
- C ܨǷLץ(Patch)C ᭱^ܬO_A
- q`Oժ(ALPHABBETABGAMMA)B(RELEASE)C</para>
- </listitem>
-
- <listitem>
- <para>2) 6.0-STABLEB7.0-CURRENTG
- q` FreeBSD |@ӥHois\ରDA٬ -CURRENT
- Aثe CURRENT O 7.0F FreeBSD
- ]|@ӥH@íwʤΨtΦwDA٬ -STABLEA
- ثe STABLE O 6.0C MpAäN -STABLE
- NSs\A]N _CURRENT NíwwA
- oӪOۻۦAӥBצ@ 7.0-CURRENT
- |ܦ 7.0-STABLEAӶ}l 8.0-CURRENT oiC L@ӻA
- ѩ -CURRENT tζ}ot׬۷֡A -STABLE
- ۤíwAӥB̦nO۷g窺ϥΪ̤~ӨϥΡC
- pGOӷ~ҩάOAxA̦n٬O] -STABLE P
- -RELEASE nC ѩ -STABLE P -CURRENT
- O@b}o@A
- ]S@ӯSwƦriH٩IA
- ]q`ڭ̷|HsĶӥNOӮɭԪ -STABLE -CURRENT
- AҦpu4.4-STABLEBsĶ 2001/10/08vC</para>
- </listitem>
-
- <listitem><para>
-3) 5.0-011025-SNAPB4.2-010816-RELENGG
- SNAP P RELENG äOo檺A䤤 3.0-970625-SNAP ܬO
- b 2001 ~ 10 25 o檺 5.0 ժ(SNAPshot)Aq`O CURRENT
- C 4.2-010816-RELENG ܬOb 2001 ~ 8 16 o檺
- 4.2 DíwAq`O STABLE C
- q` FreeBSD ֤ߤpշ|wX SNAP HѴաAMᦳ@ SNAP
- |ܦ ALPHA->BETA->GAMMAAAӬO RELEASEAӫi|wɪ
- RELENG HѴըϥΡAO RELENG íwʳq`Se RELEASE
- ӪnC</para>
- </listitem>
- </itemizedlist>
-
-<para>
-znOߺDLnNyAo˻nFASNAP O}oyXA
-Ӥ(011025)NOBuild NumberA ALPHA P BETA OmAA
-RELEASE(RELENG jj])OAoӤFѤFaC
-</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="release-freq">
- <para>Cs FreeBSD N󤰻ɭԱXH</para>
- </question>
-
- <answer>
- <para>@ӨA&a.re; C|Ӥo@ releaseACsoɵ{|ƥiA
- }oHN|DAɭԸӥ䪺påBչLA
- ~AoǧʳwgaչLAB|vTtíwסC
- MAoǦnFiJ -STABLE ɶOHoǤ@СA
- OjhƪϥΪ̳{oԷVA׬O FreeBSD ̦nuI@C</para>
-
- <para>o污hӸ`(]A release {Bi)Aib FreeBSD W
- <ulink url="http://www.FreeBSD.org/releng/index.html">o污</ulink> WoC</para>
-
- <para>Fǻݭn (ηQn) sAEPϥΪ̡A
- W(-CURRENT)wgڭ̨Cѳ|o snapshots iѨϥΡC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="responsible">
- <para>֭td FreeBSD oiH</para>
- </question>
-
- <answer>
- <para>pGO@Ǧ FreeBSD peʨMwAOӭpeV
- άOMw֥iH source tree ̪{XoơAOѤ@ӥ 9
- HҲզ <ulink
- url="&url.articles.contributors;/article.html#STAFF-CORE">core
- team</ulink> ӨMwCӦt@sWL 300 ӤH <ulink
- url="&url.articles.contributors;/article.html#STAFF-COMMITTERS">
- commiters</ulink> vQiHק FreeBSD source treeC
- </para>
-
- <para>LצpAjhƪܳ|ƫeb <link linkend="mailing">
- mailing lists</link> Q׹LAӥBACӤHiHѻPQסC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="where-get">
- <para>ڭnpo FreeBSDH</para>
- </question>
-
- <answer>
- <para>C FreeBSD niHgѰΦW ftp q <ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/">FreeBSD FTP </ulink>oG</para>
-
- <itemizedlist>
- <listitem>
- <para>pGݭn 6-STABLE ̷sA]NO &rel.current;-RELEASEAШ <ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/">&rel.current;-RELEASE </ulink>oӥؿ</para>
- </listitem>
-
- <listitem>
- <para><ulink url="ftp://current.FreeBSD.org/pub/FreeBSD/">7-CURRENT Snapshot</ulink>
- q`]OCѳ|@AoOq <link linkend="current">-CURRENT</link> 䰵XӪA
- DnOFѵǼߪժ̩M}oHC</para>
- </listitem>
-
- <listitem>
- <para>pGݭn 5-STABLE ̷sA]NO &rel2.current;-RELEASEAШ <ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel2.current;-RELEASE/">&rel2.current;-RELEASE </ulink>oӥؿ</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://current.FreeBSD.org/pub/FreeBSD/snapshots/">5.XB6X snapshots</ulink>
- q`Cѳ|@C</para>
- </listitem>
- </itemizedlist>
-
- <para>FreeBSD CDBDVDA٦Lo覡iHb <ulink url="&url.books.handbook;/mirrors.html">ϥΤU</ulink> ѵC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="access-pr">
- <para>ڭnphdߡBD^(Problem ReportA²PR)ƮwOH</para>
- </question>
-
- <answer>
- <para>ҦϥΪ̪ܧnDiHgѺ
- <ulink url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query">
- PRdߤ</ulink> ӹ (άO^) ڭ̪~^ƮwC</para>
-
- <para>]iHϥ &man.send-pr.1; oӫOzLqllӦ^DBnDܧC
- Ϊ̬Og <ulink url="http://www.FreeBSD.org/send-pr.html"> PR</ulink> ӰeXD^C</para>
-
- <para>MӡAbz^DeAХ\Ū <ulink
- url="&url.articles.problem-reports;/article.html">p󼶼g
- FreeBSD D^</ulink>AoO@giDAˤ~gX@guΪ
- D^C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="other-info-sources">
- <para>٦L FreeBSD TܡH</para>
- </question>
-
- <answer>
- <para>Ԩ <ulink
- url="http://www.FreeBSD.org">FreeBSD</ulink> W <ulink
- url="http://www.FreeBSD.org/docs.html"></ulink> CC</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="support">
- <chapterinfo>
- <author>
- <firstname>Chin-San</firstname>
- <surname>Huang</surname>
- <affiliation>
- <address><email>chinsan.tw@gmail.com</email></address>
- </affiliation>
- </author>
- </chapterinfo>
-
- <title>P޳N䴩</title>
-
- <qandaset>
- <qandaentry>
- <question id="books">
- <para> FreeBSD ǦnѥiH˾\ŪܡH</para>
- </question>
-
- <answer>
- <para>FreeBSD pewoF۷sxd򪺤Aib <ulink
- url="http://www.FreeBSD.org/docs.html"></ulink> oCt~A
- FreeBSD manual(@q٪man)Bdoc]pPMn@ˡAiHPa˦bztΤWC
- </para>
-
- <para>~A]ijѾ\ FAQ ̫ҦCѦҮѥت(Bibliography)P FreeBSD ϥΤUC
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="doc-formats">
- <para>oǤ󦳨L榡ܡHOG¤r(ASCII) &postscript; 榡H</para>
- </question>
-
- <answer>
- <para>CoǤ󳣤OHP榡xsHYBzAb
- FTP WAiHqU FreeBSD FTP <ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">/pub/FreeBSD/doc/</ulink>
- ؿAnC</para>
-
- <para>󪺤譱DnO@ǤPʽҲզG</para>
-
- <itemizedlist>
- <listitem>
- <para>W١ApG<literal>faq(`ݵ)</literal>άO
- <literal>handbook(FreeBSD ϥΤU)</literal>C</para>
- </listitem>
-
- <listitem>
- <para>U½ĶGoDnO locale W٨ӨMw
- (MܡAiѦұz FreeBSD @~tΤW <filename>/usr/share/locale</filename>)
- ثe`@UCXػy(νsX)½ĶG</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Locale W</entry>
-
- <entry>(ҥNytBsX)</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><literal>en_US.ISO8859-1</literal></entry>
-
- <entry>^(US English)</entry>
- </row>
-
- <row>
- <entry><literal>de_DE.ISO8859-1</literal></entry>
-
- <entry>w(German)</entry>
- </row>
-
- <row>
- <entry><literal>es_ES.ISO8859-1</literal></entry>
-
- <entry>Z(Spanish)</entry>
- </row>
-
- <row>
- <entry><literal>fr_FR.ISO8859-1</literal></entry>
-
- <entry>k(French)</entry>
- </row>
-
- <row>
- <entry><literal>it_IT.ISO8859-15</literal></entry>
-
- <entry>qjQ(Italian)</entry>
- </row>
-
- <row>
- <entry><literal>ja_JP.eucJP</literal></entry>
-
- <entry>(JapaneseAsX覡GEUC)</entry>
- </row>
-
- <row>
- <entry><literal>ru_RU.KOI8-R</literal></entry>
-
- <entry>X(RussianAsX覡GKOI8-R)</entry>
- </row>
-
- <row>
- <entry><literal>zh_CN.GB2312</literal></entry>
-
- <entry>²餤(Simplified ChineseAsX覡GGB2312)</entry>
- </row>
-
- <row>
- <entry><literal>zh_TW.Big5</literal></entry>
-
- <entry>餤(Traditional ChineseAsX覡GBig5)</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <note>
- <para>WCU½Ķyt󤤡AëDҦ󳣦½ĶC</para>
- </note>
- </listitem>
-
- <listitem>
- <para>󪺮榡GC󳣥HUؤP榡xsACخ榡UnaA
- Ǯ榡AXuW\ŪAӦǫhAXCLX[C
- ڭ̳ѳoǤP榡AӽTOL׬OùWBCLȥACӤHiH`a\ŪeA
- ثeiѨϥΪ榡pU:</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>榡</entry>
-
- <entry></entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><literal>html-split</literal></entry>
-
- <entry>`Ҧ</entry>
- </row>
-
- <row>
- <entry><literal>html</literal></entry>
-
- <entry>Ҧ</entry>
- </row>
-
- <row>
- <entry><literal>pdb</literal></entry>
-
- <entry>Palm Pilot Ʈ榡Aϥ
- <ulink url="http://www.iSilo.com/">iSilo</ulink>
- {Ӿ\Ū</entry>
- </row>
-
- <row>
- <entry><literal>pdf</literal></entry>
-
- <entry>Adobe's PDF 榡</entry>
- </row>
-
- <row>
- <entry><literal>ps</literal></entry>
-
- <entry>&postscript; 榡</entry>
- </row>
-
- <row>
- <entry><literal>rtf</literal></entry>
-
- <entry>Microsoft's RTF榡<footnote>
- <para>ϥ MS Word Ӷ} RTF 榡ܡAܨä|۰ʧsC
- (b}ҤAn <keycombo
- action="simul"><keycap>CTRL</keycap><keycap>A</keycap></keycombo>,
- <keycombo
- action="simul"><keycap>CTRL</keycap><keycap>END</keycap></keycombo>,
- <keycap>F9</keycap>Aoˤl~|sƪܡC)</para>
- </footnote>
- </entry>
- </row>
-
- <row>
- <entry><literal>txt</literal></entry>
-
- <entry>¤r(ASCII)</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </listitem>
-
- <listitem>
- <para>YB]覡GثeTؤ覡G</para>
-
- <orderedlist>
- <listitem>
- <para>ĥ
- <literal>`Ҧ(html-split)</literal>A`ҦҲͪUɮ׷|ϥ
- &man.tar.1; YCɦW <filename>.tar</filename> ɮ״NO tar 榡C
- ۡA|AHUC覡AYC
- </para>
- </listitem>
-
- <listitem>
- <para>L榡ɮ׳|O@ɮסAɦWq`|OG
- <filename>book.<replaceable>榡</replaceable></filename>
- (|ҡG <filename>book.pdb</filename>A
- <filename>book.html</filename> ..᭱q`[Wy.榡z).</para>
- <para>ӳoɮ׷|OHYAiYAӦsYAC</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>榡</entry>
-
- <entry></entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><literal>zip</literal></entry>
-
- <entry>Zip 榡AYnb FreeBSD W zip ɡAhw
- <filename role="package">chinese/unzip</filename>
- <filename role="package">archivers/unzip</filename>C
- </entry>
- </row>
-
- <row>
- <entry><literal>bz2</literal></entry>
-
- <entry>BZip2 榡AMp zip 榡sxϥΡAOnBbiYpɮסC
- n bz2 榡ܡAݥw <filename role="package">archivers/bzip2
- </filename>C</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>ҥHO Handbook &postscript; 榡A|H BZip2 榡YA
- sb <filename>handbook/</filename> ؿA
- ɦWNO<filename>book.ps.bz2</filename>C</para>
- </listitem>
- </orderedlist>
- </listitem>
- </itemizedlist>
-
- <para>ܷQnU榡PYAAhnMwO_H FreeBSD <emphasis>M(package)</emphasis>
- AӤUC</para>
-
- <para>UBwˡypackageznBbGiHzL@ FreeBSD
- M޲z覡Ӷi޲zAp &man.pkg.add.1;
- &man.pkg.delete.1;C</para>
-
-
- <para>YMwnnUBwˡypackagezܡAnT{ҭnUɦWC
- peM(package)q`ObO <filename>packages</filename> ؿA
- CӤpeMɦWq`OG
- <filename><replaceable>W</replaceable>.<replaceable>yt</replaceable>.<replaceable>sX</replaceable>.<replaceable>榡</replaceable>.tgz</filename>
- C</para>
-
- <para>|ӨҤlA^媩 FAQ (榡 PDF)b package Ns
- <filename>faq.en_US.ISO8859-1.pdf.tgz</filename>C</para>
-
- <para>A|ӨҤlA媩 FAQ (榡 PDF)b package Ns
- <filename>faq.zh_TW.Big5.pdf.tgz</filename>C</para>
-
- <para>DoIANiHΤUOӦwˤ媩 FAQ MG</para>
-
- <screen>&prompt.root; <userinput>pkg_add ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/packages/faq.zh_TW.Big5.pdf.tgz</userinput></screen>
-
- <para>AiH &man.pkg.info.1; ӧXɮ׸˦bG</para>
-
- <screen>&prompt.root; <userinput>pkg_info -f faq.zh_TW.Big5.pdf</userinput>
-Information for faq.zh_TW.Big5.pdf:
-
-Packing list:
- Package name: faq.zh_TW.Big5.pdf
- CWD to /usr/share/doc/zh_TW.Big5/books/faq
-File: book.pdf
- CWD to .
-File: +COMMENT (ignored)
-File: +DESC (ignored)</screen>
-
- <para>pPzҬݨ쪺 <filename>book.pdf</filename> |Qw˨
- <filename>/usr/share/doc/zh_TW.Big5/books/faq</filename> C</para>
-
- <para>YQ package 覡wˡANݤʤUBYBƻsAQn\񪺦mhC</para>
-
- <para>|ҡA`Ҧ(split HTML)^ FAQ (Y &man.bzip2.1;)|b
- <filename>doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2</filename>
- nUBܡAhnG</para>
-
- <screen>&prompt.root; <userinput>fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2</userinput>
-&prompt.root; <userinput>bzip2 -d book.html-split.tar.bz2</userinput>
-&prompt.root; <userinput>tar xvf book.html-split.tar</userinput></screen>
-
- <para>oɧA|ݨ@ <filename>.html</filename> ɮסA
- Dnؿɬ <filename>index.html</filename>
- tDؿγsLC(YݭnܡA]iHƻsηhoɮרP@ؿU)</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="mailing">
- <para>̦ FreeBSD l׾(mailing lists)OH</para>
- </question>
-
- <answer>
- <para>oӰDAiHq FreeBSD ϥΤUW <ulink
- url="&url.books.handbook;/eresources.html#ERESOURCES-MAIL">l׾(mailing-lists)</ulink>
- oסC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="newsgroups">
- <para>ǥiHϥΪ FreeBSD sDs(news groups)O?</para>
- </question>
-
- <answer>
- <para>oץiHq FreeBSD ϥΤUW <ulink
- url="&url.books.handbook;/eresources-news.html">sDs(newsgroups)</ulink>
- oסC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="man">
- <para>b󤤱`ݨ "pf(4)"B"pfctl(8)" oǦr˥NNOH</para>
- </question>
-
- <answer>
- <para>o man `AtΤW@릳Kӳ`G</para>
- <itemizedlist>
- <listitem>
- <para>1->generl commands</para>
- </listitem>
-
- <listitem>
- <para>2->system calls and error numbers </para>
- </listitem>
-
- <listitem>
- <para>3->C libraries</para>
- </listitem>
-
- <listitem>
- <para>4->devices and device drivers</para>
- </listitem>
-
- <listitem>
- <para>5->file formats</para>
- </listitem>
-
- <listitem>
- <para>6->games</para>
- </listitem>
-
- <listitem>
- <para>7->miscellaneous information pages</para>
- </listitem>
-
- <listitem>
- <para>8->system maintenance and operation commands</para>
- </listitem>
- </itemizedlist>
-
- <para>pGpf(4) NO <command>man 4 pf</command>C</para>
- </answer>
- </qandaentry>
- <qandaentry>
- <question id="irc">
- <para> FreeBSD IRC (Internet Relay Chat)WDOH</para>
- </question>
-
- <answer>
- <para>Aj IRC D FreeBSD WDG</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="http://www.efnet.org/index.php">EFNet</ulink>
- <literal>#FreeBSD</literal> WDO FreeBSD ׾¡A
- iAXǷQҦΪ̷hϧLΪC
- o̬OѥΪWDADdƦܯAΡyʡBBʡB֪ZzA
- Ъ`NGڭ̤wgĵiLAFIWDig
- <hostid>irc.chat.org</hostid> iJC</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.efnet.org/index.php">EFNet</ulink>
- <literal>#FreeBSDhelp</literal> WDDO FreeBSD
- ϥΪ̤yAӳo̴ݷ| <literal>#FreeBSD</literal>
- n@ǡAMФn@ѸHKðݡC</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.dal.net/">DALNET</ulink>
- <literal>#FreeBSD</literal> WDAi
- <hostid>irc.dal.net</hostid>()
- <hostid>irc.eu.dal.net</hostid>(ڬw)iJC</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.dal.net/">DALNET</ulink>
- <literal>#FreeBSDHelp</literal> WDAi
- <hostid>irc.dal.net</hostid>()
- <hostid>irc.eu.dal.net</hostid>(ڬw)iJC</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.undernet.org/">UNDERNET</ulink>
- <literal>#FreeBSD</literal> WDAi
- <hostid>us.undernet.org</hostid>()
- <hostid>eu.undernet.org</hostid>(ڬw)iJC
- ѩoOӻUsΪWDA
- аOo\ŪOHVAΪsɮסC</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.rusnet.org.ru/">RUSNET</ulink>
- <literal>#FreeBSD</literal> WDOXya &os; ϥΪWDC
- o̦Pɤ]O@yQצnhBC</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://freenode.net/irc_servers.shtml">freebsd-gnome
- </ulink> <literal>#FreeBSD</literal> WDAi
- <hostid>irc.freenode.net</hostid> iJA
- oO Gnome &os; ϥΪWDC</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://freenode.net/irc_servers.shtml">freenode</ulink>
- <literal>#bsdchat</literal> WDAi
- <hostid>irc.freenode.net</hostid> iJA
- oOxW &os; ϥΪWDC(UTF-8 sX)</para>
- </listitem>
- </itemizedlist>
-
- <para>WzCWD@ˡA~ӦUSABèS۳sA
- ]AAohդ~AXۤvWDC
- ӦǦaPҦ IRC ANOЪ`NۤvO_A
- t~iWD@Ǧ~/Ѥ@|ǥNݭnAA
- `ЦhO§C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="training">
- <para>iHqo FreeBSD Ш|ҵ{VmΧ޳N䴩OH</para>
- </question>
-
- <answer>
- <para>DaemonNews M FreeBSD Ш|ҵ{VmΧ޳N䴩C
- ԱШ <ulink url="http://www.bsdmall.com/">BSD Mall</ulink>
- ݡA¡C</para>
-
- <para>FreeBSD Mall BSD ޳N䴩IOAȡA
- ԱШ <ulink
- url="http://www.freebsdmall.com/">FreeBSD Mall</ulink> ݡA¡C</para>
-
-
- <para>L󦳴ѱШ|ҵ{VmΧ޳N䴩´BAY]QC󦹪ܡA
- лP &a.doc; pA¡C</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter
- id="install">
- <chapterinfo>
- <author>
- <firstname>Nik</firstname>
- <surname>Clayton</surname>
- <affiliation>
- <address><email>nik@FreeBSD.org</email></address>
- </affiliation>
- </author>
- </chapterinfo>
-
- <title>w</title>
-
- <qandaset>
- <qandaentry>
- <question id="floppy-download">
- <para>YnγnФ}Ӧw FreeBSD ܡAnUɮשOH</para>
- </question>
-
- <answer>
- <para>&os; 4.X ܡAݭn image ɡG
- <filename>floppies/kernel.flp</filename>
- <filename>floppies/mfsroot.flp</filename>Cimage ɥΤu㹳O
- <command>fdimage</command> &man.dd.1; ӶǰeϤWC
- YOb &os; 5.3 (Τ᪩)sW}[cAҥHn쪺O
- <filename>floppies/boot.flp</filename> H <filename>floppies/kern<replaceable>X</replaceable></filename>
- ɮ(ثe X 1 2 ӡA[W <filename>floppies/boot.flp</filename>A`@O 3 ɮ)C</para>
-
- <para>YQۤvU distributions (pH &ms-dos; ɮרtή榡w)A
- HUOijn쪺 distributions G</para>
-
-
- <itemizedlist>
- <listitem>
- <para>base/ (4.X h bin/)</para>
- </listitem>
-
- <listitem>
- <para>manpages/</para>
- </listitem>
-
- <listitem>
- <para>compat*/</para>
- </listitem>
-
- <listitem>
- <para>doc/</para>
- </listitem>
-
- <listitem>
- <para>src/ssys.*</para>
- </listitem>
- </itemizedlist>
-
-
- <para>w˨BJHΤjw˰DAаѾ\ FreeBSD ϥΤU
- <ulink url="&url.books.handbook;/install.html">w FreeBSD</ulink> `</para>
-
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="floppy-image-too-large">
- <para>YϤˤU image ɪܡAӫOH</para>
- </question>
-
- <answer>
- <para>@i 3.5 ^T(1.44MB) ϺФOiHˤW 1474560 bytes
- AӶ} image ɮפjpڤW]O 1474560 bytesC</para>
-
- <para>bs@}ɡA`~G</para>
-
- <itemizedlist>
- <listitem>
- <para>ϥ <acronym>FTP</acronym> ӤUɮ׮ɡA
- <emphasis>binary</emphasis> ǿҦӤUC</para>
-
-
- <para> FTP clientݵ{AOw]NǿҦ]w
- <emphasis>ascii</emphasis> ҦAӥB|קﱵ쪺ɮצrꬰ client ݪ@~tΤ覡
- Ap newline(&unix;榡) F@~tά &windows; client ݷ|Qאּ CR-LF(&ms-dos;榡)A
- o|ϱo image ɥDקӵLk`ϥΡC]ApGU image
- ɮפjpYP FTP DWɮסy<emphasis>@P</emphasis>z
- ܡAЭsϥ binary ǿҦUYiC</para>
-
- <para>FTP O: iJ FTP A <emphasis>binary</emphasis>
- OAYi binary ǿҦAMAU image ɮסC</para>
- </listitem>
-
- <listitem>
- <para> &ms-dos; <command>copy</command> O(
- GUI {BάOWƻs)ӽƻs}Ϊ image ɨϤWC
- </para>
-
- <para>iHιO <command>copy</command> o{N image
- ɽƻsϤWA] image ɥ]tF㪺ϭyơAҥH¥νƻs覡A
- ӥϥΧCu{(O <command>fdimage</command> <command>rawrite</command>)A
- H <quote>raw</quote> 覡ǰeϤWC(oiѾ\ FreeBSD ϥΤUW <ulink
- url="&url.books.handbook;/install.html">w FreeBSD</ulink>)</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="install-instructions-location">
- <para>iHbw FreeBSD ѻBJOH</para>
- </question>
-
- <answer>
- <para>w˨BJѻAаѾ\ FreeBSD ϥΤUW
- <ulink url="&url.books.handbook;/install.html">w FreeBSD</ulink> `C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="need-to-run">
- <para>n] FreeBSD ݭn򪺰tƩOH</para>
- </question>
-
- <answer>
- <para>&os; 4.X eAwݨD 386 Χ󰪯Ū PC
- AO(RAM)ܤ֭n 5 MB ΧhAwЪŶܤ֭n 60 MB ΧhC
- LA&os; ytΦw˵{zO(RAM)ݨDܤ 16 MBC</para>
-
- <para>q &os; 5.X _AwݨD 486 Χ󰪯Ū PC
- AO(RAM)ܤ֭n 24 MB ΧhAwЪŶܤ֭n 150 MB ΧhC
- </para>
-
- <para>&os; ҦiHuΧC MDA WܥdAL...n] X11R6 ܡA
- ٬Oܤ֥ VGA ΧnW檺ܥdӥΧaC</para>
-
- <para>o]iѾ\ <xref linkend="hardware"/>C</para>
-
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="four-meg-ram-install">
- <para>ڹq RAM u 4MB ӤwAiH FreeBSD ܡH</para>
- </question>
-
- <answer>
- <para>w &os; 4.X OݨDܤ 5 MB A
- w &os; 5.X (t᪩) hOܤ֭n 8 MB C</para>
-
- <para>b 5.X eҦ &os; AiHu 4 MB O
- <emphasis>yB@z</emphasis>ALAe`ڭ̻LFytΦw˵{zܡA
- hLku 4 MB OӰC]AAiHbytΦw˵{zoBJeA
- NO[ 16 MB HWAw˧ FreeBSD ANiHhlO鮳UӡC
- Ϊ̬OAnw˪wЮ즳O骺W˦nA
- MAwЩ^C</para>
-
- <para>~Au 4 MB OӹB@ܡAnۻs kernel(nH묹@ǪF)C
- ]H\u 2 MB OH &os; }(Mo˪tδXGoF..)</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="custom-boot-floppy">
- <para>nˤ~ۦ楴yMΪ}Bw˺ϤOH</para>
- </question>
-
- <answer>
- <para>ثeA٨Sk<emphasis>yuz</emphasis>ۻsMΪ}Bw˺ϤC
- zLۦ楴y@~tΪ release(o)Ao˸̭~|]Aۤv}Bw˺ϤC</para>
-
- <para>YQۦ楴yBo(release)@ӧ㪺@~tΡAаѾ\og
- <ulink url="&url.articles.releng;/article.html">Release Engineering</ulink> 峹C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="windows-coexist">
- <para>&windows; iHP FreeBSD @sqWܡH</para>
- </question>
-
- <answer>
- <para> &windows; A FreeBSDC
- FreeBSD h}޲z(boot manager)N|X{AܭnH &windows;
- FreeBSD Ӷ}CLAYAO FreeBSD A &windows; ܡA
- &windows; N|ݥ_A FreeBSD h}޲z(boot manager)\A
- AJWoرpɡAаѦҤU@`C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="win95-damaged-boot-manager">
- <para>.. &windows; ڪh}޲z(boot manager)FInϦ^өOH</para>
- </question>
-
- <answer>
- <para>iHΥHUTؤ覡@AӱϦ^A FreeBSD h}޲z(boot manager)G</para>
-
- <itemizedlist>
- <listitem>
- <para>iHqU FreeBSD FTP <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">/pub/FreeBSD/tools/</ulink>
- <filename>bootinst.exe</filename> <filename>boot.bin</filename> oɡA
- H binary ǿҦUAƻsϤWAA DOS }}A
- ۥUOG</para>
-
- <screen><prompt>&gt;</prompt> <userinput>bootinst.exe boot.bin</userinput></screen>
-
- <para>oˡAh}޲z(boot manager)N|˧FC</para>
- </listitem>
-
- <listitem>
- <para> FreeBSD }}AM樺 Custom installation(ۭqw)A
- A PartitionAۿܧAn˦h}޲z(boot manager)w(q`OĤ@)A
- M|X{ partition editor eAoɽФnקA W xsA
- oɵ{N|ݬO_nTw Write A̫X{ Boot Manager ܵeA
- Oon <quote>Boot Manager</quote> Ao˴N|sNh}޲z(boot manager)
- w˨wФWC{bANj\iiH}w˿í}FC</para>
- </listitem>
-
- <listitem>
- <para> FreeBSD }άO}ж}AM樺 <quote>Fixit</quote>
- AάOH Fixit }άOЦw˪ĤG( <quote>live</quote> filesystem
- ﶵ)MN|iJ fixit shell FAۥUCOG</para>
-
- <screen><prompt>Fixit#</prompt> <userinput>fdisk -B -b /boot/boot0 <replaceable>bootdevice</replaceable></userinput></screen>
-
- <para>бNW <replaceable>bootdevice</replaceable> קאּzڪ}wХN
- p <devicename>ad0</devicename> (Ĥ@ IDE w)
- AάO<devicename>ad4</devicename> (first IDE disk on
- auxiliary controller), <devicename>da0</devicename> (Ĥ@
- SCSI w)C</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="boot-on-thinkpad">
- <para>IBM Thinkpad AtCBTtC XtCOq˧ FreeBSD ᭫}ANFAӫOH</para>
- </question>
-
- <answer>
- <para>(DDnOoͦb 2000 ~ 2001 |붡)o IBM W BIOS ӯ(bug)|
- FreeBSD ΰϻ~{O FAT 榡ΰϡAM BIOS յ۰ FreeBSD ΰϮɡAN|FC</para>
-
- <para>ھ IBM 譱k<footnote><para>@ʨӦ Keith
- Frechette e-mail <email>kfrechet@us.ibm.com</email>C</para></footnote>
- AHU/BIOSءAwgץG</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="2">
- <thead>
- <row>
- <entry></entry>
- <entry>BIOS </entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>T20</entry>
- <entry>IYET49WW(t)</entry>
- </row>
-
- <row>
- <entry>T21</entry>
- <entry>KZET22WW(t)</entry>
- </row>
-
- <row>
- <entry>A20p</entry>
- <entry>IVET62WW(t)</entry>
- </row>
-
- <row>
- <entry>A20m</entry>
- <entry>IWET54WW(t)</entry>
- </row>
-
- <row>
- <entry>A21p</entry>
- <entry>KYET27WW(t)</entry>
- </row>
-
- <row>
- <entry>A21m</entry>
- <entry>KXET24WW(t)</entry>
- </row>
-
- <row>
- <entry>A21e</entry>
- <entry>KUET30WW</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>oǫ IBM BIOS ׭qjhwgץ@ΡCJacques Vidrine g &a.mobile;
- <ulink url="http://docs.FreeBSD.org/cgi/mid.cgi?20010427133759.A71732">oʫH
- </ulink> WFYAs IBM OqLkQH FreeBSD }ѪkBJ
- (]iHɯũέ BIOS )C</para>
-
- <para>pGΪOj BIOSAӥBAXs BIOS ܡAHUڭ̷|мȮɸѪkA
- ЧApק FreeBSD ΰϩҨϥΪ ID Aæwˬ׸ɵ{C</para>
-
- <para>First, you will need to restore the machine to a state where
- it can get through its self-test screen. Doing this requires
- powering up the machine without letting it find a FreeBSD
- partition on its primary disk. One way is to remove the hard disk
- and temporarily move it to an older ThinkPad (such as a ThinkPad
- 600) or a desktop PC with an appropriate conversion cable. Once
- it is there, you can delete the FreeBSD partition and move the hard
- disk back. The ThinkPad should now be in a bootable state
- again.</para>
-
- <para>With the machine functional again, you can use the workaround
- procedure described here to get a working FreeBSD
- installation.</para>
-
- <procedure>
- <step>
- <para>q <ulink url="http://people.FreeBSD.org/~bmah/ThinkPad/"></ulink>
- ӤU <filename>boot1</filename> <filename>boot2</filename> oɡC
- oɮשbϤBЩΨLwФWC</para>
- </step>
-
- <step>
- <para>H@w FreeBSD ˨ ThinkPad WAOo
- <emphasis>ynΡz</emphasis> <literal>Dangerously
- Dedicated</literal> ҦC ~A<emphasis>ynz</emphasis>
- bwˤN}C</para>
- </step>
-
- <step>
- <para>iJ shellG( <keycombo action="simul"><keycap>ALT</keycap><keycap>F4</keycap></keycombo>)
- <quote>Emergency Holographic Shell</quote> άOW
- <quote>fixit</quote> shellC</para>
- </step>
-
- <step>
- <para> &man.fdisk.8; FreeBSD ΰ ID <literal>165</literal> אּ
- <literal>166</literal>(OpenBSDҨϥΪID)C</para>
- </step>
-
- <step>
- <para>责 <filename>boot1</filename>
- <filename>boot2</filename> oɮשثewɮרtΤWC</para>
- </step>
-
- <step>
- <para>H &man.disklabel.8; <filename>boot1</filename>
- <filename>boot2</filename> sA FreeBSD slice WC</para>
-
- <screen>&prompt.root; <userinput>disklabel -B -b boot1 -s boot2 ad0s<replaceable>n</replaceable></userinput></screen>
-
- <para><replaceable>unv</replaceable> OA FreeBSD sliceA
- бN <replaceable>unv</replaceable> אּŦXAtβ{p sliceC</para>
- </step>
-
- <step>
- <para>}Ab boot prompt |ݨ즳 <literal>OpenBSD</literal> ﶵA
- 復Ao˴N|H FreeBSD }C</para>
- </step>
- </procedure>
-
- <para>t~Aܩp OpenBSD FreeBSD æsbP@x IBM ThinkPad W...
- oӰDN浹Uݭ̥hդF :p</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="install-bad-blocks">
- <para>aywХiHӸ FreeBSD H</para>
- </question>
-
- <answer>
- <para>(pGܰ)]OiHALoQkMөC:(</para>
-
- <para>pGb@s IDE wФWݨ즳ayAܦiNGowЧYNIFC
- (]ثeҦs IDE wСA۰ remapping ayOC
- pGݨ즳ayAhܥ۰ remapping \ॢġALkBzayA
- ]NOowФwgOYla{פFC)ڭ̫ijRswФܨǭC</para>
-
- <para>pGO SCSI wЦayܡAиյ۰Ѧҳo
- <link linkend="awre">Ѫk</link>C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="boot-floppy-strangeness">
- <para>Φw˺Ϥ}ɡAoǩDz{Ho͡IoO򱡪pOH</para>
- </question>
-
- <answer>
- <para>Yݨ@ǩDz{HAO}}}@bNFAϺоSʧ@B
- άO_Э}AХˬdHUXӽuG</para>
-
- <orderedlist>
- <listitem>
- <para>нTwO_sBSϭy~ϤH
- (̦nϥηsRAӫDxBѥتAƦ٩bɩUT~F...=_="")</para>
- </listitem>
-
- <listitem>
- <para>нTwO_ binary(image)ǿҦӤU image ɡH
- (ıonNAYϬOڭ̤]N~H ASCII ǿҦӤU binary ɮסI)</para>
- </listitem>
-
- <listitem>
- <para>YAO &windows; 95/98/ME/NT/2000/XP/2003 ӤUBs@}ϤܡA
- нTwO_b DOS Ҧϥ <command>fdimage</command>
- <command>rawrite</command> oӤu{Hoǧ@~tΡA
- |vT{hgJwAOs@}ʧ@C
- ɭԡAb GUI W DOS shell ]i|oͳo˪DC
- </para>
- </listitem>
- </orderedlist>
-
- <para>~AzL &netscape; sU image ɪܡA]{HC
- ҥHApGiHܡAЧΨLiHվ]w FTP clientݵ{ӶiUC
- (MAnOo binary ǿҦ)</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="no-install-cdrom">
- <para>Υж}ӦwˡAж}Aw˵{䤣...oOFH</para>
- </question>
-
- <answer>
- <para>q`Dbо]w~CثeܦhqXtзǰtƳоAåB
- |w]w IDE qDW Secondary Slave ]ơA Secondary W
- oS Master ]ơCH ATAPI WӨAoO~]wAM &windows; @k
- Oz|odzWW]wDAӥB} BIOS ]|LoIC
- o]NO BIOS iHݨСAåBiΥж}A FreeBSD
- Lk`ХHQiwˡC</para>
-
- <para>ѪkGs]wtΡAЦҳs IDE qD MasterA
- Ϊ̥u@ IDE qDܡANо Slave
- AM IDE qDWܤ֭n Master ]ơC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="install-PLIP">
- <para>ڥiH PLIP(Parallel Line IP)覡Ӧw FreeBSD 쵧OqWܡH</para>
- </question>
-
- <answer>
- <para>iHAΤ@q Laplink uNiHoCYo譱ݨDܡAаѾ\ FreeBSD ϥΤU
- <ulink url="&url.books.handbook;/network-plip.html">PLIP
- `</ulink> ӳ]w</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="geometry">
- <para>ӥέ@صwг]wѼ(geometry)OH</para>
- </question>
-
- <answer>
- <note>
- <para>o̪ywг]wѼ(geometry)zAOwФW
- ucylindersvBuheadsvBusectors/trackv oTӳ]wѼơC
- UӪ峹AFKСAN²٬yC/H/SzC
- odz]wѼƬO PC W BIOS බQa`POwСA
- PwХŪgn]C</para>
- </note>
-
- <para>豵⪺tκ޲z̷sӨAodz]wѼƱ`y@ǧxZC
- ASCSI wФW <emphasis>physical</emphasis> geometry
- FreeBSD W disk blocks OLCƹWA
- NwФWϰϱKתܤƦӨAèSҿסyphysical geometryzoتFC
- wлsyөһyphysical geometryzq`OG
- wФWҨϥγ̤pŶӦsƪ]wѼ(geometry)C
- H IDE wЦӨAFreeBSD ΥHswг]w覡O C/H/S A
- MӡAثeWwЦNbB@ɡAN۰ഫ block 覡
- FC</para>
-
- <para>u䪺aAOb y<emphasis>logical</emphasis>
- geometryzX oO BIOS wЮɩұo쪺]wAåBΨӨMwwЦs覡C
- ѩ FreeBSD Oĥ BIOS ]wȡAҥHp BIOS 쪺]wȫOTA
- OQnCרOP@wФWhӧ@~tΪpA
- ̳ĥΤ@Pwг]wѼ(geometry)A
- _hN|}ih@~tΪYDFC</para>
-
- <para>H SCSI wЦӨAwг]wѼ(geometry)O SCSI dW
- extended translation(q`OХ <quote>support &gt;1GB</quote>(䴩 1GB HWeqAW)
- 䴩P_ӧ@MwC
- pG䴩AN|ĥ <replaceable>N</replaceable> cylindersB
- 64 headsB 32 sectors/track @wг]wѼ(geometry)Aoy<replaceable>N</replaceable>z
- OwЪeq(GMB)C|ӨҤlӻA@ 2GB wӬO
- 2048 cylindersB64 headsB32 sectors/trackC</para>
-
- <para>pG SCSI 䴩ϥ extended translation ܡA
- (q`oӤ覡b &ms-dos; ϥΤWYǭ)AåBwЮeqj 1GBA
- wг]wѼ(geometry)N|ϥιOG
- M cylindersB255 headsBCϭy 63 sectors(Ъ`NGOy64z@)A
- oy<literal>M</literal>zOwЪeq(GMB)AH
- 7.844238 ұoXƭȳIҥHAoӨҤlܡAPˬO 2GB wӬO
- 261 cylindersB255 headsBCϭy 63 sectorsC</para>
-
- <para>YWAѡAάO FreeBSD bwˮɩҰ쪺wг]wѼ(geometry)
- DܡA²檺Ѫkq`ObwФWإߤ@pp DOS ΰ(partition)C
- oˤ@ӡANiH쥿Twг]wѼƤFAӥBA
- pGQ~dۨp DOS ΰϪܡAiHHɥ partition editor
- ӮCΪ̧⥦d۷@dXʵ{ϥΡAHAΥC</para>
-
- <para>~OAӧKOnΪu{sy<filename>pfdisk.exe</filename>zA
- oӵ{bU FreeBSD FTP ΥЪ <filename>tools</filename> ؿUA
- iHΨӧXwФWL@~tΩҨϥΪwг]wѼơA
- MNiHb partition editor J쪺dz]wѼƴNiHFC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="disk-divide-restrictions">
- <para>κϺоɦ󭭨ܡS</para>
- </question>
-
- <answer>
- <para>AAT{A root ΰϬOb 1024 cylinders A
- BIOS iHq䤤Ұʮ֤ߡC(`NGoO PC BIOS \୭AӤ
- O FreeBSD )</para>
-
- <para>H SCSI wЦӨAq`O <literal>root</literal> (<filename>/</filename>)
- ΰϩwг̫e 1024MB (pG䴩 extended translation ܡA
- O̫e 4096MB X oIаѦҤW@p`)C IDE wЪܡA۹hO 504MBC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="disk-manager">
- <para>iHϥέǺϺк޲z{(disk managers)OH</para>
- </question>
-
- <answer>
- <para>FreeBSD iH Ontrack Disk Manager åBB@`A
- ܩL disk manager hb䴩CC</para>
-
- <para>YwХu FreeBSD ANΦA disk manager FC
- unwг]w BIOS ү쪺̤jŶA FreeBSD NiXڤWiϥΪŶFC
- pGAbϥΪOj MFM d¦wСA
- Nݭnb FreeBSD@ cylinders ]wFC</para>
-
- <para>pGQbϺФWϥ FreeBSD Mt~@~tΡA]iH disk managerA
- unTw FreeBSD ҰʤΰϸL@~tΪ slice }l 1024 cylinders
- NiHFCpGA۷aܡA@ 20MB ҰʤΰӴNΤFC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="missing-os">
- <para>FreeBSD w˧᭫}AOqo <errorname>Missing Operating
- System</errorname>oOFH</para>
- </question>
-
- <answer>
- <para>q`]Xb FreeBSD DOS ΨL@~tΦbwЪ <link
- linkend="geometry">]wѼ(geometry)</link>WW۽ġCѪkOˡAOз
- Wz`BJӰC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="stop-at-boot-manager">
- <para>Wh}޲z(boot manager)X{F <prompt>F?</prompt> oӿeA
- o|۰ʸL~}OH</para>
- </question>
-
- <answer>
- <para>oӯgOWҴt~@ӰDFA]b BIOS W FreeBSD
- W䪺wЪ <link linkend="geometry">]wѼ(geometry)</link> ä@PC
- YAwЩ BIOS 䴩 cylinder translation
- (q`|QЬ <quote>support &gt;1GB(䴩 1 GBHWeq)</quote>ܡA
- ոլݧ]wAí FreeBSDC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="need-complete-sources">
- <para>w FreeBSD ɡAݭnw˧㪺 sources ܡH</para>
- </question>
-
- <answer>
- <para>@ӻAoOΤ۪CMӡAڭ̱jPijz source ܤ֭n
- <literal>base</literal>(]tF夤Ҵ@ɮ)BH
- <literal>sys</literal> (kernel source )C
- MA@~tΥBOݭn source ɡAO &man.config.8; o kernel]w{hݭn src C
- YS kernel source ɡAMiHΨLazL NFS ŪɮרtΡA
- ӽsĶ{C
- ѩ kernel-source Aڭ̫ijn mount b <filename>/usr/src</filename>A
- ̦nO symbolic link(Ѿ\ &man.ln.1;) N|A]ws<filename>/usr/src</filename>
- ؿC</para>
-
- <para>bW˦ source åBAѬsĶL{Aoˤlɯ
- FreeBSD |ӱoKhC</para>
-
- <para>YѤFˬ source ܡAiHƫ <command>sysinstalll</command>
- (&os; 5.2 ehO <command>/stand/sysinstall</command>) ӸɸˡAGConfigure Distributions srcC
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="need-kernel">
- <para>ݭns build kernel ܡH</para>
- </question>
-
- <answer>
- <para>bܤ[ܤ[HeA쥻s build kernel b FreeBSD w˹L{A
- O沈ݪBJ@CثeNγo·ФFA
- ثeDn`ϥΧ͵ kernel ]wOC
- &os; 4.X(te)Ab FreeBSD Ұʴܸ(boot:)ɡAϥ <option>"-c"</option> flag
- N|iJ]weAӹ kernel @` ISA dӸ`]wC
- &os; 5.X(t᪩)ܡAhOHuʪ "hints" ]w覡C</para>
-
- <para>pGQ` RAM ϥΡBYu}y{AijGs kernel ]wɥun]tAݭnXʵ{A
- M᭫ssĶBw kernel í}CMөOAoIjhƪtΨӻA
- o@wOnC</para>
-
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="password-encryption">
- <para>KXsXӱĥ DESBBlowfish MD5 @ءHӫ]wOH</para>
- </question>
-
- <answer>
- <para>FreeBSD w]KXsX覡O <emphasis>MD5</emphasis>C
- NKXsX覡ӨAMD5 覡@QDz &unix; <emphasis>DES</emphasis> 覡wC
- MӡAYݭnbϥ(wKXsX覡)ADES KXsX覡@˥iHϥΡC
- (Yϥ sysinstall ɦ <quote>crypto</quote> MAάOq source sĶw)
- crypto ܡAcrypto libraries ]䴩w Blowfish sX覡C</para>
-
- <para>KXsX覡O <filename>/etc/login.conf</filename>
- <quote>passwd_format</quote> ӨMwC]wȡA(Y crypto )iHO
- <quote>des</quote> <quote>blf</quote> άO쥻 <quote>md5</quote>C
- ԱаѾ\ &man.login.conf.5; C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="boot-floppy-hangs">
- <para>}Ϥ}@bANX{
- <literal>Probing Devices...</literal> eTAMNFH</para>
- </question>
-
- <answer>
-
- <para>YW IDE Iomega &iomegazip; άO &jaz; ܡA
- ]odz]ƥi}۽ġAХodz]ƦAաC
- ӧ@~tθ˦nANiHodz]Ʊ^hϥΤFC
- ƱoIb release FreeBSD iHoѨMC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="panic-on-install-reboot">
- <para>tθ˧í}AoX{ <errorname>panic: can't mount root</errorname>H</para>
- </question>
-
- <answer>
- <para>oӿ~O]Ұʺϰϸ kernel ̹Ϻи˸m{ۦPC
- q`oD|oͦb IDE wЪtΡApGw Jumper ]w MasterB
- άO IDE ƽuUus@wСAO FreeBSD }wСA
- ob Secondary IDE ƽuWC
- p@ӡAb}ɷ kernel wĤG IDE Ĥ@ӺϺо ad2A
- Ұʺϰϫo{tάO˦b ad0(BIOSĤGw)I
- ˸mAkernel յۧҰʺϰϩһ{}w(ad0) mount
- _ӡAƹWӬO ad2 ~AҥHN|X{W~TFC</para>
-
- <para>ѪkpUAпܨ䤤@ؤ覡NnG</para>
-
- <orderedlist>
- <listitem>
- <para>}æbX{y<literal>Booting kernel in 10 seconds; hit [Enter] to interrupt</literal>z
- ܪɭԡAU <keycap>Enter</keycap>C
- oˤlN|iJ boot loader eG</para>
-
- <para>пJ
- <literal>
- set
- root_disk_unit="<replaceable>disk_number</replaceable>"
- </literal> o̪y<replaceable>disk_number</replaceable>zШ̾ڱpNG
- Y FreeBSD wЬO]w˦b Primary IDE u MasterAN] 0 F
- YO Primary IDE u SlaveAN] 1F
- YO Secondary IDE u MasterAN] 2F
- YO Secondary IDE u SlaveAN] 3C</para>
-
- <para>۽ЦAJ <literal>boot</literal>AMtӴNiH`}FC</para>
-
- <para>YnC}۰ʳ]wAӤC@ANb <filename>/boot/loader.conf.local</filename>
- ɮפ[W <literal>root_disk_unit="<replaceable>disk_number</replaceable>"</literal>
- o
- (MAy<replaceable>disk_number</replaceable>zn令N)</para>
- </listitem>
-
- <listitem>
- <para> FreeBSD wЧﱵ Primary IDE uWAp@ӴNiQϥΡC</para>
- </listitem>
- </orderedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="memory-limits">
- <para>O̤jh֡H</para>
- </question>
-
- <answer>
- <para>@ &i386; W̦hi䴩 4 GB(gigabytes)C
- Ӧ &os; 4.9 5.1 iH}lϥ &man.pae.4; Ӥ䴩hOC
- oIAݭnb kernel ]wɤ[JUCeíssĶ kernelA~ϥ PAEC</para>
-
- <programlisting>options PAE</programlisting>
-
- <para>&os; b pc98 W̦hhu䴩 4 GB AӥBϥ PAEC
- b Alpha WAO魭譱nҨϥΪ䴩{צөwAoIаѾ\
- ҨϥΪ Alpha wWCܩL[c &os; zפW̦hiϥΪOAhC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ffs-limits">
- <para>ɮרtγ̤jh֡H</para>
- </question>
-
- <answer>
- <para>NɮרtΤ譱AzפWO̦h 8TB(2G blocks)A
- άOϥΤw 8K block jpɡAO 16TBC
- ڤWAثenϥΤWuΨ 1 TBA
- MӦpGOtyLɮרtΡAF 4TB ؼЬOi檺
- (]H\L)C</para>
-
- <para>@ɮתjp譱Ap block H 4K @WܡA
- h̤jOͪ 1G blocks(4TB)C</para>
-
- <table>
- <title>ɮפjp̤j</title>
-
- <tgroup cols="3">
- <thead>
- <row>
- <entry>ɮרt block jp</entry>
-
- <entry>works</entry>
-
- <entry>should work</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>4K</entry>
-
- <entry>4T-1</entry>
-
- <entry>&gt;4T</entry>
- </row>
-
- <row>
- <entry>8K</entry>
-
- <entry>&gt;32G</entry>
-
- <entry>32T-1</entry>
- </row>
-
- <row>
- <entry>16K</entry>
-
- <entry>&gt;128G</entry>
-
- <entry>32T-1</entry>
- </row>
-
- <row>
- <entry>32K</entry>
-
- <entry>&gt;512G</entry>
-
- <entry>64T-1</entry>
- </row>
-
- <row>
- <entry>64K</entry>
-
- <entry>&gt;2048G</entry>
-
- <entry>128T-1</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>When the fs block size is 4K, triple indirect blocks work
- and everything should be limited by the maximum fs block number
- that can be represented using triple indirect blocks (approx.
- 1K^3 + 1K^2 + 1K), but everything is limited by a (wrong) limit
- of 1G-1 on fs block numbers. The limit on fs block numbers
- should be 2G-1. There are some bugs for fs block numbers near
- 2G-1, but such block numbers are unreachable when the fs block
- size is 4K.</para>
-
- <para>block jppGO 8K ΧjAɮרt block ƥط|Qb 2G-1
- AڤWӻO 1G-1 ~A]ĥ 2G-1 block ɮרtη|ɭP@ǰDC
- </para>
-
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="archsw-readin-failed-error">
- <para>bҰʷs kernel ɡAݨ
- <errorname>archsw.readin.failed</errorname> ~TH</para>
- </question>
-
- <answer>
- <para>]XbA world H kernel äPBA|ҡGkernel 4.11A
- world oO 4.8AoˬO|DC
- ЦAT{AO_H <command>make buildworld</command>
- <command>make buildkernel</command> ӥ`s kernelC</para>
-
- <para>bҰ loader eA|ݨ "|" oӲŸbʡAoɥiH䤤_A
- MAwnJ kernel Ӷ}C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="security-profiles">
- <para><quote>security profiles</quote> OH</para>
- </question>
-
- <answer>
- <para>A <quote>security profile</quote> is a set of configuration
- options that attempts to achieve the desired ratio of security
- to convenience by enabling and disabling certain programs and
- other settings. For full details, see the <ulink
- url="&url.books.handbook;/install-post.html#SECURITYPROFILE">Security
- Profile</ulink> section of the Handbook's <ulink
- url="&url.books.handbook;/install-post.html">post-install
- chapter</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="boot-acpi">
- <para>b}ɡAܨϥ ACPI hbw˹L{NFAӫH</para>
- </question>
-
- <answer>
- <para>ոլ ACPI supportC bJ bootloaderɡAUťC
- tη| <screen>OK</screen> oɿJ
- <screen><userinput>unset acpi_load</userinput></screen> ۥ
- <screen><userinput>boot</userinput></screen>
- H~}AoˤlӴNiHFC</para>
- </answer>
- </qandaentry>
-
- </qandaset>
- </chapter>
-
- <chapter
- id="hardware">
- <title>w䴩譱</title>
-
- <sect1 id="compatibility-general">
- <title>@D</title>
-
- <qandaset>
- <qandaentry>
- <question id="which-hardware-to-get">
- <para>ڷQո˦ۤv FreeBSD AǫB~PBWO䴩{׳̦nOH</para>
- </question>
-
- <answer>
- <para>oIAb FreeBSD QװϤWɱ`HQסCMwOt׫ܧ֡A
- iHɦsWBs~X{AMӳodzbڭ̷NƤA
- ڭ <emphasis>M</emphasis> jPijGb߰ݦ̷sWw骺䴩DeA
- ХѾ\ &os;
- <ulink url="&rel.current.hardware;">&rel.current;</ulink>
-
- <ulink url="&rel2.current.hardware;">&rel2.current;</ulink>䴩wCA
- άOjM<ulink url="http://www.FreeBSD.org/search/#mailinglists">QװϪ¤峹</ulink>A
- ]\AWg~ꥩHQ׹LAҭnݪwC</para>
-
- <para>pGn䦳Oq譱AШ FreeBSD-mobile OqQװϡC
- MAN FreeBSD-questions QװϡAάOSwwW(p pc98, Alpha)MݰQװϧaC
- </para>
- </answer>
- </qandaentry>
-
- </qandaset>
- </sect1>
-
- <sect1 id="compatibility-processors">
- <title>w[c CPU</title>
-
- <qandaset>
- <qandaentry>
- <question id="architectures">
- <para>FreeBSD 䴩 x86 ~w[cxܡH</para>
- </question>
-
- <answer>
-
- <para>AFreeBSD ثeiHb Intel x86 and DEC
- ({b HP-Compaq) Alpha [cWB@C FreeBSD 5.0 ᪺Ah
- i䴩 AMD64 Intel EM64T, IA-64 H &sparc64; [cC
- ӥx䴩Wٷ| &mips;
- &powerpc;AӸ`ФOѾ\ &a.mips; &a.ppc;C
- @ӨAsw[cx譱AO &a.platforms; QסC</para>
-
- <para>YAOHW[cάO_SAӷQߨոլ BSD ]OA
- ڭ̫ijAiHҼ{ϥ <ulink
- url="http://www.netbsd.org/">NetBSD</ulink> <ulink
- url="http://www.openbsd.org/">OpenBSD</ulink>C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="smp-support">
- <para>FreeBSD 䴩 CPU ٦huBz(SMP, Symmetric Multiprocessing)ܡH</para>
- </question>
-
- <answer>
- <para>C SMP b &os; 5.2 w] kernel(<emphasis>GENERIC</emphasis>)wҰʡC
- </para>
-
- <para>b &os; 5.3 n release ɡASMP]w]Ow]NҰʡC
- MӡAb@Ǹs(O emt64)WoSǰDA
- ҥH٬OMwbDBwijDѨMeA SMP ҰʡC
- oIAO &os; 5.4 uҼ{VC</para>
-
- <para>&os; 4.X ܡAw] kernel èSҰ SMPA
- ]An options SMP [J kernel ]wɨíssĶ~ҰʡC
- ܩ٦Ǭ]wnJ kernel ]wɡAаѾ\<filename>/sys/i386/conf/LINT</filename>C
- </para>
- </answer>
- </qandaentry>
- </qandaset>
- </sect1>
-
- <sect1 id="compatibility-drives">
- <title>wСBϱaHΥСBDVDBN</title>
-
- <qandaset>
-
- <qandaentry>
- <question id="supported-hard-drives">
- <para>FreeBSD i䴩ǺwЩOH</para>
- </question>
-
- <answer>
- <para>FreeBSD 䴩 EIDE SCSI w(H SCSI dAЬݤU@`)
- H <quote>Western Digital</quote> w (MFMB RLLB
- ESDIAM]t IDE)AL@Ǥּƪ ESDI ժ(GWD1002/3/6/7)
- iLk`B@C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="supported-scsi-controllers">
- <para>䴩 SCSI dB]ƩOH</para>
- </question>
-
- <answer>
- <para>аѾ\ &os; w䴩(
- <ulink url="&rel.current.hardware;">&rel.current;</ulink>
- <ulink url="&rel2.current.hardware;">&rel2.current;</ulink>)</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="tape-support">
- <para>䴩ǺϱaOH</para>
- </question>
-
- <answer>
-
- <para>FreeBSD 䴩 SCSI QIC-36 (QIC-02 ) W檺ϱaC
- Pɥ]tF 8-mm (]NO Exabyte) DAT ϱaC</para>
-
- <para>Ǧ 8-mm ϱaäOۮe SCSI-2 WA
- ҥHib FreeBSD W{OܦnC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="tape-changer-support">
- <para>FreeBSD 䴩ϱa۰ʴaܡH</para>
- </question>
-
- <answer>
- <para>FreeBSD iH &man.ch.4; WҦCءAft &man.chio.1; OA
- Өϥ SCSI ۰ʴaAӸ`аѾ\ &man.chio.1; C</para>
-
- <para>If you are not using <application>AMANDA</application>
- or some other product that already understands changers,
- remember that they only know how to move a tape from one
- point to another, so you need to keep track of which slot a
- tape is in, and which slot the tape currently in the drive
- needs to go back to.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="supported-cdrom-drives">
- <para>FreeBSD i䴩ǺоOH</para>
- </question>
-
- <answer>
- <para>unO䴩 SCSI dWұ@ SCSI о䴩C</para>
-
- <para>~A]䴩UCоG</para>
-
- <itemizedlist>
- <listitem>
- <para>Mitsumi LU002 (8bit), LU005 (16bit) FX001D
- (16bit 2x Speed)</para>
- </listitem>
-
- <listitem>
- <para>Sony CDU 31/33A</para>
- </listitem>
-
- <listitem>
- <para>Sound Blaster D SCSI о</para>
- </listitem>
-
- <listitem>
- <para>Matsushita/Panasonic о</para>
- </listitem>
-
- <listitem>
- <para>ۮe ATAPI W檺 IDE CDROMs</para>
- </listitem>
- </itemizedlist>
-
- <para>۹ SCSI ئӨALD SCSI оOCA
- ~A ATAPI оiLkQB@</para>
-
- <para>Daemon News H FreeBSD Mall ҵo檺 FreeBSD ХHοNΪv(ISO)A
- iHΩ}ШϥΡC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="supported-cdrw-drives">
- <para>FreeBSD 䴩ǥпNXʵ{OH</para>
- </question>
-
- <answer>
- <para>FreeBSD 䴩ۮe ATAPI зǪ IDE CD-R CD-RW пNA
- Ӹ`аѾ\ &man.burncd.8; C</para>
-
- <para>FreeBSD ]䴩 SCSI CD-R CD-RW пNC
- Х port packag ӦwˡBϥ <command>cdrecord</command> A
- ýTwz kernel N <devicename>pass</devicename>]Ƥ@ֽsĶbC
- (w] kernel.GENERIC | device pass oq)</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="zip-support">
- <para>FreeBSD 䴩 Iomega &iomegazip; ?</para>
- </question>
-
- <answer>
- <para>FreeBSD 䴩~ SCSI ATAPI(IDE) Iomega &iomegazip;C
- L SCSI ZIP uQ] SCSI ID 5 άO 6 ~iHB@ApG
- SCSI dW BIOS 䴩AAƦܥiHΥӶ}C
- ڭ̤o@diHd ID ]bF 0 1 H~aӶ}\A
- ]ApGQ SCSI ID ܡAаȥѾ\ӫUC</para>
-
- <para>FreeBSD Pɤ]䴩 Parallel Port ZipϺоCˬd kernel
- ]wɬO_G
- <devicename>scbus0</devicename>B
- <devicename>da0</devicename>B
- <devicename>ppbus0</devicename>AH
- <devicename>vp0</devicename> oXʵ{ (w] GENERIC kernel
- F <devicename>vp0</devicename> S]ihALT̳|)C
- [FoXXʵ{AParallel Port Zip N|
- <devicename>/dev/da0s4</devicename>C</para>
-
- <para>oɡANiHιO <command>mount /dev/da0s4 /mnt</command>
- (DOS ɮרt)<command>mount_msdos /dev/da0s4 /mnt</command>
- OӱBŪgC</para>
-
- <para>]iHѾ\U<link linkend="media-change">HϤ
- </link>AH<link
- linkend="removable-drives">СBHЪy榡ơzQ</link>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="jaz-zip-removable-support">
- <para>FreeBSD 䴩 &jaz;BEZ ΨLHϤܡH</para>
- </question>
-
- <answer>
- <para>iHڡAF IDE EZ drive ~ALӳO SCSI A
- ҥHb FreeBSD W|H SCSI wШӳBzC</para>
-
- <para>MAATwb}ɡAodz]ƪqO}A
- HK FreeBSD iHC</para>
-
- <para><anchor id="media-change"/>pGbϺйBAAn󴫺ϤܡA
- Ooݤ@U &man.mount.8;B&man.umount.8;B
- H(SCSI)&man.camcontrol.8; &man.atacontrol.8; ٦ FAQ ᭱
- <link linkend="removable-drives">ϥΩСBHЪQ
- </link>C</para>
- </answer>
- </qandaentry>
-
- </qandaset>
-
- </sect1>
-
- <sect1 id="compatibility-kbd-mice">
- <title>LBƹ</title>
-
- <qandaset>
-
- <qandaentry>
- <question id="usbkbd">
- <para>FreeBSD 䴩 USB LܡH</para>
- </question>
-
- <answer>
- <para>FreeBSD (רO䴩 USB keyboardsC Enable USB support in
- <filename>/etc/rc.conf</filename>.</para>
-
- <para>Y} USB L䴩ӥBPɱW AT USB LܡA AT L|ܦ
- <devicename>/dev/kbd0</devicename>A USB LhO
- <devicename>/dev/kbd1</devicename>CpGu USB LA򥦴NO
- <devicename>/dev/ukbd0</devicename> oC</para>
-
- <para>pGQb console Wϥ USB LܡA򥲶]w console w USB LC
- iHbtζ}{ǮɡA[WUCOG</para>
-
- <screen>&prompt.root; <userinput>kbdcontrol -k /dev/kbd1 &lt; /dev/ttyv0 &gt; /dev/null</userinput></screen>
-
- <para>`NGYu USB LܡA]NO <devicename>/dev/ukbd0</devicename>A
- ЧΤUCOG</para>
-
- <screen>&prompt.root; <userinput>kbdcontrol -k /dev/ukbd0 &lt; /dev/ttyv0 &gt; /dev/null</userinput></screen>
-
- <para>ijGiHWzOJ <filename>/etc/rc.i386</filename> C</para>
-
- <para>]w\AUSB LΧ@SO]wANiHb X ҤW`B@oC</para>
-
- <para>USB L(Hot-plugging and unplugging)b &os; iٵLk`B@A
- ijGbtζ}eNWLAAHקKnxZC</para>
-
- <para>Ӹ`аѾ\ &man.ukbd.4; C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="busmouse">
- <para>j bus ƹAn]wOH</para>
- </question>
-
- <answer>
- <para>FreeBSD 䴩@Ǽt(OGMicrosoftBLogitechBATI)Ұ bus InPort bus ƹC
- MӡAw] kernel(GENERIC)wgt̪Xʵ{C
- ]An[JUC kernel ]wɨíssĶBwˡA~ҥΡG</para>
-
- <programlisting>device mse0 at isa? port 0x23c irq5</programlisting>
-
- <para>Bus ƹq`nftMΪd~ϥΡC
- oǥdiH]w port address IRQ ȡAoDzӸ`аѾ\AƹU
- &man.mse.4; C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ps2mouse">
- <para>PS/2 (<quote>mouse port</quote>
- <quote>keyboard</quote>)ƹn]w~nOH</para>
- </question>
-
- <answer>
- <para>PS/2 ƹ䴩AһݭnΨ쪺Xʵ{ <devicename>psm</devicename>
- bw] kernel(GENERIC)wtFC</para>
-
- <para>YAۭq kernel |F psm ܡANAUCe[ kernel
- ]wɨíssĶBwˡG</para>
-
- <programlisting>device psm0 at atkbdc? irq 12</programlisting>
-
- <para>} kernel T <devicename>psm0</devicename>
- AаȥT{b <filename>/dev</filename>
- <devicename>psm0</devicename> C
- pGSܡAN <username>root</username> ӥUCOӫإߧaG</para>
-
- <screen>&prompt.root; <userinput>cd /dev; sh MAKEDEV psm0</userinput></screen>
-
- <note>
- <para>pGO &os; 5.0-RELEASE(t᪩)ܡA]ĥ &man.devfs.5; ]A
- ҥH|۰ʦb <filename>/dev</filename> Uإ߬]ƪ`IA]NiHLWo@BC</para>
- </note>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="moused">
- <para>pG X Window ҪܡA]iHηƹܡH</para>
- </question>
-
- <answer>
- <para>Yϥ console w]Xʵ{(]NO &man.syscons.4;)A
- NiHbr console WηƹӰŶKrFC
- nҰ &man.moused.8; ö}ҴܡA
- ХUCOG</para>
-
- <screen>&prompt.root; <userinput>moused -p /dev/<replaceable>xxxx</replaceable> -t <replaceable>yyyy</replaceable></userinput>
-&prompt.root; <userinput>vidcontrol -m on</userinput></screen>
-
- <para>䤤y<replaceable>xxxx</replaceable>zOƹ]ƦW١A
- y<replaceable>yyyy</replaceable>zhOƹҨϥΪ protocol C
- ثe moused iH۰ʰ(F¦ serial
- ƹ~)jhƷƹҨϥΪ protocol AӤΨNhwC
- yprotocol z]w
- <literal>auto</literal> N|۰ʰFCY۰ʰѪܡAаѾ\ &man.moused.8;
- ̭ type qC</para>
-
- <para>pGΪO PS/2 ƹAun
- <literal>moused_enable="YES"</literal> [
- <filename>/etc/rc.conf</filename> Ao˨C}N|۰ʱҰʤFC
- ~ApGnbҦ virtual terminals W]ϥηƹA
- Ӥwu console ܡAЦA
- <literal>allscreens_flags="-m on"</literal> [ <filename>/etc/rc.conf</filename> ̭YiC</para>
-
- <para>moused b椤ɭԡApGnϥηƹ\AzL moused
- ΨL{O X ӶiCаѾ\ FAQ <link
- linkend="x-and-moused">y򤣯b X ̨ϥηƹHz</link>HAѬӸ`C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="text-mode-cut-paste">
- <para>brҦ console ҭnηƹӰŶKrOH</para>
- </question>
-
- <answer>
- <para> moused A(Ѿ\<link linkend="moused">e@`</link>)
- A۲ʷƹӿܤ@Ӱϰ줧}Ao˴NyƻszC
- nyKWzܡAƹNiHFC
- nyϡzܡAƹk</para>
-
-
- <para>pGAƹSAAiHμ覡AάOswqƹ䪺覡A
- ӹFuv\CԱаѾ\ &man.moused.8; C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="mouse-wheel-buttons">
- <para>ڷƹWuBusAiHb console WϥζܡH</para>
- </question>
-
- <answer>
- <para>oӵ׹...AܤaAbjhƪpUC
- oǦuƹݭnίSXʵ{~A
- DAƹXʵ{ΨϥΪ̦ۤvε{䴩A
- MAoǷƹuOqΤT䪺ƹӥΦӤwC
- </para>
-
- <para>pGnb X ҤWϥκuܡAаѾ\
- <link linkend="x-and-wheel"> X Wuϥ
- </link>C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="laptop-mouse-trackball">
- <para>nbOqWϥηƹByyBIJOOH</para>
- </question>
-
- <answer>
- <para>аѾ\<link linkend="ps2mouse">e PS/2 ƹݵ
- </link>C</para>
- </answer>
- </qandaentry>
-
- </qandaset>
-
- </sect1>
-
- <sect1 id="compatibility-networking">
- <title> serial ]</title>
-
- <qandaset>
-
- <qandaentry>
- <question id="network-cards">
- <para>FreeBSD 䴩ǺdOH</para>
- </question>
-
- <answer>
- <para>аѦ &os; Uw䴩CC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="internal-plugnplay-modem">
- <para> FreeBSD 䤣 PnP(HHΡAPlug &amp; Play)W檺 modem?</para>
- </question>
-
- <answer>
- <para>]bGݭn modem PnP ID [ serial Xʵ{ PnP ID A@kpUG</para>
- <orderedlist>
- <listitem>
- <para>Ab kernel ]wɤ[J <literal>controller pnp0</literal>A
- íssĶBw kernelA̫᭫}N|Ұ PnP 䴩C</para>
- </listitem>
-
- <listitem>
- <para>MAkernel |ⰻҦ]ƤW PnP ID CXC
- oɡAק <filename>/usr/src/sys/isa/sio.c</filename>(j752楪ka)A
- iHjM <literal>SUP1310</literal> r( <literal>sio_ids[]</literal> )A
- бN~ kernel ܪ modem PnP ID ƻsmC</para>
- </listitem>
-
- <listitem>
- <para>oɡAAssĶBw kernelA̫᭫}ӴN|T modem FC</para>
- </listitem>
- </orderedlist>
-
- <para>~A]iHb}ɥH <literal>pnp</literal> OӤʳ]w PnP ]ơA
- kernel oHTA|ҡG</para>
-
- <programlisting>pnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8</programlisting>
-
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="support-winmodem">
- <para>FreeBSD 䴩O Winmodems n modem ܡH</para>
- </question>
-
- <answer>
- <para>FreeBSD iHwB~nӤ䴩n modemC
- O <filename role="package">comms/ltmdm</filename> i䴩` Lucent LT A
- <filename role="package">comms/mwavem</filename> hi䴩 IBM Thinkpad 600 700
- OqW modemC</para>
-
- <para>MӡAäγn modem Ӧw FreeBSDA
- ]Gon饲b@~tΦw˧A~wˡC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="support-broadcom">
- <para> Broadcom 43xx LudXʵ{(Native driver)ܡH</para>
- </question>
-
- <answer>
- <para>SAӥB]ӥi|C</para>
-
- <para>Broadcom ڵ}LudXʵ{A
- D]jOL̥γnӱLuǿ覡C
- ƹWA]nqLpqHe|(FCC)˺ϦwWܡA
- TO~ϥΪ̤HNʬ]wApGqϪiWvBҲհѼơBXqC
- OApGڭ̤DphܡA򼶼gXʵ{ȤӥiC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="multiport-serial-support">
- <para>FreeBSD 䴩 multi-port serialdOH</para>
- </question>
-
- <answer>
- <para>аѾ\ϥΤUW <ulink
- url="&url.books.handbook;/install.html#INSTALL-MISC">w˽gXLw
- </ulink> CC</para>
-
- <para>MǥdOSP(רOЩGۮe AST W)]iH`ϥΡC</para>
-
- <para>ܩd]w譱AаѾ\ &man.sio.4; C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="serial-console-prompt">
- <para>b serial console Wnp~|X{ boot: ܩOH</para>
- </question>
-
- <answer>
- <orderedlist>
- <listitem>
- <para>kernel ]wɥ[J
- <literal>options COMCONSOLE</literal></para>
- </listitem>
-
- <listitem>
- <para>إ /boot.config ɡAåBɸ̭euW <option>-P</option></para>
- </listitem>
-
- <listitem>
- <para>LqWޱ</para>
- </listitem>
- </orderedlist>
-
- <para>Ӹ`Ь
- <filename>/usr/src/sys/i386/boot/biosboot/README.serial</filename>
- </para>
- </answer>
- </qandaentry>
-
- </qandaset>
-
- </sect1>
-
- <sect1 id="compatibility-sound">
- <title>ĥd</title>
-
- <qandaset>
-
- <qandaentry>
- <question id="sound-card-support">
- <para>FreeBSD 䴩ǭĥdH</para>
- </question>
-
- <answer>
- <para>&os; 䴩UحĥdA]AF &soundblaster;B
- &soundblaster; ProB&soundblaster; 16BPro Audio Spectrum 16B
- AdLibB Gravis UltraSound sound cards (Ӹ`аѾ\
- <ulink url="&url.base;/releases/">&os; o污</ulink>
- H &man.snd.4; )C
- ~A MPU-401 MIDI ۮeW檺]@w{ת䴩A
- &microsoft; Sound System W]䴩C</para>
-
- <note>
- <para>Xʵ{ȾAΩyġzI F &soundblaster; ~A
- ثeXʵ{ä䴩oǭĥdWо, SCSI]ƩηnC
- &soundblaster; SCSI άYǫD SCSI оO䴩ALkΨӶ}C
- </para>
- </note>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="es1370-silent-pcm">
- <para>&man.pcm.4; Ҥ䴩ĥdSnAȮɸѨM覡ܡH</para>
- </question>
-
- <answer>
- <para>]ǹO es1370 ĥd|bC}ɧ⭵qլsC
- ȮɸѪkObC}ɰUOAάO[ /etc/rc.local G</para>
-
- <screen>&prompt.root; <userinput>mixer pcm 100 vol 100 cd 100</userinput></screen>
- </answer>
- </qandaentry>
-
- </qandaset>
-
- </sect1>
-
- <sect1 id="compatibility-other">
- <title>LDzD(ACPIB}᱾F..)</title>
-
- <qandaset>
-
- <qandaentry>
- <question id="other-device-support">
- <para>FreeBSD ٤䴩LǵwOH</para>
- </question>
-
- <answer>
- <para>аѾ\ϥΤUW <ulink
- url="&url.books.handbook;/install.html#INSTALL-MISC">w˽gXLw</ulink>
- C</para>
-
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="power-management-support">
- <para>FreeBSD 䴩Oqٹq޲z\ܡH</para>
- </question>
-
- <answer>
- <para>FreeBSD 4.X(t᪩)bYǾؤW䴩 <acronym>APM</acronym>C
- Ӹ`аѾ\ &man.apm.4; C</para>
-
- <para>FreeBSD 5.X(t᪩)䴩bثejؤW
- <acronym>ACPI</acronym> \C
- Ӹ`аѾ\ &man.acpi.4; CYWPɳ <acronym>APM</acronym>
- <acronym>ACPI</acronym> \઺ܡAڭ̫ijAiH̳ոլݡA
- ݬݭ@ؤŦXAݨDC</para>
-
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="disable-acpi">
- <para>Ӧp ACPIH</para>
- </question>
-
- <answer>
- <para> <screen>hint.acpi.0.disabled="1"</screen>
- oq[ <filename>/boot/device.hints</filename> YiC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="micron-hang-boot">
- <para>Micron q`Ob &os; ҰʮɴNAӫOH</para>
- </question>
-
- <answer>
- <para> Micron DOW BIOS b PCI 譱|DA
- o|ɭP PCI ]Ʒ|Q BIOS T]wAӶiJ FreeBSD NC</para>
-
- <para>ȮɸѨM覡G BIOS <quote>Plug and Play Operating System</quote>
- ]wC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="micron-3comnic-failure">
- <para>&tm.3com; PCI dLkb Micron qWϥΡAӫH</para>
- </question>
-
- <answer>
- <para>oDeD]@ˡA`ANO BIOS OS PnP ]wC</para>
-
- <para>ȮɸѨM覡G BIOS <quote>Plug and Play Operating System</quote>
- ]wC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="asusk7v-boot-failure">
- <para>DOOεغ(ASUS) K7VAiOζ}}@bNFAOH</para>
- </question>
-
- <answer>
- <para>iJ BIOS ]wA <quote>boot virus protection</quote> ]wYiC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="newcard-does-not-work">
- <para>PCMCIA dLkϥΡAåX{~T
- <quote>cbb0: unsupported card type detected.</quote>
- ӫH</para>
- </question>
-
- <answer>
- <para>iHոլݧª覡AХק kernel ]wɡAUoXG
- <programlisting>device cbb
-device pccard
-device cardbus</programlisting>
- M[WG
- <programlisting>device pcic
-device card 1</programlisting>
- ̫аѾ\ Handbook
- <ulink url="&url.books.handbook;/kernelconfig.html">վ FreeBSD Kernel</ulink>
- `AHssĶBw˷s kernelC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="dell-poweredge-failure">
- <para> &dell; &poweredge; 2850 ˧ FreeBSD A}LNFH</para>
- </question>
-
- <answer>
- <para>(D cdsheen )|զb &dell; &poweredge; 2850 Ww &os; 6.0A
- Lw˧Bís}Ao{ console LʤFA
- P˪pG]sb &os; 5.3 &os; 5.4A
- gL@fjMAoıO]oxW@ <quote>Dell Remote Access Controller (DRAC)</quote>A
- oӸ˸m|QtοѦ@ USB KeyboardAҥHɭP}A` PS/2 LϦӤʤFI</para>
-
- <para>ȮɸѨM覡pUG</para>
-
- <orderedlist>
- <listitem>
- <para>H Single User Mode iJt</para>
- </listitem>
-
- <listitem>
- <para>bROCҦUAUCROG</para>
- <screen>&prompt.root; <userinput>fsck -y <filename>/</filename></userinput></screen>
- <screen>&prompt.root; <userinput>mount -u <filename>/</filename></userinput></screen>
- </listitem>
-
- <listitem>
- <para>Ms <filename>/etc/devd.conf</filename>A USB Keyboard 䴩ȮɮA
- ]NOUX}Y[W #</para>
- <programlisting>
-# When a USB keyboard arrives, attach it as the console keyboard.
-#attach 100 {
-# device-name "ukbd0";
-# action "kbdcontrol -k /dev/ukbd0 &lt; /dev/console &amp;&amp; /etc/rc.d/syscons restart";
-#};
-#detach 100 {
-# device-name "ukbd0";
-# action "kbdcontrol -k /dev/kbd0 &lt; /dev/console";
-#};
-</programlisting>
- </listitem>
-
- <listitem>
- <para>MJ <command>exit</command>} Single User Mode A
- NiHQiJtΡBӥBL]iH`B@AU}]|DI</para>
- </listitem>
- </orderedlist>
-
- <para>t~A&dell; DRAC/BMC ݰ_ӦZhݦs\A쪺HiH...</para>
- </answer>
- </qandaentry>
- </qandaset>
-
- </sect1>
-
- </chapter>
-
- <chapter id="troubleshoot">
- <chapterinfo>
- <author>
- <firstname>William</firstname>
- <surname>Liao</surname>
- <affiliation>
- <address><email>chliao@tpts4.seed.net.tw</email></address>
- </affiliation>
- </author>
- </chapterinfo>
-
- <title>`DѨM</title>
-
- <qandaset>
- <qandaentry>
- <question id="pae">
- <para> &os; ~OeqH</para>
- </question>
-
- <answer>
- <para>~OeqO]z}}̬OPC</para>
-
- <para>The convention for most PC hardware is to use the memory area
- between 3.5G and 4G for a special purpose (usually for PCI). This
- address space is used to access PCI hardware. As a result real,
- physical memory can not appear in that address space.</para>
-
- <para>What happens to the memory that should appear in that location
- is dependent on your hardware. Unfortunately, some hardware does
- nothing and the ability to use that last 500M of RAM is entirely
- lost.</para>
-
- <para>Luckily, most hardware remaps the memory to a higher location
- so that it can still be used. However, this can cause some
- confusion if you watch the boot messages.</para>
-
- <para>On a 32 bit version of &os;, the memory appears lost, since it
- will be remapped above 4G, which a 32 bit kernel is unable to
- access. In this case, the solution is to build a PAE enabled
- kernel. See <link linkend="memory-limits">this FAQ entry</link>
- for more information.</para>
-
- <para>On a 64 bit version of &os;, or when running a PAE-enabled
- kernel, &os; will correctly detect and remap the memory so it is
- usable. During boot, however, it may seem as if &os; is detecting
- more memory than the system really has. This is normal and the
- available memory will be corrected as the boot process
- completes.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="awre">
- <para>wЦayɸӫ?</para>
- </question>
-
- <answer>
- <para>YO SCSI wЪܡAϺоӦO۰ʧ@ re-mapping
- ʧ@CMӡA]@ǥ]AbXtɡAܦhwЪo
- \O...</para>
-
- <para>nN䭫s}ҡAzݭns˸mĤ@ page Ҧ
- ]first device page mode^Ab FreeBSD WiHΤUO
- ]H <username>root</username>^</para>
-
- <screen>&prompt.root; <userinput>scsi -f /dev/rsd0c -m 1 -e -P 3</userinput></screen>
-
- <para>MN AWRE M ARRE ƭȱq 0 ܦ 1:-</para>
-
- <programlisting>AWRE]Auto Write Reallocation Enbld^G 1
-ARRE]Auto Read Reallocation Enbld^G 1</programlisting>
-
- <para>HUoqO Ted Mittelstaedt
- <email>tedm@toybox.placo.com</email>ҴѡG</para>
-
- <para>Y IDE wСAayq`O·ЪwCثeҦs
- IDE wСA۰ remapping ayOCثeҦ IDE w
- syӡAѤF[OҡAӥB|z󴫥X{aywСC</para>
-
- <para>pGzQn״_ay IDE wСAziHյۥhU IDE
- wлsyөҴѪ˴{AåΥˬdzwСCɳodzni
- HjsˬdwЪayAñN̼ХܥXӡC</para>
-
- <para> ESDIARLL MFM wШӻAq`ayO`{HA]O
- ·ЪeCb PC WAϺбdM BIOS tdХayȡCo
- @Ǩϥ BIOSӦsϺЪ@~ҡ]p DOS^OSDCMӡA
- FreeBSD ϺXʵ{ägL BIOS ӦsϺСAҥHA bad144
- ΨӨNo\Cbad144 uΦb wd oӺϺXʵ{W]o
- ӥNF FreeBSD 4.0 ä䴩^A]LkΦb SCSI wФWC
- bad144u@kONҦ쪺ayƦs@ӯSOɮءC</para>
-
- <para>ϥ bad144 ĵi - sayƪSOɮ׬ObwЪ̫
- @yWC]oɮxsayƤAi঳ǸƬOVwг
- eݩҵoͪayΡANOixs /kernel oɪaAҥH
- @wnQ}{ŪAӶ}{OzL BIOS Ū kernel
- ɡCoܤFϥ bad144 wе֦WL 1024 cylinderA
- 16 head 63 sectorCӳoϱoϥ bad144 wЪjp
- j 500 MBC</para>
-
- <para>nϥ bad144 ²Aunb}lwˮɡAb FreeBSD fdisk e
- <quote>Bad Block</quote> ˳] ON YiCb FreeBSD 2.2.7 H
- ᳣iHϥΦkCoӵwЪ cylinder @wnb 1024 HUC
- ΫeAڭ̫ijoӵwЭnܤ֥ϥΥ|ӤpɡAHKȻPϭy
- F@몬AC</para>
-
- <para>pGoӵwо֦WL 1024 cylinder]jeq ESDI wС^
- AESDI dQΤ@ӯSOഫҦϥb DOS Uu@CӦpGz
- b fdisk ت <quote>set geometry</quote> J
- <quote>ഫL</quote> geometryAwd oXʵ{Fѳoഫ
- ҦCz]藍ϥ dangerously dedicated Ҧӫإ FreeBSD
- ΰϡA]| geometry oӰѼơC~AN fdisk ϥ
- zҿJ geometry ѼơA̵M|hŪowЪuơAӷ|
- եhإߤ@ӹLj FreeBSD ΰϡCpGϺЪ geometry wgQ
- <quote>ഫ</quote> LFA oӤΰ <quote></quote>
- HʿJ block ƥتkӫإߡC</para>
-
- <para>@ӧֳtpޥOQ ESDI dӳ]wjeq ESDI wСA
- DOS }}AAN format DOS ΰϡCM᭫}iJ
- FreeBSD w˵{ǡAb fdisk eADOS ΰϪ blocksize M
- block number ۤUӡCM᭫s]w geometry Ϩ DOS ϥΪ@ˡC
- R DOS ΰϡAMϥαzۤU blocksize ӫإߤ@
- <quote>cooperative</quote> FreeBSD ΰϡCM]woӤΰϬi
- }AA}ayˡCbuw˹L{Abad144 |bɮרt
- Qإ߫eQC]ziH Alt-F2 Ӻʬݳo@^pGbإay
- ɮɵoͤFDAz|ݭn]w@ӸjϺ geometry - oܱz
- ݭn}AMAs}l]]AsΥHΦb DOS Us
- format^C</para>
-
- <para>pG remapping \wgҰʤFAӱz̵M@ݨay͡A
- Ҽ{@xwЧaCayΥu|HɶW[ӧYC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="hpnetserver-scsi-failure">
- <para> FreeBSD 줣 HP Netserver SCSI dH</para>
- </question>
-
- <answer>
- <para>򥻤WoӬO@ӤwDCb HP Netserver W on-board
- EISA SCSI deڤFw} 11 EISA ѡA]Ҧ
- <quote>u</quote> EISA ѳbeCiOAb EISA w}Ŷ
- &gt;= 10 ɡA|Pw PCI Ϊw}Ŷ۽ĬAB FreeBSD
- auto-configuration LkTBzoӱΡC</para>
-
- <para>]A{bAవ̦nƱNOb kernel س]w
- <literal>EISA_SLOTS</literal> oӿﶵ 12 AM@So
- D :)CШ̷ <ulink url="../../handbook/kernelconfig.html">
- Handbook kernel ]w</ulink> ةһkӳ]wPsĶ
- z kernelC</para>
-
- <para>MAbw FreeBSD oؾWɡAoO@ͳJJ
- DCFѨMoӰDAb <emphasis>UserConfig</emphasis>
- @ӯSOkAwˮɤniJ <quote>visual</quote> Aۤ
- AbROCҦAJ</para>
-
- <programlisting>eisa 12
-quit</programlisting>
-
- <para>MNpH@˦w˱ztΡCLڭ̫ijzsĶPwˤ@
- ݩۤv kernelA</para>
-
- <para>ƱbӪoӰD@ӦnѨMkC</para>
-
- <note>
- <para>zLkb HP Netserver Wϥ
- <literal>dangerously dedicated</literal> ϺмҦCziHѦ
- <link linkend="dedicate">o</link> HohTC</para>
- </note>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ed1-timeout">
- <para>@ݨ
- <errorname>ed1: timeout</errorname> TC̬ONOH
- </para>
- </question>
-
- <answer>
- <para>oӳq`Oѩ_Ĭ(interrupt conflict)ҳy
- (ҦpGdϥΨFۦP IRQ)C FreeBSD b 2.0.5 Hee\oӱΡA
- N⦳ IRQ Ĭ𱡧ΡAd]Ӥi`B@CMӡAb 2.0.5 ΨHA
- wAe\ IRQ Ĭ𪺱ΤFCЩ}ɨϥ -c oӿﶵA
- M ed0/de0/..]wAϨMzd]w@PC</para>
-
- <para>pGzOϥαzdW BNC YAzγ\]|]}׺ݹq]wA
- ӵo͸˸m(device) timeout ΡCnˬdO_oرΡA
- ziHbdWW׺ݹq(nu)A
- MAݬݳoӿ~TOONFC</para>
-
- <para> NE2000 ۮedApG UTP SuA
- άOӺuèSQϥΪܡA]|X{oӿ~TC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="bad-3c509">
- <para>&tm.3com; 3C509 dW䧮}uH</para>
- </question>
-
- <answer>
- <para>odӤnab󥦱``|򥢥]wơCШϥθ
- d DOS u <command>3c5x9.exe</command> ӧsdW]wC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="printer-slow">
- <para>Ltׯ}ѯCAӫH</para>
- </question>
-
- <answer>
- <para>pGߤ@DNOt׫ܺCܡAյܱۧz <ulink
- url="../handbook/printing-intro-setup.html#PRINTING-PARALLEL-PORT-MODE">
- Ls]w</ulink> oӦbU
- <ulink url="../handbook/printing-intro-setup.html">L]w
- </ulink> oӳ`[HQסC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="signal11">
- <para>{ɷ|] <errorname>Signal 11</errorname> ~ӰH</para>
- </question>
-
- <answer>
- <para>Signal 11 oӿ~O]A process խns@OA
- ӧA@~tΨä\oӰʧ@ӵoͪCpGoرα``
- wɵo͡AAӭn}lݬݬOO̥XDFC</para>
-
- <para>oǰDiOPUCΦG</para>
-
- <orderedlist>
- <listitem>
- <para>pGoӰDubY@ӱzۤvgYӯSw{o͡A
- ܦiOz{XDC</para>
- </listitem>
-
- <listitem>
- <para>pGoӰDOb FreeBSD YǨtɮ׵o͡AiO
- ]{DAq`bڭ̳osŪ FAQ ϥΪ̥h]oǦ
- D{XeA̦NNwgQѨMF]oO -current b
- ơ^C</para>
- </listitem>
- </orderedlist>
-
- <para>רpGAbsĶ@ӵ{AOCsĶ]XӪG@
- ܡAoO@ӵLѪDA<emphasis>O</emphasis> FreeBSD ΡC</para>
-
- <para>|ҨӻA]zb] <quote>make buildworld</quote>A
- compiler bN <filename>ls.c</filename> sĶ
- <filename>ls.o</filename> ɵoͿ~AoɽЦA]@
- <quote>make buildworld</quote>ApG compiler ̵MbP˪ao
- ͰDANO{XDСнЧslXMAոլݡCӦpG
- compiler ObLaoͿ~AXGiHTwOw骺DFC
- </para>
-
- <para>zoӰG</para>
-
- <para>pGOĤ@رΡAiHϥΤ@ debuggerApGgdbAӧX{
- Ob|hզs~O}AMAץC</para>
-
- <para>pGOĤGرΡANݭnˬdݬݬOOw骺DFC</para>
-
- <para>@dzyw餣í]]AG</para>
-
- <orderedlist>
- <listitem>
- <para>iOwйLGˬdߤO_B@`A]z
- wС]Ϊ٦Lw˸m^LFC</para>
- </listitem>
-
- <listitem>
- <para>BzLGoӦiO]WWAΪ̬OBzFC
- ׬Oح]AzݭnNҦ^_쥦̭]wu@
- AAoˤ~ѨMoӰDC|ӨҤlӻGNBzզ^u@
- WvC</para>
-
- <para>pGz٬OnWWܡA԰OAPNaӻݭns@x
- DApNt׽պC@II~AާAıowwA@
- Hz]WWӵoͪDAO|PߪC</para>
- </listitem>
-
- <listitem>
- <para>íwOGpGDWw˼Ʈ SIMM/DIMM OA
- յۧ⥦̥UӡAM@ڤ@ڴWhաAǦYpdA
- HKXDYڰOάOYذOզXC</para>
- </listitem>
-
- <listitem>
- <para>̨ΤƹLYDO]wGb BIOS ةάOǥDO jumper
- WAɥiH@ timingAbjhƪءAϥιw]ȴN
- wgFCpBɭԧ RAM wait states ]ӤpAάOb
- BIOS ءA <quote>RAM Speed: Turbo</quote> oөάOL
- ﶵ}i|y@Ǥ`{HC@ӸѨMkO
- BIOS ]^w]ȡALboeOoOUثe]wI</para>
- </listitem>
-
- <listitem>
- <para>ѵDOqObάOCյۧtΤSΨ쪺
- I/O dDwЩάO CDROM ȮɩάOޱquAݬݧAq
- OObp@ItU`u@CMNOWt@
- ӷsqA̦nO˼ư@I]ӤӻApG
- qO 250 ˪ANW 300 ˪ոա^C</para>
- </listitem>
-
- </orderedlist>
-
- <para>жKѾ\ SIG11 FAQ]sbU^AMOb Linux
- ׼gAiO̭oǰD\hܴΪѻC̭]Q׬
- DOqLnεw骺ժ]C</para>
-
- <para>̫ApGWoǭ]ưFA򦳥iOJF FreeBSD
- ت@ΡAаѾ\ܰ@ӰD^C</para>
-
- <para>o঳@ӧԲӪ FAQ <ulink
- url="http://www.bitwizard.nl/sig11/">
- the SIG11 problem FAQ</ulink></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="trap-12-panic">
- <para>ɥX{G<errorname>Fatal trap 12: page fault in kernel mode</errorname>
- AάO <errorname>panic:</errorname> HΤ@~TAӫH</para>
- </question>
-
- <answer>
- <para>FreeBSD }o̹oǿ~T۷AOL̻ݭn
- ԲӪ@DzӸ`CЧzTƻsUӡA۬d\ FAQ
- <link linkend="kernel-panic-troubleshooting">kernel
- panics</link> o`A̻sĶ@ӧtX kernelAHo禡
- Isǡ]backtrace^Coť_ӫAڤWäݭn{
- ]pOAzuݭn̷ӫܰYiC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="screen-loses-sync">
- <para>ڶ}ɡAùܶ¡AB{ʡH</para>
- </question>
-
- <answer>
- <para>oӰDAwO ATI Mach 64 ܥdҤް_C]od
- ϥΨ <literal>2e8</literal> oӦ}AӳoPĥ|ӧǦC
- ]serial port^ҨϥΪ}ۦPCӦb &man.sio.4; oX
- {ءADO bug άO\]feature^ANzSĥ|ӧ
- CAάOwgN sio3]ĥ|ӧǦC^FA
- <emphasis>̵M</emphasis>|hXʥC</para>
-
- <para>oӰDQѨMHeAziHϥγoӤkG</para>
-
- <orderedlist>
- <listitem>
- <para>bݨ}ܮɿJ <option>-c</option>
- ]o| kernel iJ]wҦ^C</para>
- </listitem>
-
- <listitem>
- <para> <devicename>sio0</devicename> A
- <devicename>sio1</devicename> A
- <devicename>sio2</devicename> M
- <devicename>sio3</devicename>]^C
- oiH sio Xʵ{ʧ@ -&gt; ODѨMC</para>
- </listitem>
-
- <listitem>
- <para>J exit H~Ұʵ{ǡC</para>
- </listitem>
- </orderedlist>
-
- <para>pGzQnϥαzǦCAzݭnק
- <filename>/usr/src/sys/i386/isa/sio.c</filename>AbɤX
- <literal>0x2e8</literal> oӦrAoӦrΥer
- ]Od᭱^AM᭫ssĶ@ӷs kernelC</para>
-
- <para>NϥΤFWoǤkAX Window MiLkQC
- pGoͤFoرΡAнTwAΪ XFree86 O̷s XFree86
- 3.3.3 άO᪺C̦ؤ䴩 Mach 64 oidAƦܬFo
- ǥd٪@ӯSO X Server</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="reallybigram">
- <para>ڪtθ˦ 128 MB RAMA FreeBSD uΤF䤤
- 64MBH</para>
- </question>
-
- <answer>
- <para>] FreeBSD OϥΩIs BIOS ӨoOjpkA]
- u఻ 16 bits 줸ת KByte jp]65535 KBytes = 64MB^
- ]Ϊ̧..C BIOS N̰Ojpu 16MB^
- pGz֦ 64MB HW RAMAFreeBSD |եhXAOi
- |ѡC</para>
-
- <para>nѨMoӰDAzݭnϥΤUҴ kernel ]wﶵCM
- kiHq BIOS oO骺TAOثeڭ̦b}Ϥ
- ShlŶӰoơCYѶ}ϪŶoѨMɡA
- ڭ̱N|ϥ BIOS \ӨoO骺T...{bڭ
- Nb kernel ]wﶵC</para>
-
- <para><literal>options "MAXMEM=<replaceable>n</replaceable>"</literal></para>
-
- <para><replaceable>n</replaceable> OzOjpAH KB
- CH@x 128MB RAM ӻAziϥ
- <literal>131072</literal>oӼƦrC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="kmem-map-too-small">
- <para>W RAM 1GB HWAiOo <quote>kmem_map too small</quote>
- panic ~TH
- </para>
- </question>
-
- <answer>
- <para>q` FreeBSD |̾ھpӦ۰ʽվ kernel ѼƳ]wApG
- ھھҸ˪ RAM jpӨMwPɥi}Ҫɮ׼ƶqhC
- MӡAb 1GB RAM(tHW) WAoӡy۰ʽվzi঳ɷ|G
- 軡..}ɡAkernel |tmUؤPγ~ΨL[cOWA
- MAӧ@~tγ}lB@Akernel N|}lŶӰOtmʺAվA
- ON panic FC</para>
-
- <para>ѪkOG <option>VM_KMEM_SIZE_MAX</option> [ kernel ]wɤA
- íssĶ kernelApG</para>
-
- <para><literal><option>options VM_KMEM_SIZE_MAX=419430400</option></literal></para>
-
- <para>
- o˷|]w 400&nbsp;MB ӵ kernel ϥΡAӥBĥ 400&nbsp;MB ܡA
- ثeb 6GB RAM WiQĹBΡC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="panic-kmemmap-too-small">
- <para>W RAM 1GB A|X{
- <errorname>kmem_map too small!</errorname> panic ~T
- </para>
- </question>
-
- <answer>
- <para>ҥH panic ]btΥΥF network buffer γ~ virtual memory
- (רO mbuf clusters)CѪkOW[ mbuf clusters Ϊ virtual memory
- ƶqAoBJаѾ\ FreeBSD ϥΤU
- <ulink
- url="&url.books.handbook;/configtuning-kernel-limits.html#NMBCLUSTERS">g</ulink>
- C</para>
- </answer>
- </qandaentry>
-
-<!--
-HUª faq e
- <para>o panic ]OܨtΥΥFwİϪҦ
- O]SOO mbuf clusters^CziHW[ mbuf clusters
- VM ƶqAun[J:</para>
-
- <para><literal>options "NMBCLUSTERS=<replaceable>n</replaceable>"</literal></para>
-
- <para>bz kernel ]wɤA<replaceable>n</replaceable>
- O@Ӧb 512-4096 ƦrA̱zQѦh֦Pɪ TCP sƥ
- hөwCڷ|ijո 2048 - oƦrӥiHקKo panic
- FCziH: <command>netstat -m</command>
- ]see &man.netstat.1;^Ӻʬݦh mbuf clusters btΤWQ
- tm/ϥΡCNMBCLUSTERS ƭȤw <literal>512 + MAXUSERS * 16
- </literal>C</para>
--->
-
- <qandaentry>
- <question id="proc-table-full">
- <para>ڤ@ݨ <errorname>/kernel: proc: table
- is full</errorname> oӿ~TH</para>
- </question>
-
- <answer>
- <para>FreeBSD kernel u\@wƶq process bP@ɶ̦P
- ɹB@CӳoӼƥجOھ kernel ]wɸ̭
- <literal>MAXUSERS</literal> ȨӨMwC<literal>MAXUSERS</literal>
- oӭȤ]|vTL kernel wȡAp network buffer
- (аѾ\<link linkend="panic-kmemmap-too-small">o</link>eQ
- ׹LD)CpGt(load)ܭAziݭnW[
- <literal>MAXUSERS</literal> oӭȡCo@|@ִtΪL
- wȡA]A̤ji֦ process ƵC</para>
-
- <para>Ynվ <literal>MAXUSERS</literal>AаѾ\ FreeBSD ϥΤU <ulink
- url="&url.books.handbook;/configtuning-kernel-limits.html#KERN-MAXFILES">
- ɮ/Process</ulink> `C
- (MӳBOyɮת}ҼƶqzA]AΩ processC)</para>
-
- <para>b FreeBSD 4.4 A<literal>MAXUSERS</literal> wgܦi
- Haۧ <filename>/boot/loader.conf</filename> ت
- <varname>kern.maxusers</varname> oӭȦӽվ㪺ܼƤFCӦbe
- FreeBSD Aoӭȥub kernel ]wؽվC</para>
-
- <para>pGtäAӱzuOݭnPɶ]ܦhܦh processA
- ]iH sysctl վ <varname>kern.maxproc</varname> ȡC
- po process OݩYӨϥΪ̪Azٻݭnt
- ~վ <varname>kern.maxprocperuid</varname> oӭȡAϥs
- <varname>kern.maxproc</varname> oӭȤ 1 (@wn 1 A
- ] &man.init.8; oӨtε{nObB@A)C</para>
-
- <para>pGQbC}n sysctl ȡAӥBz FreeBSD O
- ̪񪺪ܡAЦb <filename>/etc/sysctl.conf</filename> o
- ɤ]wAӦpGOªAiHb
- <filename>/etc/rc.local</filename> @]wC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="cmap-busy-panic">
- <para>ηs kernel }ɡAX{ <errorname>CMAP
- busy</errorname> oӿ~TH</para>
- </question>
-
- <answer>
- <para>ΨӰ <filename>/var/db/kvm_*.db</filename> Lɮת|oͰDAӨϥΨF@Ӥ
- (mismatch)ɮצɴN|ɭP panicC</para>
-
- <para>pGoͤFoӰDAЭs}AiJ single ϥΪ̼ҦAMG</para>
-
- <screen>&prompt.root; <userinput>rm /var/db/kvm_*.db</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="brkadrint-illegal-host-access">
- <para>аݳoӰTG<errorname>ahc0: brkadrint, Illegal Host Access at seqaddr 0x0</errorname>
- ONH</para>
- </question>
-
- <answer>
- <para>oO@өM Ultrastor SCSI dĬ]conflict^C</para>
-
- <para>b}ɡAiJ kernel ]w
- <devicename>uha0</devicename>AOyoӰD]C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="aci0-illegal-cable">
- <para>}ɡAݨoӿ~T <errorname>ahc0: illegal cable configuration</errorname>C
- ڪƽuTwC OXFDOH</para>
- </question>
-
- <answer>
- <para>zDOiण䴩۰ʲ׺ݹq]wCжi SCSI BIOS
- ̭ʫwT׺ݹqǡAӤnϥΦ۰ʳ]wC
- AIC7XXX Xʵ{õLkDSoDZƽu(HΦ۰ʲ׺ݹq]w)q(external logic)
- sbCpG EEPROM ̭]wO "automatic termination" ɡAu|°woǹqMOsbC
- Yʤ֤FoӹqAXʵ{b]w׺ݹqɴN``XDC
- ӳoذDNɭP SCSI ׬yƪiaʭCC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="mail-loopback">
- <para> Sendmail @X{
- <quote><errorname>mail loops back to myself</errorname></quote>
- oӿ~TH</para>
- </question>
-
- <answer>
- <para>oӰDb sendmail FAQ Oo˦^:-</para>
-
-<literallayout> * ڤ@즳 "Local configuration error" HAҦpG
-
- 553 relay.domain.net config error: mail loops back to myself
- 554 &lt;user@domain.net&gt;... Local configuration error
-
- ڭnpѨMoӰDH
-
- zQ MX ]wAnHY domain]p: domain.net^HA
- Hzҫw]boӨҤl relay.domain.net^AOo
- åQ]w domain.net HCЧ domain.net [
- /etc/sendmail.cw ]pGzϥ FEATURE(use_cw_file)) άO
- b sendmail.cf [J "Cw domain.net"
- </literallayout>
-
- <para>̷s <ulink url="ftp://rtfm.mit.edu/pub/usenet/news.answers/mail/sendmail-faq">sendmail
- FAQ</ulink> {bwAH sendmail <quote>Xf</quote>C
- ثeOQwob <ulink
- url="news:comp.mail.sendmail">comp.mail.sendmail</ulink>A
- <ulink url="news:comp.mail.misc">comp.mail.misc</ulink>A<ulink
- url="news:comp.mail.smail">comp.mail.smail</ulink>A<ulink
- url="news:comp.answers">comp.answers</ulink>AM <ulink
- url="news:news.answers">news.answers</ulink>. z]iHH@
- Email <email>mail-server@rtfm.mit.edu</email>AMbH󤺤
- gW
- <literal>send usenet/news.answers/mail/sendmail-faq</literal>
- Hoo FAQ C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="remote-fullscreen">
- <para>滷ݾ]remote machine^ùnɡA
- `ΡH</para>
- </question>
-
- <answer>
- <para>γ\ݾëDNz׺ݾҦ] FreeBSD console ҥΪ
- <literal>cons25</literal>AӬO]䥦ҦC</para>
-
- <para>o঳XӸѨMoӰDkG</para>
- <itemizedlist>
- <listitem>
- <para>b logging iݾAz shell ܼ TERM
- <literal>ansi</literal> άO <literal>sco</literal>
- }pGݾ䴩oǼҦܡ^C</para>
- </listitem>
-
- <listitem>
- <para>ϥΤ䴩 VT100 nAp FreeBSD console U
- <application>screen</application> nC
- <application>screen</application> ѱzb@ terminal
- ئPɶ]nX session OAӥB]O@Ӭ۷n
- nCC <application>screen</application> O@
- VT100 ׺ݾAҥHݾ TERM ܼӳ]
- <literal>vt100</literal>C</para>
- </listitem>
-
- <listitem>
- <para>bݾ׺ݾƮw]terminal database^[J
- <literal>cons25</literal> ơC[Jkݾ
- @~tΤPӦҮtCаѾ\ݾtκ޲z
- ѡAӷ|UC</para>
- </listitem>
-
- <listitem>
- <para>Ұ FreeBSD X AAMϥΤ@ X Window U
- ׺ݾӵnJݾAҦp <command>xterm</command>
- <command>rxvt</command>Cӻݾ TERM ܼӭn
- ] <literal>xterm</literal> <literal>vt100</literal>C
- </para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="calcru-negative">
- <para>ڪ@
- <errorname>calcru: negative time...</errorname>H</para>
- </question>
-
- <answer>
- <para>_]interrupt^Pw P/ n骺ftiy
- oӰDCoiO bug άOYӸ˸mDCbWϥ
- j MTU ӧ@ TCP/IP ǿiH{oӰDCYOϧΥ[tdyo
- DܡAzӥˬdd_]wC</para>
-
- <para>oӰDڮO|y process X{
- <quote>SIGXCPU exceeded cpu time limit</quote> TAӤ`
- C</para>
-
- <para>YO FreeBSD 3.0 άO 1998 ~ 11 29 HLAU@
- oӰD@LkHLkѨMANu]w sysctl ܼơG</para>
-
- <screen>&prompt.root; <userinput>sysctl -w kern.timecounter.method=1</userinput></screen>
-
- <para>o˷|į঳ǼvTAOYҼ{oӰDaӪGAo˰
- OȱoCpGoӰD٬OsbܡA sysctl ӭȨ̵M] 1A
- MW[ kernel ]wɤ <literal>NTIMECOUNTER</literal> oӿ
- ƭȡCpGzN <literal>NTIMECOUNTER</literal> W[ 20
- MLkѨMoӰDAzW_wghLkpƾb
- iaAFC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="pcm0-not-found">
- <para>X{ <errorname>pcm0 not found</errorname> oӰTAΪ̬O
- ڪĥdܦF <devicename>pcm1</devicename>Ab kernel ]w
- اڬO] <literal>device pcm0</literal> ڡCoO^ƩOH
- </para>
- </question>
-
- <answer>
- <para>pGzb FreeBSD 3.x Wϥ PCI ĥdN|oͳoذDC
- ]<devicename>pcm0</devicename> o device OwOd ISA
- ĥdAҥHpGz@i PCI ĥdAzN|JoӰDA
- ӱzd|ܦ <devicename>pcm1</devicename>C</para>
-
- <note>
- <para>pGzu kernel ]wɤ]w令
- <literal>device pcm1</literal> OLkhoĵiTA
- o˷|y <devicename>pcm1</devicename> QOd ISA ĥdA
- PCI ĥdh|ܦ <devicename>pcm2</devicename>
- ]~[ <errorname>pcm1 not found</errorname> ĵiT^C
- </para>
- </note>
-
- <para>pGz@i PCI ĥdAzݭn make
- <devicename>snd1</devicename> o deviceAӤO
- <devicename>snd0</devicename>G</para>
-
- <screen>&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>./MAKEDEV snd1</userinput></screen>
-
- <para>oӰDb FreeBSD 4.x Wä|o͡A]ܦhHUF\h
- O<emphasis>PnP ɦV</emphasis>AӥB
- <devicename>pcm0</devicename> o device ]AOuOd ISA
- ĥdFC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="pnp-not-found">
- <para>bs FreeBSD 4.X |줣ڪ PnP d
- ]Ϊ̬O즨 <literal>unknown</literal>^H</para>
- </question>
-
- <answer>
- <para>FreeBSD 4.X {bwg <emphasis>PnP ɦV</emphasis>FA
- ڮNO|oͦǦb FreeBSD 3.X iHΪ PnP ˸m
- ]pĥdάOƾھ^ܦLkϥΡC</para>
-
- <para>oӭ]iHΤ@ʥ Peter Wemm o freebsd-questions
- o mailing list WHӸA쥻O򦳤@Ӥ
- ƾھAbtΤɯŨ FreeBSD 4.x ANSkQF
- ]b <literal>[]</literal> تOt~[ѡAe^C
- </para>
-
- <blockquote>
- <para>The PNP bios preconfigured it [the modem] and left it
- laying around in port spaceAso [in 3.x] the old-style ISA
- probes <quote>found</quote> it there.</para>
-
- <para>Under 4.0Athe ISA code is much more PnP-centric. It was
- possible [in 3.x] for an ISA probe to find a
- <quote>stray</quote> device and then for the PNP device id to
- match and then fail due to resource conflicts. SoAit
- disables the programmable cards first so this double probing
- cannot happen. It also means that it needs to know the PnP
- id's for supported PnP hardware. Making this more user
- tweakable is on the TODO list.</para>
- </blockquote>
-
- <para>pGn˸mA׹B@Aڭ̻ݭnX PnP idAMAN
- [J@b ISA ˸mɷ|ϥΪCiH &man.pnpinfo.8;
- ӰoӸ˸mA|ҨӻAUO &man.pnpinfo.8; 쪺@Ӥ
- ƾھơG</para>
-
- <screen>&prompt.root; <userinput>pnpinfo</userinput>
-Checking for Plug-n-Play devices...
-
-Card assigned CSN #1
-Vendor ID PMC2430 (0x3024a341)ASerial Number 0xffffffff
-PnP Version 1.0AVendor Version 0
-Device Description: Pace 56 Voice Internal Plug & Play Modem
-
-Logical Device ID: PMC2430 0x3024a341 #0
- Device supports I/O Range Check
-TAG Start DF
- I/O Range 0x3f8 .. 0x3f8Aalignment 0x8Alen 0x8
- [16-bit addr]
- IRQ: 4 - only one type (true/edge)</screen>
-
- <para>[more TAG lines elided]</para>
-
- <screen>TAG End DF
-End Tag
-
-Successfully got 31 resourcesA1 logical fdevs
--- card select # 0x0001
-
-CSN PMC2430 (0x3024a341)ASerial Number 0xffffffff
-
-Logical device #0
-IO: 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8
-IRQ 5 0
-DMA 4 0
-IO range check 0x00 activate 0x01</screen>
-
- <para>zһݭnTO@}lݨ쪺 <quote>Vendor ID</quote>
- o@CAQ줸X]oӨҤlO 0x3024a341^NO
- PnP idAӦboer]PMC2430^hO@ӿW@LG ASCII idC
- ӳoǸƻݭnQ[ <filename>/usr/src/sys/isa/sio.c</filename>
- oɮءC</para>
-
- <para>FFXAzӭnƥثe
- <filename>sio.c</filename>CӥBzn submit PR ɤ]ݭno
- lɮרӰX patch]zӷ|N submit PR a..G^..^C
- ۴Ns <filename>sio.c</filename> MUo</para>
-
- <programlisting>static struct isa_pnp_id sio_ids[] = {</programlisting>
-
- <para>۩UʡAӥTmӴJz˸mTCzݨ쪺N
- UoӼˤlA̬OӥkѸ̭ ASCII o Vender ID
- ǪAάO &man.pnpinfo.8; ҧ쪺@
- <emphasis>˸myz</emphasis>G</para>
-
- <programlisting>{0x0f804f3fANULL}A /* OZO800f - Zoom 2812 (56k Modem) */
-{0x39804f3fANULL}A /* OZO8039 - Zoom 56k flex */
-{0x3024a341ANULL}A /* PMC2430 - Pace 56 Voice Internal Modem */
-{0x1000eb49ANULL}A /* ROK0010 - Rockwell ? */
-{0x5002734aANULL}A /* RSS0250 - 5614Jx3(G) Internal Modem */</programlisting>
-
- <para>zoӸ˸mQi쪺 Vender ID [쥿TaAsɡA
- M᭫ss@ kernelAA}CoӸ˸mӴN|b
- FreeBSD 3.X UAQ <literal>sio</literal> ˸mFC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="nlist-failed">
- <para>ڱ``b]@ǵ{]Ҧp <command>top</command>
- <command>systat</command>^ɭԥX{
- <errorname>nlist failed</errorname> oӿ~TH</para>
- </question>
-
- <answer>
- <para>oӰDO]z]{ݭn@ӯSO kernel symbolAiO
- D]ӧ䤣Qӷ|oͳoӰDiO]Uӭ]G
- </para>
-
- <itemizedlist>
- <listitem>
- <para>z kernel M userland ɮתä@P]ҦpAz
- sF@ӷs kernelAOèS
- <maketarget>installworld</maketarget>AάOLΡ^A
- ] symbol table eNMε{sĶɪӤ@ˤFCp
- GOoرΡAа槹㪺ɯŨBJ]аѾ\
- <filename>/usr/src/UPDATING</filename> HoTy
- {^C</para>
- </listitem>
-
- <listitem>
- <para>zS <command>/boot/loader</command> ӸJz
- kernelAӬO boot2 }]аѾ\ &man.boot.8;^C
- ML <command>/boot/loader</command> èSA
- Ob kernel symbols ε{q譱FܭqC
- </para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="connection-delay">
- <para>ڥ <command>ssh</command> <command>telnet</command>
- sڪqɡA|ݫܪ@qɶ~sWH</para>
- </question>
-
- <answer>
- <para>gGTCP suإߤM߰ݱKXe]pGOb &man.telnet.1;
- ܡAhO login ܲŸXӤe^Anݫܪ@q
- C</para>
-
- <para>DҦbGoة𱡧α``O]An]server software^
- խnNȤݡ]client^ IP }ഫDW١C]ܦhA
- nA]A FreeBSD ت Telnet M SSHAFNDWټgJ
- ɤHѺ޲z̧@ѦҡAӷ|oʧ@C</para>
-
- <para>ѨMkGpGoӰDbzsPAɳ|o͡A
- DObzȤݳo@QP˪ApGOHubszAW
- ~|oͳoӱΡADNObAoFC</para>
-
- <para>pGOȤݳo観DAߤ@kNON DNS AצnA
- o˹A~ॿTഫW١CpGDObϰo
- ͪAoӬOADAиԲˬd@UQۤϪApGOz
- bW Internet ɵoͪAzݭnz ISP pAХL̸ѨM
- oӰDC</para>
-
- <para>pGOAo䪺DAӥBOoͦbϰAz
- n]woӦAAϥॿTN IP }ഫDW١C
- аѾ\ &man.hosts.5; M &man.named.8; HohTCp
- GOb Internet WAoͳoӰDA򦳥iOzA
- ഫ\XDCziHոլdߥt@ӥDW١ApG
- <hostid>www.yahoo.com</hostid>CpGdAiHTwOzo
- XDFC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="stray-irq">
- <para><errorname>stray IRQ</errorname> oӿ~TONH</para>
- </question>
- <answer>
- <para>Stray IRQs Ow IRQ IpD{HAjhO]w饻
- boX_ݨDASFۤv_nDC</para>
- <para>TӤkiHIoӰDG</para>
- <itemizedlist>
- <listitem>
- <para>z|oĵiCϥ@ irq X{ĵitδN|
- AܤFC</para>
- </listitem>
- <listitem>
- <para> <function>isa_strayintr()</function> تȡA 5
- 令 0Ao˩ҦĵiT|X{C</para>
- </listitem>
- <listitem>
- <para>w˨ϥ irq 7 w]ơAHΥ PPP Xʵ{
- ]oӤjtγ^Aۦw ide wЩάOL|ϥ
- irq 15 w]ƥHΥXʵ{C</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="file-table-full">
- <para> <errorname>file: table is full</errorname> oӰT
- @b dmesg حƥX{H</para>
- </question>
- <answer>
- <para>oӿ~TNFztΪ file descriptors wgϥΥFC
- аѾ\U <ulink url="../handbook/configtuning-kernel-limits.html">
- Tuning Kernel Limits</ulink> ̭ <ulink
- url="../handbook/configtuning-kernel-limits.html#KERN-MAXFILES">
- kern.maxfiles</ulink> oӳ`A̭@ǰQפθѨMkC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="laptop-clock-skew">
- <para>ڵOqW@ܿ~ɶH</para>
- </question>
-
- <answer>
- <para>zOq̦ӥHWA FreeBSD F
- ӡC</para>
-
- <para> &man.dmesg.8;Aˬd@U <literal>Timecounter</literal>
- rꪺXC̫@O FreeBSD ΪAq`O
- <literal>TSC</literal>C</para>
-
- <screen>&prompt.root; <userinput>dmesg | grep Timecounter</userinput>
-Timecounter "i8254" frequency 1193182 Hz
-Timecounter "TSC" frequency 595573479 Hz</screen>
-
- <para>ziH &man.sysctl.3; ݤ@U
- <varname>kern.timecounter.hardware</varname> oӭȰT{C</para>
-
- <screen>&prompt.root; <userinput>sysctl kern.timecounter.hardware</userinput>
-kern.timecounter.hardware: TSC</screen>
-
- <para>BIOS ib@DZΤU| TSC ɯ&mdash;ɭԬO]
- bϥιqu@ɷ|BztסAt~]iOiJFٹq
- AiO FreeBSD ä|ıoǽվAӷ|oͮɶW[άO
- ֪ΡC</para>
-
- <para>bWҤlAڭ̬ݨ٦ <literal>i8254</literal>
- oӮiHܡA &man.sysctl.3; Τʪ覡NoӭȼgJ
- <varname>kern.timecounter.hardware</varname> C</para>
-
- <screen>&prompt.root; <userinput>sysctl -w kern.timecounter.hardware=i8254</userinput>
-kern.timecounter.hardware: TSC -&gt; i8254</screen>
-
- <para>o˱zOqӴNiHOTɶFC</para>
-
- <para>pGnoӧ諸ʧ@AC}ɦ۰ʰAb
- <filename>/etc/sysctl.conf</filename> إ[JUoC</para>
-
- <programlisting>kern.timecounter.hardware=i8254</programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="null-null">
- <para>ڪOqLkT PC card H</para>
- </question>
-
- <answer>
- <para>oӰD``oͦbFhӧ@~tΪOqWCǫD
- BSD @~tη| PC card w˸mBb@Ӥ@PAU
- ]inconsistent state^Cϱo <command>pccardd</command> b
- odɡALk쥿TAӬO
- <errorname>"(null)""(null)"</errorname>C</para>
-
- <para>zݭn PC card ѪqHmoӵw˸mC@ӤkO
- NzOq]OvҦA]OݩRҦQn
- ^CӴXA}Co˱z PC card ӴN`FC</para>
-
- <para>ɦǵOqMݰ_ӤwgFAڤWèSC
- pGzo{WӤkSΡAAqAӴXA
- qˤWhM᭫}C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="boot-read-error">
- <para>b BIOS eAFreeBSD boot loader
- <errorname>Read error</errorname> MNʤFH</para>
- </question>
-
- <answer>
- <para>oO]FreeBSD boot loader LkTXwЪ
- geometryCo˪ܡANݭnb fdisk ΩάOק FreeBSD
- slice ɡAʱNTȿJihFC</para>
- <para>Tw geometry Ȧb BIOS ̭iHdC`NӵwЪ
- cylindersAheads H sectors oǼƭȡC</para>
- <para>b &man.sysinstall.8; fdisk ɡAU <keycap>G</keycap>
- HKʳ]wwЪ geometryC</para>
- <para>oɷ|@ӹܮظXӡA߰ݱz cylindersAheads H
- sectors oǪF誺ȡCбNb BIOS d쪺ƦrAH / @j
- JihC</para>
- <para>|ҨӻApGO 5000 cylindersA250 sectors M 60 sectors
- NJ <userinput>5000/250/60</userinput></para>
- <para>JЫ enter T{A̫U <keycap>W</keycap>
- sΰϪgJwзC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="bootmanager-restore">
- <para>t@ӧ@~tκRFڪ Boot ManagerCڭnˤ~⥦
- ^ӡH</para>
- </question>
-
- <answer>
- <para> &man.sysinstall.8; ۿ ConfigureAM FdiskC
- Aӥ<keycap>ť</keycap>ܭ Boot Manager ҦbwСC
- U <keycap>W</keycap> ӧ@gJʧ@Coɷ|X@Ӵ
- TA߰ݱznw˭@ boot loaderCп Boot ManagerA
- o˴NiHN٭FC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="indefinite-wait-buffer">
- <para>oӿ~TG<errorname>swap_pager: indefinite
- wait buffer:</errorname> ONOH</para>
- </question>
-
- <answer>
- <para>oӰTO@Ӱ{ǥbձNO]page memory^
- gJwФAӳoӰʧ@դF 20 MLk\CoӦiO]
- wЦayBqαƽuDBHΨLwŪXgJw]ơC
- pGuOwayDAzӷ|b
- <filename>/var/log/messages</filename>oɮפAάOb
- <command>dmesg</command>oӫOAݨ즳Ϻп~TC
- pGSAˬdzƽu٦YsO_}nC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="touch-not-found">
- <para>b buildworld/installworld ɡA|wb
- <errorname>touch: not found</errorname> ~T?</para>
- </question>
-
- <answer>
- <para>o~TäO &man.touch.1; {FAƹWiOɮ׮ɶQ]ӪɶC
- YW CMOS-clock ]waɶ
- (DLªvɶApxWɶ GMT +08:00 A]NO CST зǮɶ)A
- Цb}ɡA single user ҦiJAMᥴ
- <command>adjkerntz&nbsp;-i</command>
- ӽվ kernel clock PW CMOS-clock ӦPBC</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="commercial">
- <chapterinfo>
- <author>
- <firstname>Vanilla</firstname>
- <surname>Shu</surname>
- <affiliation>
- <address><email>vanilla@FreeBSD.org</email></address>
- </affiliation>
- </author>
- </chapterinfo>
-
- <title>ӷ~n</title>
-
- <note>
- <para>o@`e٬O۷֡ALڭ̷MƱUӤqର[Ie :)
- FreeBSD ´MCbo̪@aqSWQ`YACXӯºuOj}(Pɤ]{b FreeBSD
- WӾYA| FreeBSD ii[įq)Cڭ̹yӷ~n骺tӧL̪~]AbUW椤Ab
- <ulink url="../../../../commercial/index.html">Vendors page</ulink> iHݨCC</para>
- </note>
-
- <qandaset>
- <qandaentry>
- <question id="officesuite">
- <para>b쵹 FreeBSD Ϊ Office MOH</para>
- </question>
-
- <answer>
- <para><ulink
- url="http://www.openoffice.org">OpenOffice</ulink> oM open-source ʽ誺 office
- iHb FreeBSD W`BΦۦpA &linux;
- <ulink
- url="http://www.sun.com/staroffice/">StarOffice</ulink>,
- oM closed-source OpenOffice [ȪA]iHb FreeBSD W`ϥΡC</para>
-
- <para>FreeBSD W٦\hsƳnBպ(Spreadsheet)Høϳn鳣i Ports
- Collection Ӧw˳C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="motif">
- <para>bi쵹 FreeBSD Ϊ MotifH</para>
- </question>
-
- <answer>
- <para>Open Group XF Motif 2.1.30 lXAiHzL
- <literal>open-motif</literal> package wˡAάO ports ۦ
- sĶCTAаѦ handbook <ulink
- url="../handbook/ports.html">ports</ulink> `C
-
- <note>
- <para>Open Motif ubPˤ]O <ulink
- url="http://www.opensource.org/">open source</ulink>
- @~tΩέpϥΡC</para>
- </note>
- </para>
-
- <para>t~A]Oӷ~ Motif sbC]\oت Motif
- OKOAO魯\Φb closed-source ҤUC
- <link linkend="apps2go">Apps2go</link> ѤF̫Ky FreeBSD
- (]A i386 alpha) ELF Motif 2.1.20 MC
- <anchor id="apps2go"/></para>
-
- <para>ثeѨؤPҪA <quote>oiΪ</quote>
- <quote>runtime </quote> CoخM󳣥]AG</para>
-
- <itemizedlist>
- <listitem>
- <para>OSF/Motif manager, xmbind, panner, wsm.</para>
- </listitem>
-
- <listitem>
- <para>Development kit with uil, mrm, xm, xmcxx, include
- and Imake files.</para>
- </listitem>
-
- <listitem>
- <para>Static and dynamic ELF libraries (for use with
- FreeBSD 3.0 and above).</para>
- </listitem>
-
- <listitem>
- <para>Demonstration applets.</para>
- </listitem>
- </itemizedlist>
-
- <para>] <emphasis>Apps2go</emphasis> ] NetBSD M OpenBSD
- AҥHbqʮɽЯSOwOn FreeBSD MotifI
- L̥ثeuѥH FTP 覡ooMC</para>
-
- <variablelist>
- <varlistentry>
- <term>hT</term>
- <listitem>
- <para><ulink url="http://www.apps2go.com/">
- Apps2go WWW page</ulink></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term></term>
- <listitem>
- <para>
- <email>sales@apps2go.com</email>
- <email>support@apps2go.com</email>
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term></term>
- <listitem>
- <para>phone (817) 431 8775 or +1 817 431-8775</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>]iHp <link linkend="xig">Xi Graphics</link>AL̴ѤF@
- FreeBSD a.out 榡 Motif 2.0 MC</para>
-
- <para>boM󤤥]AFG</para>
- <itemizedlist>
- <listitem>
- <para>OSF/Motif manager, xmbind, panner, wsm.</para>
- </listitem>
-
- <listitem>
- <para>Development kit with uil, mrm, xm, xmcxx, include
- and Imake files.</para>
- </listitem>
-
- <listitem>
- <para>Static and dynamic libraries (for use with FreeBSD
- 2.2.8 and earlier).</para>
- </listitem>
-
- <listitem>
- <para>Demonstration applets.</para>
- </listitem>
-
- <listitem>
- <para>Preformatted man pages.</para>
- </listitem>
- </itemizedlist>
-
- <para>bAḼq Motif ɡAФ@wAnO FreeBSD I
- ] <emphasis>Xi Graphics</emphasis> ]PɴѤF BSDI Linux
- MotifCثeo檺Ob|ϤANӥL̷|NҦ
- F賣и̡ANL̩ҵo檺 CDE @ˡC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="cde">
- <para>bi쵹 FreeBSD Ϊ CDEH</para>
- </question>
-
- <answer>
- <para><link linkend="xig">Xi Graphics</link> He FreeBSD Ϊ
- CDEAL{woFC</para>
-
- <para>N\h譱ӨA<ulink url="http://www.kde.org/">KDE</ulink> o open
- source ୱһP CDE ۷C~AAi|wϥ <ulink
- url="http://www.xfce.org/">xfce</ulink>CKDE xfce i <ulink url="&url.base;/ports/index.html">ports
- </ulink>ӦwˡC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="commercial-xserver">
- <para>SnAOIJv X serversH</para>
- </question>
-
- <answer>
- <para>A <ulink url="http://www.xig.com/">Xi Graphics</ulink>
- ѵ FreeBSD]ΨL Intel xW^Ϊ X [t~C</para>
-
-
- <para>Xi Graphics ҴѪį X Server D`²檺]w覡A
- åB䴩FثeWUjtPܥdCuA Binary ɮסA
- OκϤ覡oAFreeBSD Linux ۦPCXi Graphics P
- ]ѤFMOqΪį X ServerC<anchor id="xig"/></para>
-
- <para>5.0 ѧKOۮe <quote>demo</quote> </para>
-
- <para>Xi Graphics ]b FreeBSD Ϊ Motif CDE]Wݬݡ^C
- </para>
-
- <variablelist>
- <varlistentry>
- <term>hT</term>
- <listitem>
- <para><ulink url="http://www.xig.com/">
- Xi Graphics WWW page</ulink></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term></term>
- <listitem>
- <para><email>sales@xig.com</email>
- <email>support@xig.com</email>
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term></term>
- <listitem>
- <para>phone (800) 946 7433 or +1 303 298-7478.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="database-systems">
- <para>b FreeBSD W󪺸ƮwܡH</para>
- </question>
-
- <answer>
- <para>! Ь FreeBSD W <ulink
- url="../../../../commercial/software_bycat.html#CATEGORY_DATABASE">
- ӷ~n餽q </ulink> o@C</para>
-
- <para>٦аѦ ports <ulink
- url="../../../../ports/databases.html">
- Databases</ulink> C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="oracle-support">
- <para>iHb FreeBSD W Oracle ܡH</para>
- </question>
-
- <answer>
- <para>iHAUoӺ|pb FreeBSD W Linux
- OracleG</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="http://www.scc.nl/~marcel/howto-oracle.html">
- http://www.scc.nl/~marcel/howto-oracle.html</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.lf.net/lf/pi/oracle/install-linux-oracle-on-freebsd">
-
- http://www.lf.net/lf/pi/oracle/install-linux-oracle-on-freebsd</ulink></para>
-
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="applications">
- <chapterinfo>
- <author>
- <firstname>Kang-min</firstname>
- <surname>Liu</surname>
- <affiliation>
- <address><email>gugod@gugod.org</email></address>
- </affiliation>
- </author>
- </chapterinfo>
-
- <title>@ε{</title>
-
- <qandaset>
- <qandaentry>
- <question id="user-apps">
- <para>..ڭnbڭn{O?</para>
- </question>
-
- <answer>
- <para>Ьݬ <ulink url="../../../../ports/index.html">ports
- ؿ</ulink> aCo䦳wg port FreeBSD nCC
- ثeWL &os.numports; ӳnwgQport FreeBSD WAåBC
- bW[CҥHŴNhݬݳoCAMA]iHq\
- <literal>freebsd-announce</literal> <link linkend="mailing">
- o mailing list</link>A|HNCӬP̷snCKbWC</para>
-
- <para>j ports ӳiHb 4.XB5.X 6.X tΤWϥΡC
- C FreeBSD release sɡA|@ ports tree Qbo@
- release cd ̭ <filename>ports/</filename> ؿ̡C</para>
-
- <para>ڭ̤]䴩@إs <quote>package</quote> A򥻤W
- NO gzip YBiΨӵo檺 binary ɮסAO̭äF@
- Ǭ۷ΪTAiHUئۭqw˨ӨϥΡCϥΪ̤
- DY package ̨s]AɮסANi`HܤKaƱN
- w/ϦwˡC</para>
-
- <para>AiH <filename>sysinstall</filename>(&os; 5.2 ehO <command>/stand/sysinstall</command>) A
- b post-configuration U package oӦw˿ﶵF
- OYӦ쪺 package ɮװ &man.pkg.add.1;
- ⥦˰_ӡCPackage ɮ׳q`H <filename>.tgz</filename> <filename>.tbz</filename>
- ɦWAW FreeBSD CDROM HiHb <filename>packages/All</filename> oӥؿUoɮסC
- 藍P FreeBSD A]iHqUC}ѺWoG</para>
-
- <variablelist>
- <varlistentry>
- <term> 4.X-RELEASE/4-STABLE Ϊ</term>
- <listitem>
- <para><ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/">
- ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/</ulink></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term> 5.X-RELEASE/5-STABLE Ϊ</term>
- <listitem>
- <para><ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-stable/">
- ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-stable</ulink></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term> 6.X-RELEASE/6-STABLE Ϊ</term>
- <listitem>
- <para><ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-6-stable/">
- ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-6-stable</ulink></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term> 7-CURRENT Ϊ</term>
- <listitem>
- <para><ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-7-current/">
- ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-7-current</ulink></para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>άOA̪ mirror C</para>
-
- <para>n`NOA]s port @bW[AҥHäOҦ port
- ۹ packageC̦nwˬd<ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/">ftp.FreeBSD.org</ulink>
- Aݬݦ package iHΡC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="configure-inn">
- <para>ӫ]w INN(Internet News) ӷ news serverH</para>
- </question>
-
- <answer>
- <para>H package port 覡Ӹ˦n <filename
- role="package">news/inn</filename> A<ulink
- url="http://www.visi.com/~barr/INN.html">Dave
- Barr's INN Page</ulink> OӫD`n INN JBAAiHb INN FAQC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="java">
- <para>FreeBSD 䴩 &java; ܡH</para>
- </question>
-
- <answer>
- <para>ڡAЬ <ulink
- url="&url.base;/java/index.html">
- http://www.FreeBSD.org/java/</ulink></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="missing-libcso30">
- <para>ڥiHb libc.so.3.0?</para>
- </question>
-
- <answer>
- <para>Aib@x 2.1.x WA]۵ 2.2/3.x/4.0 nC
- ЦAW@ӳ`ݡAToAΪ port/packageC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="missing-libcso40">
- <para>ڱoFoӰT ?<errorname>Error: can't find
- libc.so.4.0</errorname>?</para>
- </question>
-
- <answer>
- <para>ApߧF 4.X 5.X tΥΪ packageAåBյ
- h˦bA 2.X 3.X tΤWCФUT packageC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="emul">
- <para> ghostscript bڪ 386/486SX WIDOI</para>
- </question>
-
- <answer>
- <para>ASBIB⾹AaHAbA kernel [Jƾ
- BAAiHۤUBJAæbLA kernel ]w
- ɫAssĶL@C</para>
-
- <programlisting>options GPL_MATH_EMULATE</programlisting>
-
- <note>
- <para>A[JW@檺PɡAAN
- <literal>MATH_EMULATE</literal> C</para>
- </note>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="sco-socksys">
- <para>ڰ SCO/iBCS2 {ɡAb
- <errorname>socksys</errorname> oӦaXFDH
- (FreeBSD 3.0 HΧ󦭪~DC)</para></question>
-
- <answer>
- <para>Aק <filename>/etc/sysconfig</filename> (άO
- <filename>/etc/rc.conf</filename>, Ū &man.rc.conf.5;)
- oɮ׳̫@ӳ`ANU쪺ܼƳ]
- <literal>YES</literal>G</para>
-
- <programlisting># Set to YES if you want ibcs2 (SCO) emulation
- loaded at startup ibcs2=NO</programlisting>
-
- <para>o|b}ɱN ibcs2 o@ kernel ҲոJC</para>
-
- <para>A٭nNA /compat/ibcs2/dev 令UoˡG</para>
-
- <screen>lrwxr-xr-x 1 root wheel 9 Oct 15 22:20 X0R@ -&gt; /dev/null
-lrwxr-xr-x 1 root wheel 7 Oct 15 22:20 nfsd@ -&gt; socksys
--rw-rw-r-- 1 root wheel 0 Oct 28 12:02 null
-lrwxr-xr-x 1 root wheel 9 Oct 15 22:20 socksys@ -&gt; /dev/null
-crw-rw-rw- 1 root wheel 41, 1 Oct 15 22:14 spx</screen>
-
- <para>AuݭnN socksys V <devicename>/dev/null</devicename>
- (Ū &man.null.4;) hFL open &amp; close ʧ@Cb -current
- ̭ ibcs2 {XN|BzlAoا@kHe覡
- bӦhFCpAQnϥ <devicename>spx</devicename> 譱
- {AbA kernel ]wɸ̭ [W<literal>SPX_HACK</literal>C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ms-frontpage">
- <para>ڸӨϥΨӪ Microsoft FrontPageH</para>
- </question>
-
- <answer>
- <para>Use the Port, LukeIb ports tree wg@ӥ]t FrontPage
- Apache FC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ports-3x">
- <para>ڵLkb 3.X-STABLE WQsno port?</para>
- </question>
-
- <answer>
- <para>pGA FreeBSD ۸ -CURRENT -STABLE UOܥj
- ܡAγ\A|ݭn@Ӥɯ ports uAb
- <ulink url="../../../../ports/index.html">
- http://www.FreeBSD.org/ports/</ulink>CpGAHNsoLΡA
- @wOYHʤy -CURRENT ~ΡA-STABLE LkΪpC
- ѩ ports Ҧnb -CURRENT άO -STABLE WnΡA
- ҥHоteX󦹰DγiFШϥ &man.send-pr.1; oӫ
- OӰeγiC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="find-ldso">
- <para>̥iHo ld.soH</para>
- </question>
-
- <answer>
- <para> a.out 榡ε{|ݭn a.out 榡禡wA
- Netscape Navigator NO@ӨҤlCL ELF 禡ws_
- FreeBSD w]ä|wª a.out 禡wAҥHzi|o
- 䤣 <filename>/usr/libexec/ld.so</filename> T
- CpGztΦow a.out 禡wnAoǨ禡w
- (compat22) ]Q &man.sysinstall.8; ӦwˡCΪ̧Q
- FreeBSD lXӦwˡG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/src/lib/compat/compat22</userinput>&prompt.root; <userinput>make install clean</userinput></screen>
-
- <para>pGAƱC <command>make world</command> ɷ|۰ʧs
- compat22 禡wAק <filename>/etc/make.conf</filename>A
- [J <varname>COMPAT22=YES</varname>CoǬۮejѪ禡w
- wgSbsFAҥH@뻡ӬOݭno˪C</para>
-
- <para>Pɤ]бzݤ@U 3.1-RELEASE M 3.2-RELEASE ɻ~(ERRATA)C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ports-update">
- <para>ڧsFtέlXA{bڭnˤɯŬYӤwgwˤW
- ports ?</para>
- </question>
-
- <answer>
- <para>FreeBSD èS۰ʤɯ ports uA@ǥiHɯ
- ²Ƥ@Ǫp{CA]iHۤvˤWB~uӳBzC</para>
-
- <para>&man.pkg.version.1; OiH۰ʲͥΨӹF۰ʤɯŨ
- ports tree ̷s scriptC</para>
-
- <screen>&prompt.root; <userinput>pkg_version <option>-c</option> > <replaceable>/tmp/myscript</replaceable></userinput></screen>
-
- <para><emphasis>@wn</emphasis>bʭק@UͥXӪ scriptC
- ثe &man.pkg.version.1; b script ̫e[J &man.exit.1; j
- Ahק復C</para>
-
- <para>AN script ҲͪXOUӡA]̭|OY
- |ɯŦwgs portsCLA@wnhɯť̡Cq`O]
- YӦ@Ϊ禡wwgܪFA~nhs@ǨϥΨӨ
- w portsC</para>
-
- <para>pGAwЪŶܰAiH <command>portupgrade</command>
- oӤuӰ۰ʳB̡C<command>portupgrade</command> ̭]
- @Ǥp{² package ɯšAb
- <filename role="package">sysutils/portupgrade</filename>C
- oӤuO Ruby oӻygAҥHäAX[J FreeBSD
- lXALä|]YǤHΥC</para>
-
- <para>pGAtΤ@B}AAiQ &man.periodic.8; tΡA
- CӬPͤ@iݭnɯŪMCunb
- <filename>/etc/periodic.conf</filename> [J
- <literal>weekly_status_pkg_enable="YES"</literal> NiHFC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="minima-sh">
- <para> <command>/bin/sh</command>o򪺤pH FreeBSD
- <command>bash</command> Ϊ̬OLj shellH</para>
- </question>
-
- <answer>
- <para>] POSIX Aӭno˪@ shell b~C</para>
-
- <para>cסG\hHݭngiHܦhx shell script C
- o]O POSIX N shell HΤuRٳwqD`ԲӪtGC
- j script AΩ Bourne shellAS]Xӭn
- g{ҥΨ쪺{Ϊ̨禡 (&man.make.1; , &man.system.3;,
- &man.popen.3;, ٦b Perl Ϊ Tcl ̭Istε{a)
- w Bourne shell C] Bourne Shell psx`ΡA
- 򥦪IJvKܭnAֳtOMwʪnI@A٭nӦh
- OC</para>
-
- <para>ثe <command>/bin/sh</command> wOڭ̹äw大@Aw
- gɶqaŦXзdzWwCFD`pAڭ̮F@ǨL shell
- K\Co]O ports ̭٦ܦhj shell AO
- bash, scsh, tcsh H zsh C (AiHۤv@Uo shell
- ɩҦOjpAhݬ <command>ps -u</command> CXӪ
- <quote>VSZ</quote> M <quote>RSS</quote> oNDFC)
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="netscape-slow-startup">
- <para> Netscape M Opera nn[ɶ~ҰʡH</para>
- </question>
-
- <answer>
- <para>q`O]A DNS S]wnC Netscape Opera bҰʪɭ
- |hˬd@U DNSC DNS ^AΪ̬O_wثeO_uA
- ̤~|ܵeXӡC</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
-
- <chapter id="kernelconfig">
- <chapterinfo>
- <author>
- <firstname>Kang-min</firstname>
- <surname>Liu</surname>
- <affiliation>
- <address><email>gugod@gugod.org</email></address>
- </affiliation>
- </author>
- </chapterinfo>
-
- <title>kernel ]w</title>
-
- <qandaset>
- <qandaentry>
- <question id="make-kernel">
- <para>ڷQۭq kernelAo|ܧxܡH</para>
- </question>
-
- <answer>
- <para>|IЬd\ <ulink url="../../handbook/kernelconfig.html">
- ϥΤU kernel ]w@`</ulink>C</para>
-
- <note>
- <para>ڷ|ijAbA֤߯ॿ`u@A@
- <filename>kernel.YYMMDD</filename> ΦƥAPɤ]ƥ
- <filename>/module</filename>oӥؿ
- <filename>/modules.YYMMDD</filename>CoˤUpGAܤ
- aF]wAܤ֥iHݭnϥγ̭l
- <filename>kernel.GENERIC</filename>CpAq@ GENERIC
- kernel ̭䴩̱ҰʮɡAoNoSOnC</para>
- </note>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="missing-hw-float">
- <para>ڪ֤ߦ] <literal>_hw_float</literal>򥢦ӽsĶѡC
- ӫץOH</para>
- </question>
-
- <answer>
- <para>ڲqݬݡAA <devicename>npx0</devicename>
- (Ԩ &man.npx.4;) qA kernel ]wɲFA]ASƾǹB⾹A
- ܡHFI:-) o <devicename>npx0</devicename>O
- <emphasis>n</emphasis>CNASƾǹB⾹AA٬O
- <emphasis></emphasis> ޤJ <devicename>npx0</devicename> ˸mC
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="why-kernel-big">
- <para>yXӪ kernel oj (10MB HW) H</para>
- </question>
-
- <answer>
- <para>oܦiO]AA kernel s <emphasis>Ҧ</emphasis>
- FCҦU kernel ̭|s۰Ϊ\hŸA]|jT
- W[ kernel jpCpGA FreeBSD O 3.0 H᪺Ao
- įӻvTäjAXGOSCӦbtη|]Yǭ] panic ɡA
- ӰҦ kernel b]ΪC</para>
-
- <para>LOApGAϺЪŶܤpAΪ̧ANOQΰҦ
- kernel ܡAнT{HUƱG</para>
-
- <itemizedlist>
- <listitem>
- <para>kernel ]wɸ̭So@G</para>
-
- <programlisting>makeoptions DEBUGS=-g </programlisting>
- </listitem>
-
- <listitem>
- <para> &man.config.8; ɨS[W <option>-g</option>
- oӿﶵC</para>
- </listitem>
- </itemizedlist>
-
- <para>HWƱ|AsX@ӰҦ kernelCunקKA
- NiHsX@ӥ` kernelAӧA]|`NAkernel 㪺ܤpFF
- j kernel thb 1.5MB 2MB C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="multiport-serial-interrupts">
- <para>X{F multi-port serial code _ĬH</para>
- </question>
-
- <answer>
- <para>ڽsĶ@ multi-port serial code ֤߮ɡAiDڥu
- Ĥ@ӳQALh]_ĬӸLFAڸӫץH</para>
-
- <para>oӰDO] FreeBSD ϥΤص{XקK]wγnĬ
- ɭP kernel LΤjεLΡCnץoرΪkOF@ port
- ~LҦ IRQ ]wOdCo̦@ӽdҡG</para>
-
- <programlisting>#
-# Multiport high-speed serial line - 16550 UARTS
-#
-device sio2 at isa? port 0x2a0 tty irq 5 flags 0x501 vector siointr
-device sio3 at isa? port 0x2a8 tty flags 0x501 vector siointr
-device sio4 at isa? port 0x2b0 tty flags 0x501 vector siointr
-device sio5 at isa? port 0x2b8 tty flags 0x501 vector siointr</programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="generic-kernel-build-failure">
- <para>ڤ@ kernel s_ӡHƦ GENERIC ]H</para>
- </question>
-
- <answer>
- <para>oܦhإi઺]G</para>
-
- <itemizedlist>
- <listitem>
- <para>ASηs <command>make buildkernel</command> P
- <command>make installkernel</command> oӤkӽsAӥn
- AtέlXMb檺tή֤ߪ@ (OA
- b] 4.0-RELEASE tΤWյ۽s 4.3-RELEASE)CpGAn
- ŨtΪܡAаȥhݬ <filename>/usr/src/UPDATING</filename>
- oɮסASO`N̫᭱ <quote>COMMON ITEMS</quote>
- oӤp`C</para>
- </listitem>
-
- <listitem>
- <para>AwgΤW <command>make buildkernel</command> H
- <command>make installkernel</command> FAOb
- <command>make buildworld</command> ɥѤFCiOA
- <command>make buildkernel</command> n\Aݭn̿
- <command>make buildworld</command> yXӪ@ɮסC</para>
- </listitem>
-
- <listitem>
- <para>NOAbs <link linkend="stable">&os.stable;</link>A
- ٬OiAFbק襤Aεۦ]YǽtGӮڥ٨Sn
- lXFM <link linkend="stable">&os.stable;</link>
- jɭԳOiHsAu RELEASE ~OOҥiHsCI
- oӰDɡAAslXåBAոլݡC]iOlX
- AX{YǰDAҥHslXɤ]ոձqPAӧs
- ݡC</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="disks">
- <title>wСBɮרtΡBBoot Loader</title>
-
- <qandaset>
- <qandaentry>
- <question id="new-huge-disk">
- <para>ڭnڪtηhswФWhH</para>
- </question>
-
- <answer>
- <para>zQ覡ObswФW˦n@~tΡAMϥΪ̬{BƷhLhNnC
- This is highly
- recommended if you have been tracking -STABLE for more
- than one release, or have updated a release instead of
- installing a new one. You can install booteasy on both
- disks with &man.boot0cfg.8;, and dual boot them until
- you are happy with the new configuration. Skip the
- next paragraph to find out how to move the data after
- doing this.</para>
-
- <para>Should you decide not to do a fresh install, you
- need to partition and label the new disk with either
- <filename>sysinstall</filename>(&os; 5.2 ehO <command>/stand/sysinstall</command>), or &man.fdisk.8;
- and &man.disklabel.8;. You should also install booteasy
- on both disks with &man.boot0cfg.8;, so that you can
- dual boot to the old or new system after the copying
- is done.</para>
-
- <para>Now you have the new disk set up, and are ready
- to move the data. Unfortunately, you cannot just blindly
- copy the data. Things like device files (in
- <filename>/dev</filename>), flags, and links tend to
- screw that up. You need to use tools that understand
- these things, which means &man.dump.8;.
- Although it is suggested that you move the data in single user
- mode, it is not required.</para>
-
- <para>You should never use anything but &man.dump.8; and
- &man.restore.8; to move the root filesystem. The
- &man.tar.1; command may work - then again, it may not.
- You should also use &man.dump.8; and &man.restore.8;
- if you are moving a single partition to another empty
- partition. The sequence of steps to use dump to move
- a partitions data to a new partition is:</para>
-
- <procedure>
- <step>
- <para>newfs the new partition.</para>
- </step>
-
- <step>
- <para>mount it on a temporary mount point.</para>
- </step>
-
- <step>
- <para>cd to that directory.</para>
- </step>
-
- <step>
- <para>dump the old partition, piping output to the
- new one.</para>
- </step>
- </procedure>
-
- <para>For example, if you are going to move root to
- <devicename>/dev/ad1s1a</devicename>, with
- <filename>/mnt</filename> as the temporary mount point,
- it is:</para>
-
- <screen>&prompt.root; <userinput>newfs /dev/ad1s1a</userinput>
-&prompt.root; <userinput>mount /dev/ad1s1a /mnt</userinput>
-&prompt.root; <userinput>cd /mnt</userinput>
-&prompt.root; <userinput>dump 0af - / | restore xf -</userinput></screen>
-
- <para>Rearranging your partitions with dump takes a bit more
- work. To merge a partition like <filename>/var</filename>
- into its parent, create the new partition large enough
- for both, move the parent partition as described above,
- then move the child partition into the empty directory
- that the first move created:</para>
-
- <screen>&prompt.root; <userinput>newfs /dev/ad1s1a</userinput>
-&prompt.root; <userinput>mount /dev/ad1s1a /mnt</userinput>
-&prompt.root; <userinput>cd /mnt</userinput>
-&prompt.root; <userinput>dump 0af - / | restore xf -</userinput>
-&prompt.root; <userinput>cd var</userinput>
-&prompt.root; <userinput>dump 0af - /var | restore xf -</userinput></screen>
-
- <para>To split a directory from its parent, say putting
- <filename>/var</filename> on its own partition when it was not
- before, create both partitions, then mount the child partition
- on the appropriate directory in the temporary mount point, then
- move the old single partition:</para>
-
- <screen>&prompt.root; <userinput>newfs /dev/ad1s1a</userinput>
-&prompt.root; <userinput>newfs /dev/ad1s1d</userinput>
-&prompt.root; <userinput>mount /dev/ad1s1a /mnt</userinput>
-&prompt.root; <userinput>mkdir /mnt/var</userinput>
-&prompt.root; <userinput>mount /dev/ad1s1d /mnt/var</userinput>
-&prompt.root; <userinput>cd /mnt</userinput>
-&prompt.root; <userinput>dump 0af - / | restore xf -</userinput></screen>
-
- <para>You might prefer &man.cpio.1;, &man.pax.1;,
- &man.tar.1; to &man.dump.8; for user data. At the time of
- this writing, these are known to lose file flag information,
- so use them with caution.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="dangerously-dedicated">
- <para>Will a <quote>dangerously dedicated</quote> disk endanger
- my health?</para>
- </question>
-
- <answer>
-
- <para><anchor id="dedicate"/>The installation procedure allows
- you to chose two different methods in partitioning your
- hard disk(s). The default way makes it compatible with other
- operating systems on the same machine, by using fdisk table
- entries (called <quote>slices</quote> in FreeBSD), with a
- FreeBSD slice that employs partitions of its own. Optionally,
- one can chose to install a boot-selector to switch between the
- possible operating systems on the disk(s). The alternative uses
- the entire disk for FreeBSD, and makes no attempt to be
- compatible with other operating systems.</para>
-
- <para>So why it is called <quote>dangerous</quote>? A disk
- in this mode does not contain what normal PC utilities
- would consider a valid fdisk table. Depending on how well
- they have been designed, they might complain at you once
- they are getting in contact with such a disk, or even
- worse, they might damage the BSD bootstrap without even
- asking or notifying you. In addition, the
- <quote>dangerously dedicated</quote> disk's layout is
- known to confuse many BIOSes, including those from AWARD
- (e.g. as found in HP Netserver and Micronics systems as
- well as many others) and Symbios/NCR (for the popular
- 53C8xx range of SCSI controllers). This is not a complete
- list, there are more. Symptoms of this confusion include
- the <errorname>read error</errorname> message printed by
- the FreeBSD bootstrap when it cannot find itself, as well
- as system lockups when booting.</para>
-
- <para>Why have this mode at all then? It only saves a few kbytes
- of disk space, and it can cause real problems for a new
- installation. <quote>Dangerously dedicated</quote> mode's
- origins lie in a desire to avoid one of the most common
- problems plaguing new FreeBSD installers - matching the BIOS
- <quote>geometry</quote> numbers for a disk to the disk
- itself.</para>
-
- <para><quote>Geometry</quote> is an outdated concept, but one
- still at the heart of the PC's BIOS and its interaction with
- disks. When the FreeBSD installer creates slices, it has to
- record the location of these slices on the disk in a fashion
- that corresponds with the way the BIOS expects to find them. If
- it gets it wrong, you will not be able to boot.</para>
-
- <para><quote>Dangerously dedicated</quote> mode tries to work
- around this by making the problem simpler. In some cases, it
- gets it right. But it is meant to be used as a last-ditch
- alternative - there are better ways to solve the problem 99
- times out of 100.</para>
-
- <para>So, how do you avoid the need for <quote>DD</quote> mode
- when you are installing? Start by making a note of the geometry
- that your BIOS claims to be using for your disks. You can
- arrange to have the kernel print this as it boots by specifying
- <option>-v</option> at the <literal>boot:</literal> prompt, or
- using <command>boot -v</command> in the loader. Just before the
- installer starts, the kernel will print a list of BIOS
- geometries. Do not panic - wait for the installer to start and
- then use scrollback to read the numbers. Typically the BIOS
- disk units will be in the same order that FreeBSD lists your
- disks, first IDE, then SCSI.</para>
-
- <para>When you are slicing up your disk, check that the disk
- geometry displayed in the FDISK screen is correct (ie. it
- matches the BIOS numbers); if it is wrong, use the
- <keycap>g</keycap> key to fix it. You may have to do this if
- there is absolutely nothing on the disk, or if the disk has been
- moved from another system. Note that this is only an issue with
- the disk that you are going to boot from; FreeBSD will sort
- itself out just fine with any other disks you may have.</para>
-
- <para>Once you have got the BIOS and FreeBSD agreeing about the
- geometry of the disk, your problems are almost guaranteed to be
- over, and with no need for <quote>DD</quote> mode at all. If,
- however, you are still greeted with the dreaded <errorname>read
- error</errorname> message when you try to boot, it is time to cross
- your fingers and go for it - there is nothing left to
- lose.</para>
-
- <para>To return a <quote>dangerously dedicated</quote> disk
- for normal PC use, there are basically two options. The first
- is, you write enough NULL bytes over the MBR to make any
- subsequent installation believe this to be a blank disk. You
- can do this for example with</para>
-
- <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/rda0 count=15</userinput></screen>
-
- <para>Alternatively, the undocumented DOS
- <quote>feature</quote></para>
-
- <screen><prompt>C:\&gt;</prompt> <userinput>fdisk /mbr</userinput></screen>
-
- <para>will to install a new master boot record as well, thus
- clobbering the BSD bootstrap.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="safe-softupdates">
- <para>Which partitions can safely use Soft Updates? I have
- heard that Soft Updates on <filename>/</filename> can cause
- problems.</para>
- </question>
-
- <answer>
- <para>Short answer: you can usually use Soft Updates safely
- on all partitions.</para>
-
- <para>Long answer: There used to be some concern over using
- Soft Updates on the root partition. Soft Updates has two
- characteristics that caused this. First, a Soft Updates
- partition has a small chance of losing data during a
- system crash. (The partition will not be corrupted; the
- data will simply be lost.) Also, Soft Updates can cause
- temporary space shortages.</para>
-
- <para>When using Soft Updates, the kernel can take up to
- thirty seconds to actually write changes to the physical
- disk. If you delete a large file, the file still resides
- on disk until the kernel actually performs the deletion.
- This can cause a very simple race condition. Suppose you
- delete one large file and immediately create another large
- file. The first large file is not yet actually removed
- from the physical disk, so the disk might not have enough
- room for the second large file. You get an error that the
- partition does not have enough space, although you know
- perfectly well that you just released a large chunk of
- space! When you try again mere seconds later, the file
- creation works as you expect. This has left more than one
- user scratching his head and doubting his sanity, the
- FreeBSD filesystem, or both.</para>
-
- <para>If a system should crash after the kernel accepts a
- chunk of data for writing to disk, but before that data is
- actually written out, data could be lost or corrupted.
- This risk is extremely small, but generally manageable.
- Use of IDE write caching greatly increases this risk; it
- is strongly recommended that you disable IDE write caching
- when using Soft Updates.</para>
-
- <para>These issues affect all partitions using Soft Updates.
- So, what does this mean for the root partition?</para>
-
- <para>Vital information on the root partition changes very
- rarely. Files such as <filename>/kernel</filename> and
- the contents of <filename>/etc</filename> only change
- during system maintenance, or when users change their
- passwords. If the system crashed during the
- thirty-second window after such a change is made, it is
- possible that data could be lost. This risk is negligible
- for most applications, but you should be aware that it
- exists. If your system cannot tolerate this much risk,
- do not use Soft Updates on the root filesystem!</para>
-
- <para><filename>/</filename> is traditionally one of the
- smallest partitions. By default, FreeBSD puts the
- <filename>/tmp</filename> directory on
- <filename>/</filename>. If you have a busy
- <filename>/tmp</filename>, you might see intermittent
- space problems. Symlinking <filename>/tmp</filename> to
- <filename>/var/tmp</filename> will solve this
- problem.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="inappropriate-ccd">
- <para>What is inappropriate about my ccd?</para>
- </question>
-
- <answer>
- <para>The symptom of this is:</para>
-
- <screen>&prompt.root; <userinput>ccdconfig -C</userinput>
-ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format</screen>
-
- <para>This usually happens when you are trying to concatenate
- the <literal>c</literal> partitions, which default to type
- <literal>unused</literal>. The ccd driver requires the
- underlying partition type to be FS_BSDFFS. Edit the disklabel
- of the disks you are trying to concatenate and change the types
- of partitions to <literal>4.2BSD</literal>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ccd-disklabel">
- <para>Why can I not edit the disklabel on my ccd?</para>
- </question>
-
- <answer>
- <para>The symptom of this is:</para>
-
- <screen>&prompt.root; <userinput>disklabel ccd0</userinput>
-(it prints something sensible here, so let us try to edit it)
-&prompt.root; <userinput>disklabel -e ccd0</userinput>
-(edit, save, quit)
-disklabel: ioctl DIOCWDINFO: No disk label on disk;
-use "disklabel -r" to install initial label</screen>
-
- <para>This is because the disklabel returned by ccd is actually
- a <quote>fake</quote> one that is not really on the disk.
- You can solve this problem by writing it back explicitly,
- as in:</para>
-
- <screen>&prompt.root; <userinput>disklabel ccd0 &gt; /tmp/disklabel.tmp</userinput>
-&prompt.root; <userinput>disklabel -Rr ccd0 /tmp/disklabel.tmp</userinput>
-&prompt.root; <userinput>disklabel -e ccd0</userinput>
-(this will work now)</screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="mount-foreign-fs">
- <para>Can I mount other foreign filesystems under FreeBSD?</para>
- </question>
-
- <answer>
- <para>FreeBSD supports a variety of other
- filesystems.</para>
-
- <variablelist>
- <varlistentry>
- <term>Digital UNIX</term>
-
- <listitem>
- <para>UFS CDROMs can be mounted directly on FreeBSD.
- Mounting disk partitions from Digital UNIX and other
- systems that support UFS may be more complex, depending
- on the details of the disk partitioning for the operating
- system in question.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&linux;</term>
-
- <listitem>
- <para>FreeBSD supports <literal>ext2fs</literal>
- partitions. See &man.mount.ext2fs.8; for more
- information.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&windowsnt;</term>
-
- <listitem>
- <para>FreeBSD includes a read-only NTFS driver. For
- more information, see &man.mount.ntfs.8;.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FAT</term>
-
- <listitem>
- <para>FreeBSD includes a read-write FAT driver. For
- more information, see &man.mount.msdosfs.8;.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>FreeBSD also supports network filesystems such as NFS
- (see &man.mount.nfs.8;), NetWare (see &man.mount.nwfs.8;),
- and Microsoft-style SMB filesystems (see
- &man.mount.smbfs.8;).</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="mount-dos">
- <para>How do I mount a secondary DOS partition?</para>
- </question>
-
- <answer>
-
- <para>The secondary DOS partitions are found after ALL the
- primary partitions. For example, if you have an
- <quote>E</quote> partition as the second DOS partition on
- the second SCSI drive, you need to create the special files
- for <quote>slice 5</quote> in <filename>/dev</filename>,
- then mount <devicename>/dev/da1s5</devicename>:</para>
-
- <screen>&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>sh MAKEDEV da1s5</userinput>
-&prompt.root; <userinput>mount -t msdos /dev/da1s5 /dos/e</userinput></screen>
-
- <note>
- <para>You can omit this step if you are running FreeBSD
- 5.0-RELEASE or newer with &man.devfs.5;
- enabled.</para>
- </note>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="crypto-filesystem">
- <para>&os; ɮץ[KtζܡH</para>
- </question>
-
- <answer>
-
- <para>ڡI FreeBSD 5.0 _ &man.gbde.8;A FreeBSD 6.0
- S[W &man.geli.8;C ӸAЦhQ <filename
- role="package">security/cfs</filename> portA¡C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="nt-bootloader">
- <para>How can I use the &windowsnt; loader to boot FreeBSD?</para>
- </question>
-
- <answer>
- <para>The general idea is that you copy the first sector of your
- native root FreeBSD partition into a file in the DOS/&windowsnt;
- partition. Assuming you name that file something like
- <filename>c:\bootsect.bsd</filename> (inspired by
- <filename>c:\bootsect.dos</filename>), you can then edit the
- <filename>c:\boot.ini</filename> file to come up with something
- like this:</para>
-
- <programlisting>[boot loader]
-timeout=30
-default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
-[operating systems]
-multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT"
-C:\BOOTSECT.BSD="FreeBSD"
-C:\="DOS"</programlisting>
-
- <para>If FreeBSD is installed on the same disk as the &windowsnt; boot
- partition simply copy <filename>/boot/boot1</filename> to
- <filename>C:\BOOTSECT.BSD</filename>. However, if FreeBSD is
- installed on a different disk <filename>/boot/boot1</filename>
- will not work, <filename>/boot/boot0</filename> is needed.</para>
-
- <para><filename>/boot/boot0</filename> needs to be installed
- using sysinstall(&os; 5.2 ehO <command>/stand/sysinstall</command>) by selecting the FreeBSD boot manager on
- the screen which asks if you wish to use a boot
- manager. This is because <filename>/boot/boot0</filename>
- has the partition table area filled with NULL characters
- but sysinstall copies the partition table before copying
- <filename>/boot/boot0</filename> to the MBR.</para>
-
- <warning>
- <para><emphasis>Do not simply copy <filename>/boot/boot0</filename>
- instead of <filename>/boot/boot1</filename>; you will
- overwrite your partition table and render your computer
- un-bootable!</emphasis></para>
- </warning>
-
- <para>When the FreeBSD boot manager runs it records the last
- OS booted by setting the active flag on the partition table
- entry for that OS and then writes the whole 512-bytes of itself
- back to the MBR so if you just copy
- <filename>/boot/boot0</filename> to
- <filename>C:\BOOTSECT.BSD</filename> then it writes an empty
- partition table, with the active flag set on one entry, to the
- MBR.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="lilo-bootloader">
- <para>How do I boot FreeBSD and &linux; from LILO?</para>
- </question>
-
- <answer>
- <para>If you have FreeBSD and &linux; on the same disk, just follow
- LILO's installation instructions for booting a non-&linux;
- operating system. Very briefly, these are:</para>
-
- <para>Boot &linux;, and add the following lines to
- <filename>/etc/lilo.conf</filename>:</para>
-
- <programlisting>other=/dev/hda2
- table=/dev/hda
- label=FreeBSD</programlisting>
-
- <para>(the above assumes that your FreeBSD slice is known to
- &linux; as <devicename>/dev/hda2</devicename>; tailor to
- suit your setup). Then, run <command>lilo</command> as
- <username>root</username> and you should be done.</para>
-
- <para>If FreeBSD resides on another disk, you need to add
- <literal>loader=/boot/chain.b</literal> to the LILO entry.
- For example:</para>
-
- <programlisting>other=/dev/dab4
- table=/dev/dab
- loader=/boot/chain.b
- label=FreeBSD</programlisting>
-
- <para>In some cases you may need to specify the BIOS drive number
- to the FreeBSD boot loader to successfully boot off the second
- disk. For example, if your FreeBSD SCSI disk is probed by BIOS
- as BIOS disk 1, at the FreeBSD boot loader prompt you need to
- specify:</para>
-
- <screen>Boot: <userinput>1:da(0,a)/kernel</userinput></screen>
-
- <para>You can configure
- &man.boot.8;
- to automatically do this for you at boot time.</para>
-
- <para>The <ulink
- url="http://sunsite.unc.edu/LDP/HOWTO/mini/Linux+FreeBSD.html">
- &linux;+FreeBSD mini-HOWTO</ulink> is a good reference for
- FreeBSD and &linux; interoperability issues.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="booteasy-loader">
- <para>How do I boot FreeBSD and &linux; using BootEasy?</para>
- </question>
-
- <answer>
- <para>Install LILO at the start of your &linux; boot partition
- instead of in the Master Boot Record. You can then boot LILO
- from BootEasy.</para>
-
- <para>If you are running &windows; 95 and &linux; this is recommended
- anyway, to make it simpler to get &linux; booting again if you
- should need to reinstall &windows; 95 (which is a Jealous
- Operating System, and will bear no other Operating Systems in
- the Master Boot Record).</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="changing-bootprompt">
- <para>How do I change the boot prompt from <literal>???</literal> to
- something more meaningful?</para>
- </question>
-
- <answer>
- <para>You can not do that with the standard boot manager without
- rewriting it. There are a number of other boot managers
- in the <filename>sysutils</filename> ports category that
- provide this functionality.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="removable-drives">
- <para>I have a new removable drive, how do I use it?</para>
- </question>
-
- <answer>
-
- <para>Whether it is a removable drive like a &iomegazip; or an EZ drive
- (or even a floppy, if you want to use it that way), or a new
- hard disk, once it is installed and recognized by the system,
- and you have your cartridge/floppy/whatever slotted in, things
- are pretty much the same for all devices.</para>
-
- <para>(this section is based on <ulink
- url="http://www.vmunix.com/mark/FreeBSD/ZIP-FAQ.html">
- Mark Mayo's ZIP FAQ</ulink>)</para>
-
- <para>If it is a ZIP drive or a floppy, you have already got a DOS
- filesystem on it, you can use a command like this:</para>
-
- <screen>&prompt.root; <userinput>mount -t msdos /dev/fd0c /floppy</userinput></screen>
-
- <para>if it is a floppy, or this:</para>
-
- <screen>&prompt.root; <userinput>mount -t msdos /dev/da2s4 /zip</userinput></screen>
-
- <para>for a ZIP disk with the factory configuration.</para>
-
- <para>For other disks, see how they are laid out using
- &man.fdisk.8; or
- &man.sysinstall.8;.</para>
-
- <para>The rest of the examples will be for a ZIP drive on da2,
- the third SCSI disk.</para>
-
- <para>Unless it is a floppy, or a removable you plan on sharing
- with other people, it is probably a better idea to stick a BSD
- filesystem on it. You will get long filename support, at least a
- 2X improvement in performance, and a lot more stability. First,
- you need to redo the DOS-level partitions/filesystems. You can
- either use &man.fdisk.8; or
- <filename>sysinstall</filename>(&os; 5.2 ehO <command>/stand/sysinstall</command>), or for a small drive
- that you do not want to bother with multiple operating system
- support on, just blow away the whole FAT partition table
- (slices) and just use the BSD partitioning:</para>
-
- <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/rda2 count=2</userinput>
-&prompt.root; <userinput>disklabel -Brw da2 auto</userinput></screen>
-
- <para>You can use disklabel or
- <filename>sysinstall</filename> to create multiple BSD
- partitions. You will certainly want to do this if you are adding
- swap space on a fixed disk, but it is probably irrelevant on a
- removable drive like a ZIP.</para>
-
- <para>Finally, create a new filesystem, this one is on our ZIP
- drive using the whole disk:</para>
-
- <screen>&prompt.root; <userinput>newfs /dev/rda2c</userinput></screen>
-
- <para>and mount it:</para>
-
- <screen>&prompt.root; <userinput>mount /dev/da2c /zip</userinput></screen>
-
- <para>and it is probably a good idea to add a line like this
- to <filename>/etc/fstab</filename> (see &man.fstab.5;) so
- you can just type <command>mount /zip</command> in the
- future:</para>
-
- <programlisting>/dev/da2c /zip ffs rw,noauto 0 0</programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="mount-cd-superblock">
- <para>Why do I get <errorname>Incorrect super block</errorname> when
- mounting a CDROM?</para>
- </question>
-
- <answer>
- <para>You have to tell &man.mount.8; the type of the device
- that you want to mount. This is described in the <ulink
- url="&url.books.handbook;/creating-cds.html"> Handbook section on
- optical media</ulink>, specifically the section <ulink
- url="&url.books.handbook;/creating-cds.html#MOUNTING-CD">Using Data
- CDs</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="cdrom-not-configured">
- <para>Why do I get <errorname>Device not
- configured</errorname> when mounting a CDROM?</para>
- </question>
-
- <answer>
- <para>This generally means that there is no CDROM in the
- CDROM drive, or the drive is not visible on the
- bus. Please see the <ulink
- url="&url.books.handbook;/creating-cds.html#MOUNTING-CD">Using Data
- CDs</ulink> section of the Handbook for a detailed
- discussion of this issue.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="cdrom-unicode-filenames">
- <para>Why do all non-English characters in filenames show up as
- <quote>?</quote> on my CDs when mounted in FreeBSD?</para>
- </question>
-
- <answer>
- <para>Your CDROM probably uses the <quote>Joliet</quote>
- extension for storing information about files and
- directories. This is discussed in the Handbook chapter on
- <ulink url="&url.books.handbook;/creating-cds.html">creating and
- using CDROMs</ulink>, specifically the section on <ulink
- url="&url.books.handbook;/creating-cds.html#MOUNTING-CD">Using Data
- CDROMs</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="burncd-isofs">
- <para>I burned a CD under FreeBSD and now I can not read it
- under any other operating system. Why?</para>
- </question>
-
- <answer>
- <para>You most likely burned a raw file to your CD, rather
- than creating an ISO 9660 filesystem. Take a look at the
- <ulink url="&url.books.handbook;/creating-cds.html">Handbook
- chapter on creating CDROMs</ulink>, particularly the
- section on <ulink
- url="&url.books.handbook;/creating-cds.html#RAWDATA-CD">burning raw
- data CDs</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="copy-cd">
- <para>How can I create an image of a data CD?</para>
- </question>
-
- <answer>
- <para>This is discussed in the Handbook section on <ulink
- url="&url.books.handbook;/creating-cds.html#IMAGING-CD">duplicating
- data CDs</ulink>. For more on working with CDROMs, see the
- <ulink url="&url.books.handbook;/creating-cds.html">Creating CDs
- Section</ulink> in the Storage chapter in the
- Handbook.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="mount-audio-CD">
- <para>Why can I not <command>mount</command> an audio
- CD?</para>
- </question>
-
- <answer>
- <para>If you try to mount an audio CD, you will get an error
- like <errorname>cd9660: /dev/acd0c: Invalid
- argument</errorname>. This is because
- <command>mount</command> only works on filesystems. Audio
- CDs do not have filesystems; they just have data. You
- need a program that reads audio CDs, such as the
- <filename role="package">audio/xmcd</filename> port.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="multi-session-CD">
- <para>How do I <command>mount</command> a multi-session CD?</para>
- </question>
-
- <answer>
- <para>By default, &man.mount.8; will attempt to mount the
- last data track (session) of a CD. If you would like to
- load an earlier session, you must use the
- <option>-s</option> command line argument. Please see
- &man.mount.cd9660.8; for specific examples.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="user-floppymount">
- <para>How do I let ordinary users mount floppies, CDROMs and
- other removable media?</para>
- </question>
-
- <answer>
- <para>Ordinary users can be permitted to mount devices. Here is
- how:</para>
-
- <procedure>
- <step>
- <para>As <username>root</username> set the sysctl variable
- <varname>vfs.usermount</varname> to
- <literal>1</literal>.</para>
-
- <screen>&prompt.root; <userinput>sysctl -w vfs.usermount=1</userinput></screen>
- </step>
-
- <step>
- <para>As <username>root</username> assign the appropriate
- permissions to the block device associated with the
- removable media.</para>
-
- <para>For example, to allow users to mount the first floppy
- drive, use:</para>
-
- <screen>&prompt.root; <userinput>chmod 666 /dev/fd0</userinput></screen>
-
- <para>To allow users in the group
- <groupname>operator</groupname> to mount the CDROM drive,
- use:</para>
-
- <screen>&prompt.root; <userinput>chgrp operator /dev/acd0c</userinput>
-&prompt.root; <userinput>chmod 640 /dev/acd0c</userinput></screen>
- </step>
-
- <step>
- <para>If you are running &os; 5.X or later, you will need to alter
- <filename>/etc/devfs.conf</filename> to make these changes
- permanent across reboots.</para>
-
- <para>As <username>root</username>, add the necessary lines to
- <filename>/etc/devfs.conf</filename>. For example, to allow
- users to mount the first floppy drive add:</para>
-
- <programlisting># Allow all users to mount the floppy disk.
-own /dev/fd0 root:operator
-perm /dev/fd0 0666</programlisting>
-
- <para>To allow users in the group <groupname>operator</groupname>
- to mount the CD-ROM drive add:</para>
-
- <programlisting># Allow members of the group operator to mount CD-ROMs.
-own /dev/acd0 root:operator
-perm /dev/acd0 0660</programlisting>
- </step>
-
- <step>
- <para>Finally, add the line
- <literal><varname>vfs.usermount</varname>=1</literal>
- to the file <filename>/etc/sysctl.conf</filename> so
- that it is reset at system boot time.</para>
- </step>
- </procedure>
-
- <para>All users can now mount the floppy
- <devicename>/dev/fd0</devicename> onto a directory that they
- own:</para>
-
- <screen>&prompt.user; <userinput>mkdir ~/my-mount-point</userinput>
-&prompt.user; <userinput>mount -t msdos /dev/fd0 ~/my-mount-point</userinput></screen>
-
- <para>Users in group <groupname>operator</groupname> can now
- mount the CDROM <devicename>/dev/acd0c</devicename> onto a
- directory that they own:</para>
-
- <screen>&prompt.user; <userinput>mkdir ~/my-mount-point</userinput>
-&prompt.user; <userinput>mount -t cd9660 /dev/acd0c ~/my-mount-point</userinput></screen>
-
- <para>Unmounting the device is simple:</para>
-
- <screen>&prompt.user; <userinput>umount ~/my-mount-point</userinput></screen>
-
- <para>Enabling <varname>vfs.usermount</varname>, however,
- has negative security implications. A better way to
- access &ms-dos; formatted media is to use the
- <filename role="package">emulators/mtools</filename>
- package in the ports collection.</para>
-
- <note>
- <para>The device name used in the previous examples must be
- changed according to your configuration.</para>
- </note>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="du-vs-df">
- <para>The <command>du</command> and <command>df</command>
- commands show different amounts of disk space available.
- What is going on?</para>
- </question>
-
- <answer>
- <para>You need to understand what <command>du</command> and
- <command>df</command> really do. <command>du</command>
- goes through the directory tree, measures how large each
- file is, and presents the totals. <command>df</command>
- just asks the filesystem how much space it has left. They
- seem to be the same thing, but a file without a directory
- entry will affect <command>df</command> but not
- <command>du</command>.</para>
-
- <para>When a program is using a file, and you delete the
- file, the file is not really removed from the filesystem
- until the program stops using it. The file is immediately
- deleted from the directory listing, however. You can see
- this easily enough with a program such as
- <command>more</command>. Assume you have a file large
- enough that its presence affects the output of
- <command>du</command> and <command>df</command>. (Since
- disks can be so large today, this might be a
- <emphasis>very</emphasis> large file!) If you delete this
- file while using <command>more</command> on it,
- <command>more</command> does not immediately choke and
- complain that it cannot view the file. The entry is
- simply removed from the directory so no other program or
- user can access it. <command>du</command> shows that it
- is gone &mdash; it has walked the directory tree and the file
- is not listed. <command>df</command> shows that it is
- still there, as the filesystem knows that
- <command>more</command> is still using that space. Once
- you end the <command>more</command> session,
- <command>du</command> and <command>df</command> will
- agree.</para>
-
- <para>Note that Soft Updates can delay the freeing of disk
- space; you might need to wait up to 30 seconds for the
- change to be visible!</para>
-
- <para>This situation is common on web servers. Many people
- set up a FreeBSD web server and forget to rotate the log
- files. The access log fills up <filename>/var</filename>.
- The new administrator deletes the file, but the system
- still complains that the partition is full. Stopping and
- restarting the web server program would free the file,
- allowing the system to release the disk space. To prevent
- this from happening, set up &man.newsyslog.8;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="add-swap-space">
- <para>How can I add more swap space?</para>
- </question>
-
- <answer>
- <para>In the <ulink
- url="&url.books.handbook;/config-tuning.html">Configuration and
- Tuning</ulink> section of the Handbook, you will find a
- <ulink
- url="&url.books.handbook;/adding-swap-space.html">section</ulink>
- describing how to do this.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="manufacturer-disk-size">
- <para>Why does &os; see my disk as smaller than the
- manufacturer says it is?</para>
- </question>
-
- <answer>
- <para>Disk manufacturers calculate gigabytes as a billion bytes
- each, whereas &os; calculates them as 1,073,741,824 bytes
- each. This explains why, for example, &os;'s boot messages
- will report a disk that supposedly has 80GB as holding
- 76319MB.</para>
- <para>Also note that &os; will (by default)
- <link linkend="disk-more-than-full">reserve</link> 8% of the disk
- space.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="disk-more-than-full">
- <para>How is it possible for a partition to be more than 100%
- full?</para>
- </question>
-
- <answer>
- <para>A portion of each UFS partition (8%, by default) is
- reserved for use by the operating system and the
- <username>root</username> user.
- &man.df.1; does not count that space when
- calculating the <literal>Capacity</literal> column, so it can
- exceed 100%. Also, you will notice that the
- <literal>Blocks</literal> column is always greater than the
- sum of the <literal>Used</literal> and
- <literal>Avail</literal> columns, usually by a factor of
- 8%.</para>
-
- <para>For more details, look up the <option>-m</option> option
- in &man.tunefs.8;.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
-
- <chapter id="admin">
- <chapterinfo>
- <author>
- <firstname>Wei-Hon</firstname>
- <surname>Chen</surname>
- <affiliation>
- <address><email>plasmaball@pchome.com.tw</email></address>
- </affiliation>
- </author>
- </chapterinfo>
-
- <title>tκ޲z</title>
-
- <qandaset>
- <qandaentry>
- <question id="startup-config-files">
- <para>tΰ_l]wɦbH</para>
- </question>
-
- <answer>
-
- <para>q 2.0.5R 2.2.1RADn]wɬO
- <filename>/etc/sysconfig</filename>CҦﶵQwboɡA
- ӨL <filename>/etc/rc</filename> (Ѩ &man.rc.8;)
- M <filename>/etc/netstart</filename> uOޥΥC</para>
-
- <para>[ <filename>/etc/sysconfig</filename> oɨíץȥH
- AXAtΡCoɥεѶ񺡥HܦBөm]wC</para>
-
- <para>b post-2.2.1 H 3.0A<filename>/etc/sysconfig</filename>
- W@ӧeyzɦWs &man.rc.conf.5; AåByk²ƤFǡC
- <filename>/etc/netstart</filename> W
- <filename>/etc/rc.network</filename> ]Ҧɮ׳iH
- <command>cp /usr/src/etc/rc* /etc</command> ӫC</para>
-
- <para>b 3.1 HΡA<filename>/etc/rc.conf</filename> Q
- <filename>/etc/defaults/rc.conf</filename>C
- <emphasis>dUnsoɡI</emphasis> pG
- <filename>/etc/defaults/rc.conf</filename> QnʪءA
- AӱN@檺e <filename>/etc/rc.conf</filename>A
- MAק復C</para>
-
- <para>Ҧp FreeBSD 3.1 ΥH᪺A@ DNS A namedA
- ӧAQnҰʥCAһݭn@ƴNOG</para>
- <screen>&prompt.root; <userinput>echo named_enable="YES" &gt;&gt; /etc/rc.conf</userinput></screen>
-
- <para>Qnb FreeBSD 3.1 ΥH᪺AҰʥaݪAȪܡAN
- shell script m <filename>/usr/local/etc/rc.d</filename> ؿ
- UCo shell script ӳ]wiAåBɦWH .sh C
- b FreeBSD 3.0 Χ󦭪AAӪs
- <filename>/etc/rc.local</filename> ɡC</para>
-
- <para><filename>/etc/rc.serial</filename>ΨӪlƧǦC
- ]Ow𪺯Sʵ^C</para>
-
- <para><filename>/etc/rc.i386</filename> O Intel Mγ]wA
- O iBCS2 άO PC tΥDx]wC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="adding-users">
- <para>Ӧp²asWbH</para>
- </question>
-
- <answer>
- <para>ϥ &man.adduser.8; OCpGݭnϥΤ覡A
- Х &man.pw.8; oӫOC</para>
-
- <para>nAϥΪ̡Aϥ &man.rmuser.8; OC٦A
- &man.pw.8; ]iHϥΡC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="root-not-found-cron-errors">
- <para>b粒 crontab ɮ׫AѬOo˪TG
- <errorname>root: not found</errorname>H</para>
- </question>
-
- <answer>
- <para>q`O]sFtΪ crontab
- (<filename>/etc/crontab</filename>) MN &man.crontab.1;
- hw˥G</para>
-
- <screen>&prompt.root; <userinput>crontab /etc/crontab</userinput></screen>
-
- <para>o˧@O諸CtΪ crontab M &man.crontab.1;
- ҧsϥΪ̪ crontab 榡ä@ (&man.crontab.5;
- wtBԲӪ)C</para>
-
- <para>pGAwgγoؤkAB~hX crontab uNO
- <filename>/etc/crontab</filename> AuO榡O~C
- iΥHURORG</para>
-
- <screen>&prompt.root; <userinput>crontab -r</userinput></screen>
-
- <para>UAs <filename>/etc/crontab</filename> ɮתɭԡA
- AΧ@ʧ@hq &man.cron.8; A۰ʷ|hO_ʡC
- </para>
-
- <para>pGAQnCѡBCgBάOCTwYǰʧ@@A]\[
- shell script b <filename>/usr/local/etc/periodic</filename>
- ؿU|nAtΪ cron |Tw &man.periodic.8; ROA
- iNA{M䥦tζgʤu@@_C</para>
-
- <para>oӿ~u]AO]tΪ crontab @B~A
- өROnHϥΪ̨Cb FreeBSD w]t crontab
- AҦسO <username>root</username>C o crontab
- Q@O <username>root</username> ϥΪ crontab (MtΪ
- crontab O <emphasis></emphasis> @˪)A&man.cron.8; |H
- <literal>root</literal> rO檺ROĤ@ӦrAOڤW
- èSo˪ROsbC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="su-wheel-group">
- <para>ڷQn su <username>root</username> ɡA|o
- <errorname>you are not in the correct group to su root</errorname>
- ~TH</para>
- </question>
-
- <answer>
- <para>oO@ӦwSʡCQnQ su <username>root</username>
- (Ψ䥦 superuser vb)AA@wnb
- <groupname>wheel</groupname> sդCpGSoӯSʪܡA
- Hunbtθ̦bAåBꥩD <username>root</username>
- KXANiHo superuser ŪvHstΡCFoӯSʡA
- o˪pN|o͡FpGϥΪ̤b <groupname>wheel</groupname>
- sդܡA&man.su.1; |L̳sյJKX|SC</para>
-
- <para>nYHiHQ su <username>root</username> ܡA
- unL̩J <groupname>wheel</groupname> sդYiC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="rcconf-readonly">
- <para>ڦb <filename>rc.conf</filename> ٬OYӰ_ɮ׸̥ǤF~A
- ]ɮרtܦŪAڵLkhs襦CڸӫH</para>
- </question>
-
- <answer>
- <para>qݧA shell |WɡAun <literal>ENTER
- </literal>AM <command>mount /</command> HŪgҦ
- sɮרtΡCA]\ݭn <command>mount -a -t ufs
- </command>ANADΪrs边ҦbɮרtαWӡCpG
- ADΪrs边bɮרtΤWܡAAʱN]w
- _ӡAHKNɮרtαWӡAάOϥΥaɮרtΤW
- s边AҦp &man.ed.1;C</para>
-
- <para>pGAQnϥι &man.vi.1; άO &man.emacs.1; ù
- rs边ܡAA]ݭn
- <command>export TERM=cons25 </command>AHKoǽs边q
- &man.termcap.5; ƮwŪTơC</para>
-
- <para>AwgFoǨBJAAiHӧA`קk~覡
- hs <filename>/etc/rc.conf</filename> ɮסCb֤ (kernel)
- Ұʮɩܪ~TAiDAɮפ@榳~C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="printer-setup">
- <para>ڨSk]wڪLH</para>
- </question>
-
- <answer>
- <para>аѦҤ@U Handbook ACLCӯѨM
- AjDCаѦ <ulink url="../handbook/printing.html">
- Handbook CL</ulink>C</para>
-
- <para>ǦLݭnD䴩Xʵ{ (host-based driver) ~
- CL\CFreeBSD ä䴩oǩҿת
- <quote>WinPrinters</quote>C pGALLkb DOS
- Windows NT 4.0 UAjNO@x WinPrinterCAߤ@ϥ
- o˪LƱANOո <filename role="package">
- print/pnm2ppa</filename> 䤣䴩FC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="keyboard-mappings">
- <para>ڭn˭ץڪtΩҨϥΪLM (keyboard mapping)H
- </para>
- </question>
-
- <answer>
- <para>аѦ Handbook <ulink
- url="../handbook/using-localization.html">using localization
- </ulink> `AרO <ulink
- url="../handbook/using-localization.html#SETTING-CONSOLE">console
- setup</ulink> `C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="pnp-resources">
- <para>ڦbtαҰʮɡAo <errorname>unknown: &lt;PNP0303&gt;
- can't assign resources</errorname> TH</para>
- </question>
-
- <answer>
- <para>HUOq &os.current; qH׾ª@g峹`XӪC</para>
-
- <blockquote>
- <attribution>&a.wollman;, 2001 ~| 24 </attribution>
-
- <para><quote>Lk귽 (can't assign resources)</quote> T
- Ǹ˸mODzΪ ISA ˸mAӮ֤ߤwgsJ{o PNP Xʵ{
- CoǸ˸m]ALAi{Ƨ_A٦XӼз
- ]ơC귽LkoǸ˸mAO]wXʵ{ϥΨǦ}
- FC</para>
- </blockquote>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="user-quotas">
- <para> user quotas Lk`B@H</para>
- </question>
-
- <answer>
-
- <orderedlist>
- <listitem>
- <para>iA kernel ]w[J quotas 䴩(w]OL)CpGOoˤlܡA
- ЧUo[ kernel ]wɤíssĶBwˡG</para>
- <programlisting>options QUOTA</programlisting>
-
- <para>Ӹ`AаѾ\ Handbook <ulink url="&url.books.handbook;/quotas.html">
- quotas</ulink> `C</para>
- </listitem>
-
- <listitem>
- <para>Фnb <filename>/</filename> } quotas </para>
- </listitem>
-
- <listitem>
- <para> quotas ɩbjmJɮרtΤA|ҡG</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>ɮרt</entry>
- <entry>Quota </entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><filename>/usr</filename></entry>
- <entry><filename>/usr/admin/quotas</filename></entry>
- </row>
-
- <row>
- <entry><filename>/home</filename></entry>
- <entry><filename>/home/admin/quotas</filename></entry>
- </row>
-
- <row>
- <entry>&hellip;</entry>
- <entry>&hellip;</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </listitem>
- </orderedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="sysv-ipc">
- <para>FreeBSD 䴩 System V IPC 榡OH</para>
- </question>
-
- <answer>
- <para>OAFreeBSD 䴩 System V-style IPCCo]A@ɰOA
- THCAݭnbA kernel ]wɤ[JUCXHҰʥ̡C</para>
-
- <programlisting>options SYSVSHM # enable shared memory
-options SYSVSEM # enable for semaphores
-options SYSVMSG # enable for messaging</programlisting>
-
- <note>
- <para>b FreeBSD 3.2 HΤ᪺AoǿﶵwgO
- <emphasis>GENERIC</emphasis> ֤ߪ@A]NO̤w
- gsiFAtΤC</para>
- </note>
-
- <para>ssĶæwˡC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="uucpmail">
- <para>ڸӦp sendmail zL UUCP ӻelH</para>
- </question>
-
- <answer>
- <para>H FreeBSD M˦ӨӪ sendmail ]wOAXǪsWں
- xCQzL UUCP 洫l󪺯xt~w sendmail ]wɮסC
- </para>
-
- <para>ʭק <filename>/etc/sendmail.cf</filename> O沈nC
- 8 sendmail Ѥ@ӥsJfHzL@ǹ &man.m4.1;
- BzNಣͳ]wɡAoƹWO@ӰhŪޥʳ]wC
- AӥiHb <filename>/usr/src/usr.sbin/sendmail/cf</filename>
- HŲϥΥG</para>
-
- <para>pAO full sources 覡w˨tΡA sendmail
- ]wإiwgnXӨӷɦbۧAA]Awg
- mount оAHUʧ@G</para>
-
- <screen>&prompt.root; <userinput>cd /cdrom/src</userinput>
-&prompt.root; <userinput>cat scontrib.?? | tar xzf - -C /usr/src contrib/sendmail</userinput></screen>
-
- <para>OWAouƤQUӦ줸ժjpCb <filename>cf</filename>
- ؿ̪ <filename>README</filename> iHѤ@ m4 ]wk
- СC</para>
-
- <para>H UUCP eӻAijA̦nϥ <literal>mailertable</literal>
- SICغc@ӸƮw sendmail iHϥΥۤv|MC</para>
-
- <para>AAإߦۤv <filename>.mc</filename> ɡC
- <filename>/usr/src/usr.sbin/sendmail/cf/cf</filename> ؿOo
- ɮתaCdݤ@UAwgnXӽdɡA]AwgRWۤvɥs
- <filename>foo.mc</filename>AAnuO⥦ഫ@ӦĪ
- <filename>sendmail.cf</filename>G</para>
-
- <screen>&prompt.root; <userinput>cd /usr/src/usr.sbin/sendmail/cf/cf</userinput>
-&prompt.root; <userinput>make foo.cf</userinput>
-&prompt.root; <userinput>cp foo.cf /etc/mail/sendmail.cf</userinput></screen>
-
- <para>@Ө嫬 <filename>.mc</filename> ɬݰ_ӥi๳oˡG</para>
-
- <programlisting>VERSIONID(`<replaceable>Your version number</replaceable>')
-OSTYPE(bsd4.4)
-
-FEATURE(accept_unresolvable_domains)
-FEATURE(nocanonify)
-FEATURE(mailertable, `hash -o /etc/mail/mailertable')
-
-define(`UUCP_RELAY', <replaceable>your.uucp.relay</replaceable>)
-define(`UUCP_MAX_SIZE', 200000)
-define(`confDONT_PROBE_INTERFACES')
-
-MAILER(local)
-MAILER(smtp)
-MAILER(uucp)
-
-Cw <replaceable>your.alias.host.name</replaceable>
-Cw <replaceable>youruucpnodename.UUCP</replaceable></programlisting>
-
- <para><literal>accept_unresolvable_domains</literal>A
- <literal>nocanonify</literal>A M
- <literal>confDONT_PROBE_INTERFACES</literal> SʱNקKb
- elɷ|Ψ DNS |C<literal>UUCP_RELAY</literal>
- تX{zѫܩ_ǡANnݬFC²檺J@Ӻں
- WiHBz .UUCP }DW١Fq`AAuݭnbo
- ̶JA ISP H^гB (mail replay)C</para>
-
- <para>Awgo̤FAAٻݭnoӥs
- <filename>/etc/mail/mailertable</filename>CpGAu@ӥ
- ӶǻҦl󪺹~qDܡAHUɮ״NFG</para>
-
- <programlisting>#
-# makemap hash /etc/mail/mailertable.db &lt; /etc/mail/mailertable
- uucp-dom:<replaceable>your.uucp.relay</replaceable></programlisting>
-
- <para>t@ӧҤlݰ_ӹoˡG</para>
-
- <programlisting>#
-# makemap hash /etc/mail/mailertable.db &lt; /etc/mail/mailertable
-#
-horus.interface-business.de uucp-dom:horus
-interface-business.de uucp-dom:if-bus
-interface-business.de uucp-dom:if-bus
-heep.sax.de smtp8:%1
-horus.UUCP uucp-dom:horus
-if-bus.UUCP uucp-dom:if-bus
- uucp-dom:</programlisting>
-
-
- <para>pAҨAoOYӯuɮ׸̪@CTBzw}H
- ӳQeX줺w|AӥѬY UUCP F~(UUCP neighbor)N
- SΡAoOF <quote>Yu</quote>e|CU@Bz
- aAӺ쪺HiHϥ SMTP ӻeC̫AUUCP F~
- .UUCP 쪺OA\@ <literal><replaceable>uucp-neighbor
- </replaceable>!<replaceable>recipient</replaceable></literal> ½
- wWhC̫@hH@ӳWyIAH UUCP e촣ѷ
- A@ɩʶlhUUCP F~CҦb <literal>uucp-dom:</literal>
- r̪`IW٥OĪ UUCP F~AAiH
- <literal>uuname</literal> ROhT{C
- </para>
-
- <para>AoɮצbϥΫeQഫ DBM ƮwɮסA̦nb
- mailertable ̤WεѼgXROCӧoӤu@CAC󴫧A
- mailertable A`OݭnoөROC</para>
-
- <para>̫ᴣܡGpGATwYǯSwH|iΡAOo
- <option>-bt</option> ﶵ[ sendmailCo|N sendmail Ұʦb
- <emphasis>address test mode</emphasis>FunU
- <literal>0</literal>AۿJAƱժH|}C
- ̫@iDAϥΤHNz{ANz{|qتDA
- H(iഫ)}Cn}ҦЫ Control-DC</para>
-
- <screen>&prompt.user; <userinput>sendmail -bt</userinput>
-ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
-Enter &lt;ruleset&gt; &lt;address&gt;
-<prompt>&gt;</prompt> <userinput>3,0 foo@example.com</userinput>
-canonify input: foo @ example . com
-..
-parse returns: $# uucp-dom $@ <replaceable>your.uucp.relay</replaceable> $: foo &lt; @ example . com . &gt;
-<prompt>&gt;</prompt> <userinput>^D</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ispmail">
- <para>ڥμsWɸӫ]wH󻼰eH</para>
- </question>
-
- <answer>
- <para>pGAwg@өTw IP ƦrAAݭnվ󤺩wȡC]n
- AnwW١AL sendmail |AC</para>
-
- <para>pGA쪺OʺAtm IP ƦrӨϥμ ppp sں
- AAiwgbA ISP HDW@ӫHcC]A ISP
- O <hostid role="domainname">example.net</hostid>AAϥΪ̦W
- ٬O <username>user</username>C簲]A٦ۤvDW٬O
- <hostid role="fqdn">bsd.home</hostid> ӧA ISP iDAiHϥ
- <hostid role="fqdn">relay.example.net</hostid> @H^гBC
- </para>
-
- <para>FqAHcHAANݭnw˨H{HKqHc^HC
- <application>Fetchmail</application> O@ӤܡA]
- \hPqTwAq`A ISP | POP3CpGAܨϥ
- user-pppAAiHbsu\۰ʧAHAunb
- <filename>/etc/ppp/ppp.linkup</filename>̭]wHUoG</para>
-
- <programlisting>MYADDR:
- !bg su user -c fetchmail</programlisting>
-
- <para>ϧAϥ <application>sendmail</application> (pUҥ)
- ǰeHDabAmJHUROG</para>
-
- <programlisting> !bg su user -c "sendmail -q"</programlisting>
-
- <para>bWROCo|j <application>sendmail</application>
- bsWᰨW}lBz mailqueueC</para>
-
- <para>ڰ]Ab <hostid role="fqdn">bsd.home</hostid> W@
- <username>user</username> bCb <hostid
- role="fqdn">bsd.home</hostid> W <username>user</username>
- aؿ̫إߤ@ <filename>.fetchmailrc</filename> ɮסG</para>
-
- <programlisting>poll example.net protocol pop3 fetchall pass MySecret</programlisting>
-
- <para>LبAoɰF <username>user</username> ~ӳQ
- HŪA]]t <literal>MySecret</literal> oӱKXC</para>
-
- <para>FbHHɦTY <literal>from:</literal>AAiD
- <application>sendmail</application> ϥ
- <literal>user@example.net</literal> ӫD
- <literal>user@bsd.home</literal>CAi|ƱiD
- <application>sendmail</application> q
- <hostid role="fqdn">relay.example.net</hostid> eXҦHA
- [֫HǰeC</para>
-
- <para>HU <filename>.mc</filename> ມAnDG</para>
-
- <programlisting>VERSIONID(`bsd.home.mc version 1.0')
-OSTYPE(bsd4.4)dnl
-FEATURE(nouucp)dnl
-MAILER(local)dnl
-MAILER(smtp)dnl
-Cwlocalhost
-Cwbsd.home
-MASQUERADE_AS(`example.net')dnl
-FEATURE(allmasquerade)dnl
-FEATURE(masquerade_envelope)dnl
-FEATURE(nocanonify)dnl
-FEATURE(nodns)dnl
-define(`SMART_HOST', `relay.example.net')
-Dmbsd.home
-define(`confDOMAIN_NAME',`bsd.home')dnl
-define(`confDELIVERY_MODE',`deferred')dnl</programlisting>
-
- <para>pഫo <filename>.mc</filename> ɮר
- <filename>sendmail.cf</filename> ɪԲӲӸ`AаѦҤW@`C
- t~Abs <filename>sendmail.cf</filename> HᤣnѰOsҰ
- <application>sendmail</application>C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="sendmail-alternative">
- <para>F Sendmail ~A٦ǶlAiHϥΩOH</para>
- </question>
-
- <answer>
- <para><ulink url="http://www.sendmail.org/">Sendmail</ulink>
- O FreeBSD w]ϥΪlAAOA٬OiHܮeaH䥦
- lA (ҦpAq port w˪lA) NC</para>
-
- <para>port ̦ܦhiѿܪlAA
- <filename role="package">mail/exim</filename>B
- <filename role="package">mail/postfix</filename>B
- <filename role="package">mail/qmail</filename>B
- <filename role="package">mail/zmailer</filename> A
- NOXӫܨw諸ܡC</para>
-
- <para>h˿ܬOnơAӥBja\hlAiHϥΤ]Q{O
- nơFҥHקKbqH׾¸̰ݹ <quote>Sendmail Qmail
- nܡH</quote> o˪DCpGAuܷQݪܡAХqH׾
- archive ̧@UCC@ӶlAuIPIAHejNwg
- QצnXFC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="forgot-root-pw">
- <para>ڧѤF <username>root</username> KXFIH</para>
- </question>
-
- <answer>
- <para>nWIunsҰʨtΡAbݨ Boot: ɿJ
- <userinput>boot -s</userinput> YiiJϥΪ̼Ҧ
- (b 3.2-RELEASE eЧ <userinput>-s</userinput>)C
- bݭnϥέ shell ɡAU ENTERCA|ݨ@ &prompt.root;
- ܸAJ <command>mount -u /</command> HsW(mount)
- AɮרtΥiŪ/gC <command>passwd root</command>
- H <username>root</username> KXAM &man.exit.1;
- ~Ұʵ{ǡC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="CAD-reboot">
- <para>ڸӫ Control-Alt-Delete |sҰʨtΡH</para>
- </question>
-
- <answer>
- <para>pGAOϥ FreeBSD 2.2.7-RELEASE Τ᪩
- syscons(tΤwDxXʵ{)AUCo kernel ]wɤA
- M᭫@ӷs֤ߡG</para>
-
- <programlisting>options SC_DISABLE_REBOOT</programlisting>
-
- <para>YOϥ FreeBSD 2.2.5-RELEASE Τ᪩ PCVT DxX
- {AhHUCﶵNG</para>
-
- <programlisting>options PCVT_CTRL_ALT_DEL</programlisting>
-
- <para>L󦭴 FreeBSD AЭקAbϥΪDxLA
- ñNҦ <literal>boot</literal> rH <literal>nop</literal>
- NCwLOb
- <filename>/usr/share/syscons/keymaps/us.iso.kbd</filename>C
- AiݭnժhJ <filename>/etc/rc.conf</filename> hŪ
- oLHTOʥͮġCMpGAbξAXAyLA
- Aӽs診@ӡC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="dos-to-unix-txt">
- <para>ڸӫ DOS rɮ׭s榡Ʀ UNIX H</para>
- </question>
-
- <answer>
- <para>unϥγo perl ROG</para>
-
- <screen>&prompt.user; <userinput>perl -i.bak -npe 's/\r\n/\n/g' file ...</userinput></screen>
-
- <para>file NOnBzɮסCoӭקObAlɮ׷|xs
- ɦW .bak ɮסC</para>
-
- <para>Ϊ̧AiHϥ &man.tr.1; oөROG</para>
-
- <screen>&prompt.user; <userinput>tr -d '\r' &lt; <replaceable>dos-text-file</replaceable> &gt; <replaceable>unix-file</replaceable></userinput></screen>
-
- <para><replaceable>dos-text-file</replaceable> O]t DOS r
- ɮסA <replaceable>unix-text-file</replaceable> hO]tഫ
- XGCoϥ perl ٭n֤W@IIC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="kill-by-name">
- <para>ڸӫΦW٬屼 processH</para>
- </question><answer>
-
- <para>ϥ &man.killall.1; C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="root-acl">
- <para>b su @ڤb <username>root</username> ACL ̡H
- </para>
- </question>
-
- <answer>
- <para>oӿ~O] Kerberos {ҨtΡCoӰDäOY
- OOHСCAiH -K ﶵh suAάOUӰDҴyz
- KerberosC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="uninstall-kerberos">
- <para>ڸӫ򲾰 KerberosH</para>
- </question>
-
- <answer>
- <para>nqtθ̲ KerberosA˧Ab檺 release
- bin distributionCpGA CDROMAAiH mount cd(]b /cdrom)
- ðG</para>
-
- <screen>&prompt.root; <userinput>cd /cdrom/bin</userinput>
-&prompt.root; <userinput>./install.sh</userinput></screen>
-
- <para>Ϊ̧A]iHN <filename>/etc/make.conf</filename> ̪
- "MAKE_KERBEROS" ﶵAMA build world.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="add-pty">
- <para>ڸӫW[tΪ׺ݾH</para>
- </question>
-
- <answer>
- <para>pGA\h telnetAsshAX άO screen ϥΪ̡AAγ\|Χ
- ׺ݾAoЧA[hG</para>
-
- <procedure>
- <step>
- <para>إߨæwˤ@ӷs kernel åBo@</para>
-
- <programlisting>pseudo-device pty 256</programlisting>
-
- <para>[J]wɸ̡C</para>
- </step>
-
- <step>
- <para>oөROG</para>
-
- <screen>&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>sh MAKEDEV pty{1,2,3,4,5,6,7}</userinput></screen>
-
- <para>|yX 256 ӵ׺ݾ˸m`IC</para>
-
- </step>
-
- <step>
- <para>s <filename>/etc/ttys</filename> å[JŦX 256
- Ӳ׺ݾơCӲŦXwgsb涵榡A|ҨӻA
- ̬ݰ_ӹG</para>
-
- <programlisting>ttyqc none network</programlisting>
-
- <para>r]pǬO
- <literal>tty[pqrsPQRS][0-9a-v]</literal>AϥΥWܦC
- </para>
- </step>
-
- <step>
- <para>ηs kernel sҰʹqNiHFC</para>
- </step>
- </procedure>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="create-snd0">
- <para>/dev/snd0 oӸ˸mXӡI</para>
- </question>
-
- <answer>
- <para>èS <devicename>snd</devicename> oӸ˸msbCoӦWr
- OΨӷ@UӲզ FreeBSD nXʵ{աAѦp
- <devicename>mixer</devicename>A
- <devicename>sequencer</devicename>AH
- <devicename>dsp</devicename> ²١C</para>
-
- <para>iHΥHURO@XoǸ˸mG</para>
-
- <screen>&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>sh MAKEDEV snd0</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="reread-rc">
- <para>iHζ}AsŪ <filename>/etc/rc.conf</filename>B
- AҰ <filename>/etc/rc</filename> ?</para>
- </question>
-
- <answer>
- <para>iJHϥΪ̼ҦAMA^hϥΪ̼ҦC</para>
-
- <para>bDxG</para>
-
- <screen>&prompt.root; <userinput>shutdown now</userinput>
-(Note: without -r or -h)
-
-&prompt.root; <userinput>return</userinput>
-&prompt.root; <userinput>exit</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="release-candidate">
- <para>ڷQnڪtΪ@Ũ̷s -STABLEAOo쪺O -RC
- -PRERELEASEIFH</para>
- </question>
-
- <answer>
- <para>²aGuOWrӤwCRC NO <quote>Release CandiateA
- oԿ睊</quote>Aܷs֭noFCb FreeBSD A
- -PRERELEASE q`Ooe{XᵲNWC(ǵo檩A
- -BETA Ҹ -PRERELEASE OۦPN䪺C)</para>
-
- <para>ԲӦaGFreeBSD qӦaXo檩CDB
- IsBrelease (Ҧp 3.0-RELEASE 4.0-RELEASE) AOqoiL{
- }lɤXӪAq`٬ <link linkend="current">-CURRENT
- </link>Cƪ (Ҧp 3.1-RELEASE 4.2-RELEASE)AO
- D <link linkend="stable">-STABLE</link> 䤤o檩
- ַӡCq 4.3-RELEASE }lAC@ӵo檩ۤvAi
- n׫Ouoit (q`u|@w譱s) HҥΡC</para>
-
- <para>dzƭns@o檩ɡAҦb|gL@w{ǡC@ӬO
- {XᵲC{Xᵲ}lɡAWٷ|WAHϬM֭n
- @ӵo檩FC|ӨҤlApGӪs 4.5-STABLEAWr
- |ܦ 4.6-PRERELEASE Hܵ{XwᵲAåBB~oe
- Nn}lFCΧ󥿤i^AHo檩@C{X
- Fio檩ήɡAWrN|ܦ 4.6-RCAHܵo
- ֦nFCiJ RC qAu쪺̦vTΤ~|QץC
- o檩 (Ҥ 4.6-RELEASE) ͫAo檩|ۤvA
- |QW 4.6-STABLEC</para>
-
- <para>QnohXPU CVS 䪺TAаѦ
- <ulink url="../../articles/releng/article.html">Release
- Engineering</ulink> @C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="kernel-chflag-failure">
- <para>ڸյۭnwˤ@ӷs֤ߡAOLk chflagsCڸӫѨMH
- </para>
- </question>
-
- <answer>
- <para>²aGA securelevel ijsCs}
- HҦAAwˮ֤ߡC</para>
-
- <para>ԲӦaGFreeBSD b securelevel jspUA\
- ܧtκX (system flags)CAiHγoӫOˬdA
- securelevelG</para>
-
- <screen>&prompt.root; <userinput>sysctl kern.securelevel</userinput></screen>
-
- <para>ASkC securelevelFAҰʨtΨHҦH
- wˮ֤ߡAάOק <filename>/etc/rc.conf</filename>
- securelevel As}CаѦ &man.init.8; AHo
- h securelevel TA٦ <filename>/etc/defaults/rc.conf
- </filename> M &man.rc.conf.5; AHoh rc.conf
- TC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="kernel-securelevel-time">
- <para>bڪtΤWAڵLkܧɶWL@HWdI
- ڸӫH</para>
- </question>
-
- <answer>
- <para>²aGAtΪ securelevel ]\j 1Cs}
- HҦAMAקɶC</para>
-
- <para>ԲӦaGb securelevel j 1 pUAFreeBSD \ɶ
- ܰʤj@CAiHΥHUROˬdثe securelevelG</para>
-
- <screen>&prompt.root; <userinput>sysctl kern.securelevel</userinput></screen>
-
- <para>ALkC securelevelFAҰʹqܳHҦUHקɶA
- άOק <filename>/etc/rc.conf</filename> As}CаѦ
- &man.init.8; AHoh securelevel TA٦
- <filename>/etc/defaults/rc.conf</filename> M &man.rc.conf.5;
- AHoh rc.conf TC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="statd-mem-leak">
- <para> <command>rpc.statd</command> ΤF 256 megabytes
- OH</para>
- </question>
-
- <answer>
- <para>AO memory leakAӥB]OuΤF 256 Mbyte
- OCuOw (NNO`|o˧@) N@O
- M¨쥦ۤv}ŶAHK@ơCN޳NӨAo˨èS
- 򤣹Fo˥uO| &man.top.1; M &man.ps.1; ~@jӤwC
- </para>
-
- <para>&man.rpc.statd.8; |NAɮ ( <filename>/var
- </filename>) Mgܥ}Ŷ̡FFݭnɭԦAWj
- ɭPsMgA@|ϥά۷jjpCq{XӬݪܴN
- FAiHݨ &man.mmap.2; װѼƬ <literal>0x10000000
- </literal>AO IA32 [cWQ@w}ŶA]NO
- 256MBC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="unsetting-schg">
- <para>ڨSk <literal>schg</literal> ɮ׺XСH</para>
- </question>
-
- <answer>
- <para>Ab@ӴF securelevel (]NOj 0) tιB@C
- C securelevel AոլݡCаѦ <link linkend="securelevel">
- FAQ securelevel </link> M &man.init.8; C
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ssh-shosts">
- <para>Ӫs FreeBSD w]LkQ <filename>.shosts
- </filename> SSH {ҡH</para>
- </question>
-
- <answer>
- <para>ӷs FreeBSD <filename>.shosts</filename> {ҹw]
- ]AO] &man.ssh.1; w]wˬ suid <username>
- root</username>Cn <quote>ץ</quote> oIAAiH@UC
- @ơG</para>
-
- <itemizedlist>
- <listitem>
- <para>n@ҥöhѨMAбN <filename>/etc/make.conf</filename>
- ̪ <makevar>ENABLE_SUID_SSH</makevar> ] <literal>true
- </literal>AMAs build ssh (άO <command>make
- world</command>)C</para>
- </listitem>
-
- <listitem>
- <para>u@@ɪץܡAiH <username>root</username>
- <command>chmod 4755 /usr/bin/ssh</command> N
- <filename>/usr/bin/ssh</filename> ] <literal>4555
- </literal>CMN <makevar>ENABLE_SUID_SSH= true</makevar>
- [J <filename>/etc/make.conf</filename> ̡AoˤU
- <command>make world</command> N|ͮĤFC</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="vnlru">
- <para>O <literal>vnlru</literal>?</para>
- </question>
-
- <answer>
- <para>tιFW <varname>kern.maxvnodes</varname> ɡA
- <literal>vnlru</literal> |M vnodeCoӮ֤
- jɶSƧ@AuAܤjOAӥB
- bsWUӤpɮ׮ɡA~|QҰʡC</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="x">
- <chapterinfo>
- <author>
- <firstname>Wei-Hon</firstname>
- <surname>Chen</surname>
- <affiliation>
- <address><email>plasmaball@pchome.com.tw</email></address>
- </affiliation>
- </author>
- </chapterinfo>
-
- <title>X Window System Virtual Consoles</title>
-
- <qandaset>
- <qandaentry>
- <question id="running-X">
- <para>ڷQn X Aڸӫ򰵡H</para>
- </question>
-
- <answer>
-
- <para>²檺kNObw˨tΪɭԤ@֦wˡC</para>
-
- <para>Mݬ &man.xorgconfig.1; Aoӵ{iH
- z]w &xorg; ]wAϥTBαzܥdBƹgC~A٥iH &man.xorgcfg.1;
- ϧΤӰ]wC</para>
-
- <para>zγ\]Qոլ Xaccel serverCԱЬ <link linkend="xig">Xi Graphics</link>
- o@qC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="running-X-securelevels">
- <para> <emphasis>յ</emphasis> n X, OJ
- <command>startx</command> ɡAo
- <errorname>KDENABIO failed (Operation not permitted)</errorname>
- ~CڸӫH</para>
- </question>
-
- <answer>
- <para>AtΤ@wF securelevelA藍Hb@ӴF
- securelevel tΤWAOLk_ X CQDA
- аѦ &man.init.8; C</para>
-
- <para>ҥHoӰDܦGAٯC򥻤WAؿܡG
- NA securelevel ]^s (q`b <filename>/etc/rc.conf
- </filename> ̭]w)AάObҰʮɰ &man.xdm.1; (b
- securelevel Q@e)C</para>
-
- <para>аѦ <xref linkend="xdm-boot"/> HohҰʮ
- &man.xdm.1; TC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="x-and-moused">
- <para>ڤb X ̨ϥηƹH</para>
- </question>
-
- <answer>
- <para>pGzΪO syscons (w console Xʵ{) ܡAziH
- gѳ]w FreeBSD 䴩bC virtual console ϥηƹCF
- קKM X ͽĬAsyscons ϥΤF@ӥs
- <devicename>/dev/sysmouse</devicename> ˸mCҦƹͪ
- event |Q moused Ӽg sysmouse oӸ˸mCpGzƱb@
- ΥHW virtual console WϥηƹA<emphasis>åB</emphasis>
- ϥ X ܡAаѦ
- <xref linkend="moused" remap="another section"/> åB]wn
- mousedC</para>
-
- <para>Ms <filename>/etc/XF86Config</filename> oɮסA
- åBT{AHUoX檺]wC</para>
-
- <programlisting>Section Pointer
-Protocol "SysMouse"
-Device "/dev/sysmouse"
-....</programlisting>
-
- <para>HWҤlAAΩ XFree86 3.3.2 Ψ᪺CΩ󦭪
- A <emphasis>Protocol</emphasis>
- <emphasis>MouseSystems</emphasis>C</para>
-
- <para>ǤHwb]w X ɭԥ
- <devicename>/dev/mouse</devicename> oӸ˸mCpGzn
- `u@ܡAzN <devicename>/dev/mouse</devicename>
- s <devicename>/dev/sysmouse</devicename> (аѦ
- &man.sysmouse.4;):</para>
-
- <screen>&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>rm -f mouse</userinput>
-&prompt.root; <userinput>ln -s sysmouse mouse</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="x-and-wheel">
- <para>ƹuAb X ̭ϥζܡH</para>
- </question>
-
- <answer>
- <para>iHCLݭn]w X client ݵ{C аѦ <ulink
- url="http://www.inria.fr/koala/colas/mouse-wheel-scroll/">
- Colas Nahaboo
- (http://www.inria.fr/koala/colas/mouse-wheel-scroll/)
- </ulink>.</para>
-
- <para>pGAnϥ <application>imwheel</application> {A
- unۤUCBJ@YiC</para>
-
- <orderedlist>
- <listitem>
- <para>ഫu event
-Translate the Wheel Events</para>
-
- <para><application>imwheel</application> {B@zA
- ONƹĥ|PĤഫ eventC]pAҥH
- AƹXʵ{Nƽƥഫĥ|PĤ eventC
- ؤkiHFتA@O &man.moused.8; @ഫAGO
- X h@ event ഫC</para>
-
- <orderedlist>
- <listitem>
- <para>ϥ &man.moused.8; ഫu Event</para>
-
- <para>n &man.moused.8; ӧ@ event ഫAunb
- &man.moused.8; ROC[W <option>-z 4</option>
- YiC|ӨҤlApGA@볣OH
- <command>moused -p /dev/psm0</command> Ӱ_
- &man.moused.8; ܡAun令 <command>moused -p
- /dev/psm0 -z 4</command> YiCpGAOb}L{Q
- <filename>/etc/rc.conf</filename> Ӱ_ &man.moused.8;A
- AiHb <filename>/etc/rc.conf</filename> N
- <varname>moused_flags</varname> W[ <option>-z 4
- </option> YiC</para>
-
- <para>A{bݭn X DAƹӫAunb
- <filename>/etc/XF86Config</filename>
- <quote>Pointer</quote> ϶[W
- <literal>Buttons 5</literal> o@YiCҦpA
- Aib <filename>/etc/XF86Config</filename>
- HU <quote>Pointer</quote> ϶G</para>
-
- <example>
-
- <title>b XFree86 3.3.x tC XF86Config ]wɪ
- <quote>Pointer</quote> ϶AH moused @ഫ
- u]wd</title>
-
- <programlisting>Section "Pointer"
- Protocol "SysMouse"
- Device "/dev/sysmouse"
- Buttons 5
-EndSection</programlisting>
- </example>
-
- <example>
- <title>b XFree86 4.x tC XF86Config ]wɪ
- <quote>InputDevice</quote> ϶AH X Server @ഫ
- u]wd</title>
-
- <programlisting>Section "InputDevice"
- Identifier "Mouse1"
- Driver "mouse"
- Option "Protocol" "auto"
- Option "Device" "/dev/sysmouse"
- Option "Buttons" "5"
-EndSection</programlisting>
- </example>
-
- <example>
- <title>b <quote>.emacs</quote> A]wu
- uʤ䴩d</title>
- <programlisting>;; wheel mouse
-(global-set-key [mouse-4] 'scroll-down)
-(global-set-key [mouse-5] 'scroll-up)</programlisting>
- </example>
-
- </listitem>
-
- <listitem>
- <para>QΧA X Server ӧ@u Event ഫ</para>
-
- <para>pGAS &man.moused.8;AάOAQQ
- &man.moused.8; h@u event ഫAAiH
- X server ӧ@o˪ event ഫCAob <filename>
- /etc/XF86Config</filename> ɮפ@XӧʡCĤ@A
- AnAƹܾAqTwCjhƪu
- ϥ <quote>IntelliMouse</quote> wAL XFree86
- ]䴩䥦qTwAҦpùު MouseMan+ ƹҥΪ
- <quote>MouseManPlusPS/2</quote>CAnAun
- [i@ <quote>Pointer</quote> ϶ <varname>
- Protocol</varname> ܼƧYiC</para>
-
- <para>ĤGAAniD X server Nʨƥ󭫷sMܷƹ
- ĥ|MĤCoiHQ <varname>ZAxisMapping</varname>
- ﶵC</para>
-
- <para>|ӨҤlApGASϥ &man.moused.8;AӧA@
- IntelliMouse w˦b PS/2 ƹ𪺸ܡAAiHb
- <filename>/etc/XF86Config</filename> ̨ϥΥHU]wC
- </para>
-
- <example>
- <title>b XF86Config ]wɪ <quote>Pointer</quote>
- ϶AH X Server @ഫu]wd</title>
-
- <programlisting>Section "Pointer"
- Protocol "IntelliMouse"
- Device "/dev/psm0"
- ZAxisMapping 4 5
-EndSection</programlisting>
- </example>
-
- <example>
- <title>b XFree86 4.x tC XF86Config ]wɪ
- <quote>InputDevice</quote> ϶AH X Server @ഫ
- u]wd</title>
-
- <programlisting>Section "InputDevice"
- Identifier "Mouse1"
- Driver "mouse"
- Option "Protocol" "auto"
- Option "Device" "/dev/psm0"
- Option "ZAxisMapping" "4 5"
-EndSection</programlisting>
- </example>
-
- <example>
- <title>b <quote>.emacs</quote> A]wu
- uʤ䴩d</title>
- <programlisting>;; wheel mouse
-(global-set-key [mouse-4] 'scroll-down)
-(global-set-key [mouse-5] 'scroll-up)</programlisting>
- </example>
-
- </listitem>
- </orderedlist>
- </listitem>
-
- <listitem>
- <para>w <application>imwheel</application></para>
-
- <para>UӡAq Ports ̦w <application>imwheel
- </application>Cb x11 O̥iH쥦AiHN
- u event ML eventC|ӨҤlAiHbA
- NueɡAeX@ <keycap>Page Up</keycap>
- Aε{hC<application>Imwheel</application>
- QΤ@ӳ]wɡAHKu event L eventAo
- NiHbPε{AeXPLCw]
- <application>imwheel</application> ]wɬOb
- <filename>/usr/X11R6/etc/imwheelrc</filename>ApGAQ
- sۭq]wɪܡAiHNƻs
- <filename>~/.imwheelrc</filename>AM̧Aݭnק復C
- ]wɪ榡b &man.imwheel.1; ̭ԲӪC</para>
- </listitem>
-
- <listitem>
- <para>]w <application>Emacs</application> P
- <application>Imwheel</application> Pu@
- (<emphasis>ܩ</emphasis>)</para>
-
- <para>pGAϥ <application>emacs</application> άO
- <application>Xemacs</application> ܡAAݭnbA
- <filename>~/.emacs</filename> ɮ׸̥[W@pq]wC
- <application>emacs</application> Х[Wo@qG</para>
-
- <example>
- <title><application>Imwheel</application>
- <application>Emacs</application> ]w</title>
-
- <programlisting>;;; For imwheel
-(setq imwheel-scroll-interval 3)
-(defun imwheel-scroll-down-some-lines ()
- (interactive)
- (scroll-down imwheel-scroll-interval))
-(defun imwheel-scroll-up-some-lines ()
- (interactive)
- (scroll-up imwheel-scroll-interval))
-(global-set-key [?\M-\C-\)] 'imwheel-scroll-up-some-lines)
-(global-set-key [?\M-\C-\(] 'imwheel-scroll-down-some-lines)
-;;; end imwheel section</programlisting>
- </example>
-
- <para><application>Xemacs</application> hb
- <filename>~/.emacs</filename> ɸ̥[Wo@qG</para>
-
- <example>
- <title><application>Imwheel</application>
- <application>Xemacs</application> ]w</title>
-
- <programlisting>;;; For imwheel
-(setq imwheel-scroll-interval 3)
-(defun imwheel-scroll-down-some-lines ()
- (interactive)
- (scroll-down imwheel-scroll-interval))
-(defun imwheel-scroll-up-some-lines ()
- (interactive)
- (scroll-up imwheel-scroll-interval))
-(define-key global-map [(control meta \))] 'imwheel-scroll-up-some-lines)
-(define-key global-map [(control meta \()] 'imwheel-scroll-down-some-lines)
-;;; end imwheel section</programlisting>
- </example>
- </listitem>
-
- <listitem>
- <para> <application>Imwheel</application></para>
-
- <para>wˤAAiHb xterm J <command>imwheel
- </command> ROH_ʥC|HIAåBWoĥΡC
- pGATwnϥ <application>imwheel</application>A
- un⥦[iAۤv <filename>.xinitrc</filename>
- <filename>.xsession</filename> ɮקYiCAiH
- <application>imwheel</application> ҰeXӦ PID ɮ
- ĵiCĵiu Linux <application>imwheel
- </application> ĦӤwC</para>
- </listitem>
- </orderedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="window-menu-weird">
- <para> X Window Mܮؤॿ`B@H</para>
- </question>
-
- <answer>
- <para> Num Lock ոաC</para>
-
- <para>pGz Num Lock b}ɪw]ȬO}۪ܡAzUC
- o <filename>XF86Config</filename> ]wɤ
- <literal>Keyboard</literal> C</para>
-
- <programlisting># Let the server do the NumLock processing. This should only be
-# required when using pre-R6 clients
- ServerNumLock</programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="virtual-console">
- <para>O virtual consoleHڭn򰵤~Φh@IH</para>
- </question>
-
- <answer>
- <para>²ӻAvirtual console NOiHzӦh]w
- pϥκΰ X AӦbP@OWPɰnXƪkC</para>
-
- <para>ҰʨtΨܧҦ}TAzN|bùWݨ@
- login ܲŸCboӮɭԱzNiHJz login name H
- password AMNiHbĤ@ virtual console W}lu@F
- (Ϊ̶}lI) C</para>
-
- <para>bYDZpUAzi|Qn@Lu@AҦpOݬݱzb
- 檺{AάOzb FTP ǿ骺ݮɶݬݱz
- lCzuݭn Alt-F2 ( Alt 䤣AëU F2 ) AM
- zN|bĤG <quote>virtual console</quote> Wݨ@ login
- ܲŸIzQn^Ӫu@ɡAЫ Alt-F1C</para>
-
- <para>FreeBSD bwˮɪw]ȬOϥΤT virtual console
- (3.3-RELEASE ᬰK)AziH Alt-F1AAlt-F2AH Alt-F3
- b̤C</para>
-
- <para>pGzQnh@I virtual console ܡAzuݭns
- <filename>/etc/ttys</filename> o (аѦ &man.ttys.5;)A
- b <quote>Virtual terminals</quote> oӵѫ᭱[J
- <devicename>ttyv4</devicename> <devicename>ttyvc</devicename>
- G</para>
-
- <programlisting># Edit the existing entry for ttyv3 in /etc/ttys and change
-# "off" to "on".
-ttyv3 "/usr/libexec/getty Pc" cons25 on secure
-ttyv4 "/usr/libexec/getty Pc" cons25 on secure
-ttyv5 "/usr/libexec/getty Pc" cons25 on secure
-ttyv6 "/usr/libexec/getty Pc" cons25 on secure
-ttyv7 "/usr/libexec/getty Pc" cons25 on secure
-ttyv8 "/usr/libexec/getty Pc" cons25 on secure
-ttyv9 "/usr/libexec/getty Pc" cons25 on secure
-ttyva "/usr/libexec/getty Pc" cons25 on secure
-ttyvb "/usr/libexec/getty Pc" cons25 on secure</programlisting>
-
- <para>zQδXӴN]XӡCz]Vh virtual terminal A̴Nα
- Vhtθ귽FpGzu 8MB O骺ܡAovTNjFC
- zi]|Q <literal>secure</literal>
- <literal>insecure</literal>C</para>
-
- <important>
- <para>pGzQn X ܡAz <emphasis></emphasis>
- Od () ܤ֤@ virtual terminal CoNOApG
- zQbQG Alt \ɳ login ܲŸAӥBSbP@
- qW]Q X ܡAouOӤF - zuΤQ@ӡC
- </para>
- </important>
-
- <para>@ console ²檺kNO⥦C|ҨӻApG
- zW@˳]wF 12 terminal åBQn X A
- zݧ virtual terminal 12 qG</para>
-
- <programlisting>ttyvb "/usr/libexec/getty Pc" cons25 on secure</programlisting>
-
- <para>]G</para>
-
- <programlisting>ttyvb "/usr/libexec/getty Pc" cons25 off secure</programlisting>
-
- <para>pGzLu 10 ӥ\䪺ܡAzNn令oˡG</para>
-
-<programlisting>ttyv9 "/usr/libexec/getty Pc" cons25 off secure
-ttyva "/usr/libexec/getty Pc" cons25 off secure
-ttyvb "/usr/libexec/getty Pc" cons25 off secure</programlisting>
-
- <para>(z]iHoX屼C)</para>
-
- <para>@zF <filename>/etc/ttys</filename>AU@ӨBJNOn
- Twz virtual terminal ˸mC²檺kNOG</para>
-
- <screen>&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>sh MAKEDEV vty12</userinput></screen>
-
- <para>ALӡAQnҰʳo virtual console ² (]O̰b)
- kNO}CMApGzQ}ܡAziH X Window
- AM <username>root</username> UCOG</para>
-
- <screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen>
-
- <para>zoөROeAz@wn X Window CpG
- zo򰵪ܡAztΥi|bz kill ROX{
- ꦺpC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="vty-from-x">
- <para>ڭnq X virtual consoleH</para>
- </question>
-
- <answer>
- <para>Х <keycombo action="simul">
- <keycap>Ctrl</keycap>
- <keycap>Alt</keycap>
- <keycap>F<replaceable>n</replaceable></keycap>
- </keycombo> H^ virtual consoleC
- <keycombo action="simul">
- <keycap>Ctrl</keycap>
- <keycap>Alt</keycap>
- <keycap>F1</keycap>
- </keycombo> iH^ܲĤ@ virtual consoleC</para>
-
- <para>A^ܤr console AANiHϥΤ@
- <keycombo action="simul">
- <keycap>Alt</keycap>
- <keycap>F<replaceable>n</replaceable></keycap>
- </keycombo> զXAbU console C</para>
-
- <para>n^ X ܡAA^ܰ X virtual consoleC
- pGAOqROC̰_ X (Ҧpϥ <command>startx</command>
- O)A X |̪bU@ӥϥΪ virtual consoleAӤOQ
- _ʪr consoleCpGAKӨϥΤ virtual terminalA
- X N|bĤEӤWAANiHϥ
- <keycombo action="simul">
- <keycap>Alt</keycap>
- <keycap>F9</keycap>
- </keycombo> H^ X C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="xdm-boot">
- <para>ڭn򰵤~b}ɱҰ XDMH</para>
- </question><answer>
-
- <para>ؤkiHҰ <ulink
- url="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&amp;query=xdm">
- xdm</ulink>C@ؤkOq <filename>/etc/ttys</filename> ӱҰʡA
- iHѦ &man.ttys.5; 󤤪dҡFt@ؤkOb
- <filename>rc.local</filename> (аѦ &man.rc.8;) xdmAάO
- b <filename>/usr/local/etc/rc.d</filename> @
- <filename>X.sh</filename>CoؤkOXkApGzլY@
- kLĪܡAziHոեt~@ءCoؤkGO@˪GX
- |ܤ@ӹϧΤƪ login: ܡC</para>
-
- <para> ttys kuIAbF X bҰʮɨ쩳OΨ vtyA
- åBN logout ɭsҰ X server dᵹ initC rc.local
- khObҰ X XFDɡAiHܻPa xdm ӸѨM
- DC</para>
-
- <para>pGO rc.local kAb <command>xdm</command>
- ɱz[Ѽơ]]NO] daemon^Cb getty
- ~Ұ xdmA_h getty M xdm |۽Ĭ consoleC̦n
- 覡Ob script [ sleepAȰ 10 kAۤ~
- xdmC</para>
-
- <para>pGAOq <filename>/etc/ttys</filename> Ұ
- <command>xdm</command>A<command>xdm</command> P &man.getty.8;
- |۽ĬC@קKkANOb
- <filename>/usr/X11R6/lib/X11/xdm/Xservers</filename> ɮפ[J
- <literal>vt</literal> ƦrC</para>
-
- <programlisting>:0 local /usr/X11R6/bin/X vt4</programlisting>
-
- <para>WҤlA| X server b <devicename>/dev/ttyv3
- </devicename> CЪ`NƦrOt@CX server q@}l
- vtyA FreeBSD ֤߫hOqs}l vty C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="xconsole-failure">
- <para>ڰ xconsole ɡAoͤF
- <errorname>Couldn't open console</errorname> ~H</para>
- </question>
-
- <answer>
- <para>pGAO <command>startx</command> ӱҰ <command>startx
- </command> ܡA<devicename>/dev/console</devicename> v
- <emphasis>|</emphasis> ܡAGNO <command>xterm -C
- </command> M <command>xconsole</command> o{Lk
- `C</para>
-
- <para>o@DAO] console vOĥΨtιw]ȡC
- b@ӦhϥΪ̪tθ̡Aڭ̤ƱCӨϥΪ̳iHgJt
- console CpGϥΪ̬Oq VTY login ܡA
- &man.fbtab.5; iHѨMoDC</para>
-
- <para>²aAнTO <filename>/etc/fbtab</filename> (аѦ
- &man.fbtab.5;) oɮפo@SQѱG</para>
-
- <programlisting>/dev/ttyv0 0600 /dev/console</programlisting>
-
- <para>o@]wsbiHTOq <devicename>/dev/ttyv0</devicename>
- nJϥΪ̥iH consoleC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="xfree86-root">
- <para>HeڥiHH@ϥΪ̰ XFree86A{bڤ@wn
- H <username>root</username> ~H</para>
- </question>
-
- <answer>
- <para>Ҧ X server ݭnH <username>root</username> ӰA
- ~ઽsATwCª XFree86 (&lt;= 3.3.6) |۰
- NҪ server HQ <username>root</username> 檺覡
- w˰_ (setuid <username>root</username>)Cѩ X server
- OnejS{AөaAoO@ӦwWaC
- ]oӭ]As XFree86 NNo server H setuid
- <username>root</username> 覡wˡC</para>
-
- <para>ܩaAڭ̧LkN X server H
- <username>root</username> C_XNwWOӦnDNC
- ؤkiHH@ϥΪ̪ϥ XCĤ@OQ
- <command>xdm</command> άO䥦 display manager (Ҧp
- <command>kdm</command>)FĤGOQ <command>Xwrapper</command>C
- </para>
-
- <para><command>xdm</command> O@ӳBzϧάɭnJ daemonC
- q`b}ɰ_ӡAӥBtdϥΪ̧@{ҡAHΰ_
- ϥΪ̪u@ҡFiOϧҤU &man.getty.8; P
- &man.login.1; {CQoh <command>xdm</command>
- TAаѦ <ulink url="http://www.xfree86.org/support.html">
- XFree86 </ulink>AHΨ <link linkend="xdm-boot">FAQ
- </link>C</para>
-
- <para><command>Xwrapper</command> O X server ]˵{FiH
- @ϥΪ̥iHʰ_ X server puAٯ@ww
- ҡC|ˬdǤJROCѼơApGSDܡAN_ʾA
- X serverCpGA]YزzѦӤQ display manager ܡA
- OAӳ]wCpGAwˤF㪺 portsAAiHb
- <filename>/usr/ports/x11/wrapper</filename> 쥦C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ps2-x">
- <para>ڪ PS/2 ƹb X I`H</para>
- </question>
-
- <answer>
- <para>zƹMzƹXʵ{isbPB{HC</para>
-
- <para>b 2.2.5 HΧ󦭪tθ̡Aq X virtual terminal M
- A^ӴNiHϥ̭sPBʧ@CpGoӰD``oͪܡA
- ziHbz kernel ]wɤ[JUoӿﶵM᭫ssĶG</para>
-
- <programlisting>options PSM_CHECKSYNC</programlisting>
-
- <para>pGzSإ kernel gAЬ
- <link linkend="make-kernel">ۭq֤</link> o@`C</para>
-
- <para>[WoӿﶵHAƹMƹXʵ{PBDӴN
- |X{FCpGoӰDMsbܡAbʷƹɫƹ
- iHϷƹMƹXʵ{sPBʧ@C</para>
-
- <para>Ӫ`NOoӿﶵäOC@ӨtγġAi|b
- PS/2 ƹm ALPS GlidePoint ˸mh <quote>tap</quote>
- o\C</para>
-
- <para>b 2.2.6 Ψ᪺APBT{wgFnѨMkA
- ӥBodzwgO PS/2 ƹXʵ{зǤFCoӤk]iHb
- GlidePoint W`u@C (]T{{Xwg@Ӽзǥ\A
- ҥHboǪڭ̤b PSM_CHECKSYNC ﶵFC) Lb
- ּƪרҤAoXʵ{|~PBʿ~AMzN|ݨ
- o˪֤߰TG</para>
-
- <programlisting>psmintr: out of sync (xxxx != yyyy)</programlisting>
-
- <para>MzN|o{zƹॿ`B@FC</para>
-
- <para>pGzoͤFo˪pAzǥѧ PS/2 ƹXʵ{ flag
- ] 0x100 ӧPBT{{XCMb}ܲŸɥ
- <option>-c</option> ﶵӶiJ <emphasis>UserConfig</emphasis>G
- </para>
-
- <screen>boot: <userinput>-c</userinput></screen>
-
- <para>MAb <emphasis>UserConfig</emphasis> ROCJG</para>
-
- <screen>UserConfig&gt; <userinput>flags psm0 0x100</userinput>
-UserConfig&gt; <userinput>quit</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ps2-mousesystems">
- <para>ڪ PS/2 ƹzL MouseSystem ӹB@H</para>
- </question>
-
- <answer>
- <para>@dziXYǼtP PS/2 ƹub
- <quote>ѪR</quote> AU~B@CpGOܡAƹ
- |``]ùWhC</para>
-
- <para>D`AoӰDb 2.0.X M 2.1.X UOLѪCb 2.2
- 2.2.5 AziH <filename>/sys/i386/isa/psm.c</filename>
- ϥΤUC patch M᭫رz֤ߡCpGzSإ kernel gA
- Ь <link linkend="make-kernel">ۭq֤</link> o`C</para>
-
- <programlisting>@@ -766,6 +766,8 @@
- if (verbose &gt;= 2)
- log(LOG_DEBUG, "psm%d: SET_DEFAULTS return code:%04x\n",
- unit, i);
-+ set_mouse_resolution(sc-&gt;kbdc, PSMD_RES_HIGH);
-+
- #if 0
- set_mouse_scaling(sc-&gt;kbdc); /* 1:1 scaling */
- set_mouse_mode(sc-&gt;kbdc); /* stream mode */</programlisting>
-
- <para>b 2.2.6 ΥH᪺Ab PS/2 ƹXʵ{]w 0x04
- flag |ƹ]ѪR׼ҦCb}ܲŸɥ
- <option>-c</option> ﶵӶiJ <emphasis>UserConfig</emphasis>G
- </para>
-
- <screen>boot: <userinput>-c</userinput></screen>
-
- <para>MAb <emphasis>UserConfig</emphasis> ROCJG
- </para>
-
- <screen>UserConfig&gt; <userinput>flags psm0 0x04</userinput>
-UserConfig&gt; <userinput>quit</userinput></screen>
-
- <para>e@`t@ӥiɭPƹD]C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="imake-tmpl">
- <para>ګإ X {ɡA<command>imake</command> 䤣
- <filename>Imake.tmpl</filename>CbH</para>
- </question>
-
- <answer>
-
- <para><filename>Imake.tmpl</filename> O Imake M󪺤@AImake
- OзǪإ X {uC <filename>Imake.tmpl</filename>
- MLƭ header file @ˬOإ X {nɮסAziHb
- X prog distribution 쥦̡CziH sysinstall(&os; 5.2 ehO <command>/stand/sysinstall</command>)
- Ӧw˩άOq X distribution ʦwˡC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="xfree86-version">
- <para>ڦb build @ X ε{Aݭn XFree86 3.3.xAO
- ڤwgw XFree86 4.x FCڸӫH</para>
- </question>
-
- <answer>
- <para>niD port bsĶ{ɡAϥ XFree86 4.x 禡wAAiH
- b <filename>/etc/make.conf</filename> (pGASoɡA
- Ыإߥ) [WUo@G</para>
-
- <programlisting>XFREE86_VERSION= 4</programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="mouse-button-reverse">
- <para>ڭn򰵤~]wJlΪƹH</para>
- </question>
-
- <answer>
- <para>bz <filename>.xinitrc</filename> άO
- <filename>.xsession</filename>
- <literal>xmodmap -e "pointer = 3 2 1"</literal> OC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="install-splash">
- <para>npw splash ϧܵ{H̥iHoOH</para>
- </question>
-
- <answer>
-
- <para>Nbo FreeBSD 3.1 eAڭ̥[iFb}
- <quote>splash</quote> ϧΪs\CثeΨܦbùWɮ
- O 256 ⪺Ix}ϧ (<filename>*.BMP</filename>) ZSoft
- PCX(<filename>*.PCX</filename>) 榡C~AѪRפ]b
- 320x200 HUA~Mз VGA ܥdftϥΡCpGzsĶ kernel
- ɦ[J VESA 䴩A̤jѪRץiH 1024x768C`N VESA
- 䴩ݭn[J <literal>VM86</literal> o kernel ﶵCVESA
- 䴩ڤWiHbsĶ kernel ɥ[J <literal>VESA</literal> ﶵB
- θJ VESA kld module ӹFC</para>
-
- <para>znקﱱ FreeBSD }BJ]wɡA~ϥ splash
- ܹϧΪ\C]wɦbo FreeBSD 3.2 eǧʡAҥH{b
- ӤkiHJ splash \G</para>
-
- <itemizedlist>
- <listitem>
- <para>FreeBSD 3.1</para>
-
- <para>XΨܦbùWϧΡA3.1 u䴩 Windows
- Ix}榡CnFznɫAN <filename>
- /boot/splash.bmp</filename>CۧUX[J
- <filename>/boot/loader.rc</filename> G</para>
-
- <programlisting>load kernel
-load -t splash_image_data /boot/splash.bmp
-load splash_bmp
-autoboot</programlisting>
-
- </listitem>
-
- <listitem>
- <para>FreeBSD 3.2+</para>
-
- <para>F[J PCX ɮת䴩~AFreeBSD 3.2 ]iF
- }{Ǫ]w覡CpGz@NܡAiHΤWz FreeBSD 3.1
- kAN <literal>splash_bmp</literal>
- <literal>splash_pcx</literal> ӸJ PCX ɮקYiC
- pGQηs]w覡Az <filename>/boot/loader.rc
- </filename> ]AoXG</para>
-
- <programlisting>include /boot/loader.4th
-start</programlisting>
-
- <para>ٻݭn@ӥ]tHUX檺 <filename>/boot/loader.conf
- </filename>G</para>
-
- <programlisting>splash_bmp_load="YES"
-bitmap_load="YES"</programlisting>
-
- <para>oO]z <filename>/boot/splash.bmp</filename>
- ӷ@ splash ùܡCpGQ PCX ɮסA⥦
- <filename>/boot/splash.pcx</filename>ApWzX
- <filename>/boot/loader.rc</filename>AANoX[
- <filename>/boot/loader.conf</filename> G</para>
-
- <programlisting>splash_pcx_load="YES"
-bitmap_load="YES"
-bitmap_name="/boot/splash.pcx"</programlisting>
-
- </listitem>
- </itemizedlist>
-
- <para>{bNuѤU splash ΨܪɡAziHb
- <ulink url="http://www.baldwin.cx/splash/">http://www.baldwin.cx/splash/</ulink> Uؼ˫~C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="windows-keys">
- <para>گb X ̨ϥLW <trademark class="registered">Windows
- </trademark> ܡH</para>
- </question>
-
- <answer>
- <para>iHCAҭn@ANOQ &man.xmodmap.1; hwqAQϥ
- \C</para>
-
- <para>]Ҧ <quote><trademark class="registered">Windows</trademark></quote> OзǪA
- ̪ keycode OG</para>
-
- <itemizedlist>
- <listitem>
- <para>115 - <trademark class="registered">Windows</trademark> A
- b⪺ Ctrl P Alt 䤧</para>
- </listitem>
-
- <listitem>
- <para>116 - <trademark class="registered">Windows</trademark> A
- b Alt-Gr k</para>
- </listitem>
-
- <listitem>
- <para>117 - Ak⪺ Ctrl 䥪</para>
- </listitem>
- </itemizedlist>
-
- <para>n䪺 <trademark class="registered">Windows</trademark>
- LX@ӳrIAոճoӡG</para>
-
- <screen>&prompt.root; <userinput>xmodmap -e "keycode 115 = comma"</userinput></screen>
-
- <para>Ain]A windows managerA~|ʧ@C</para>
-
- <para>n <trademark class="registered">Windows</trademark>
- MbC X _ʮɦ۰ʳ]wnAAiHbA
- <filename>~/.xinitrc</filename> ̥[W <command>xmodmap</command>A
- άO̦nإߤ@ <filename>~/.xmodmaprc</filename> ɮסA̭
- C@NO@ <command>xmodmap</command> ﶵAMbA
- <filename>~/.xinitrc</filename> ̥[WG</para>
-
-
- <programlisting>xmodmap $HOME/.xmodmaprc</programlisting>
-
- <para>o@C</para>
-
- <para>ҦpAAQnNoTUM F13BF14 M F15CoA
- bA{άO window manager NKQ\WA@U
- ڭ̷|ܽdC</para>
-
- <para>oǩi <filename>~/.xmodmaprc</filename> ̡G</para>
-
- <programlisting>keycode 115 = F13
-keycode 116 = F14
-keycode 117 = F15</programlisting>
-
- <para>pA <command>fvwm2</command> ܡAAiH@o˪MA
- F13 ЩҦbYpϥ (άOϹL)CF14
- Ҧbܦ̤WhAάOhUhh (pGwgO̤Wh
- F)CF15 hN Workplace (application) sXӡAYϴ
- bୱWCASiୱϰɡAoӥ\N۷aK (ӥB
- WϮשMoӥ\ۧkX)C</para>
-
- <para>HU <filename>~/.fvwmrc</filename> ]wi@Xez\C
- </para>
-
- <programlisting>Key F13 FTIWS A Iconify
-Key F14 FTIWS A RaiseLower
-Key F15 A A Menu Workplace Nop</programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="x-3d-acceleration">
- <para>ڭnˤ~o OpenGL 3D w[t\H</para>
- </question>
-
- <answer>
- <para>3D [t\઺LAAҨϥΪ XFree86 Pܴ
- өwCpGAO NVIDIA ܡAХh
- <ulink url="http://nvidia.netexplorer.org/">FreeBSD NVIDIA
- Driver Initiative </ulink> ݬݡA̦b XFree86-4 Wϥ
- NVIDIA 3D [t\઺QסCXFree86-4 W䥦ܥdtP
- w[t\઺TA ]A Matrox G200/G400, ATI Rage 128/Radeon,
- 3dfx Voodoo 3, 4, 5, H BansheeAib <ulink
- url="http://gladstone.uoregon.edu/~eanholt/dri/">XFree86-4
- Direct Rendering on FreeBSD</ulink> WCXFree 3.3
- ϥΪ̥iHϥ Utah-GLX portAiHb
- <filename role="package">graphics/utah-glx</filename> C
- ϥΥiHb Matrox Gx00, ATI Rage Pro, SiS 6326, i810,
- Savage, Hª NVIDIA Wo즳 OpenGL [tC</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="networking">
- <chapterinfo>
- <author>
- <firstname>Biing Jong</firstname>
- <surname>Lin</surname>
- <affiliation>
- <address><email>bjlin@stic.gov.tw</email></address>
- </affiliation>
- </author>
- </chapterinfo>
-
- <title>Networking</title>
-
- <qandaset>
- <qandaentry>
- <question id="diskless-booting">
- <para>Ө䦳LϺж}
- <quote>diskless booting</quote> ơH</para>
- </question>
-
- <answer>
- <para><quote>Diskless booting</quote> NO FreeBSD Dq
- W}AåBqW server WŪLnɮסAӫDѥD
- wФWooɮסCԲӪƥiHѦ <ulink
- url="../handbook/diskless.html"> FreeBSD ULϺж}g
- </ulink>C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="router">
- <para>FreeBSD DiH@YӺWѾ(router)ܡH</para>
- </question>
-
- <answer>
- <para>OCаѦ FreeBSD Uig <ulink
- url="../handbook/routing.html"> advanced
- networking</ulink>AרOѻPhD <ulink
- url="../handbook/routing.html#DEDICATED-ROUTER">routing
- and gateways</ulink>C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="win95-connection">
- <para>ڥiHzL FreeBSD Nڪ Win95 sW Internet ܡH</para>
- </question>
-
- <answer>
- <para>򥻤WA|ݳoذDHba̦ܤ֦xqA@x] FreeBSD
- t~@x] Win95FoӷQkON FreeBSD DsW InternetAMz
- Lox FreeBSD DA] Win95 qWCoӰDOe@
- ӰD@ӯS</para> <para>... ׬OGiHIb FreeBSD 3.x
- AϥΪ̼Ҧ(user-mode) &man.ppp.8; ]tF
- <option>-nat</option> ﶵCpGAb
- <filename>/etc/rc.conf</filename> ϥ<option>-nat</option>ﶵ
- ]w <literal>gateway_enable</literal> <emphasis>YES</emphasis>
- AHoس]wҰ &man.ppp.8; AåBT]wA Windows D
- ܡAoӰkӬOiH`ϥΪC</para>
-
- <para>󥻥DDԲӪƥiHѦ Steve Sims Ҽg <ulink
- url="../ppp-primer/index.html"> Pedantic PPP Primer</ulink> @C
- </para>
-
- <para>pGAϥΪO֤߼Ҧ (kernel-mode) PPPAΪ̧Aϰsu
- (Ethernet connection) iqF Internet ܡAANݭnϥ
- &man.natd.8;CЬd\ FAQ <link linkend="natd">natd</link>
- C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="slip-ppp-support">
- <para>FreeBSD 䴩 SLIP M PPP ܡH</para>
- </question>
-
- <answer>
- <para>OCAiHdd man pages &man.slattach.8;A
- &man.sliplogin.8;A&man.ppp.8;AH &man.pppd.8; C
- &man.ppp.8; &man.pppd.8; ѶiXVsu䴩At~
- &man.sliplogin.8; MѶiJsu䴩A &man.slattach.8;
- MѦV~su䴩C</para>
-
- <para>pGAݭni@Bƪ,Ьd\ <ulink
- url="../handbook/ppp-and-slip.html">FreeBSD U PPP P SLIP
- </ulink>C</para>
-
- <para>pGAuL <quote>shell account</quote> su Internet
- ܡAA]\iHո <filename role="package">net/slirp</filename>
- oӮM{CoӮM{iHѧAqsWY(w)A
- suAp ftp http C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="natd">
- <para>FreeBSD 䴩 NAT Masquerading ܡH</para>
- </question>
-
- <answer>
- <para>pGA@Ӫݪl(@xHW)AOA
- Internet provider out@ IP number A(Ϊ̧Aut@
- ʺA IP number)AAiHѦ &man.natd.8; oӵ{C &man.natd.8;
- AiHzLo@ IP number ӤlqsW internetC
- </para>
-
- <para>&man.ppp.8; oӵ{]\ApGAw
- <option>-nat</option> ﶵCalias library (&man.libalias.3;)
- boӳBz覡|QϥΨC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="parallel-connect">
- <para>ڦpNx FreeBSD DΥ (parallel line) zL PLIP
- suH</para>
- </question>
-
- <answer>
- <para>аѦҤU <ulink url="../handbook/plip.html">PLIP
- section</ulink> C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="create-dev-net">
- <para>ڨSkإ <filename>/dev/ed0</filename> o deviceA
- H</para>
- </question>
-
- <answer>
- <para>]ݭnIb Berkeley [cAu kernel {XiH
- sɭdCаѦ <filename>/etc/rc.network</filename> o
- ɮשM manual pages oPLP{Ci@BTGp
- GAıoAdVFܡAzӧ@PL BSD @~tκ
- ޲zѨӰѦҡFFּ۪P~AFreeBSD ޲z򥻤WM
- SunOS 4.0 M Ultrix O@˪C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ethernet-aliases">
- <para>ڦpإ Ethernet aliasesH</para>
- </question>
-
- <answer>
- <para>pGA alias }Aثe}bP@ӤlU
- ܡA[J@ <literal>netmask 0xffffffff</literal> bA
- &man.ifconfig.8; command-lineAdҦpUG</para>
- <screen>&prompt.root; <userinput>ifconfig ed0 alias 192.0.2.2 netmask 0xffffffff</userinput></screen>
- <para>MܡANpP[J@ӷs}@˿JA}Pl
- BnG</para>
- <screen>&prompt.root; <userinput>ifconfig ed0 alias 172.16.141.5 netmask 0xffffff00</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="port-3c503">
- <para>ڦpwڪ 3C503 ϥΨLP network portH</para>
- </question>
-
- <answer>
- <para>pGzQϥΨL portAAb &man.ifconfig.8; RO
- wB~ѼơCw port O <literal>link0</literal>Cnϥ
- AUI port N BNC port ܡA <literal>link2</literal>Co
- flags ӧifconfig_* ܼƨӫwA AiHb
- <filename>/etc/rc.conf</filename> oɮ׸̭ (аѦ
- &man.rc.conf.5;)C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="nfs">
- <para>ڦbϥ FreeBSD NFS ɥX{DH</para>
- </question>
-
- <answer>
- <para>ڭ̥ΧtW@IkAY PC dLnAoتpb
- y NFS oعӷP{ɷ|X{DC</para>
-
- <para>Ѧ <ulink url="../handbook/nfs.html">
- the Handbook entry on NFS</ulink> HooӥDDhTC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="nfs-linux">
- <para>ڤ NFS-mount Linux H</para>
- </question>
-
- <answer>
- <para>YǪ Linux NFS {Xu privileged port
- mount requestFեγoOݬ</para>
-
- <screen>&prompt.root; <userinput>mount -o -P linuxbox:/blah /mnt</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="nfs-sun">
- <para>ڤ NFS-mount Sun H</para>
- </question>
-
- <answer>
- <para>] SunOS 4.X Sun u@uӦ privileged port
- mount requestFեγoOݬ</para>
-
- <screen>&prompt.root; <userinput>mount -o -P sunbox:/blah /mnt</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="exports-errors">
- <para> <command>mountd</command> @s
- <errorname>can't change attributes</errorname> ӥBڤ@ݨ
- <errorname>bad exports list</errorname> oӰTbڪ FreeBSD NFS
- AWH</para>
- </question>
-
- <answer>
- <para>oӰḎ`oͪ]Ob󤣤F
- <filename>/etc/exports</filename> T榡CиŪ
- &man.exports.5; HΤU <ulink
- url="../handbook/nfs.html">NFS</ulink> ASOO<ulink
- url="../handbook/nfs.html#CONFIGURING-NFS">configuring
- NFS</ulink>o@qC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-nextstep">
- <para>ڦbϥ PPP su NeXTStep ɦDH</para>
- </question>
-
- <answer>
-
- <para> TCP extensions Aoӳ]wb
- <filename>/etc/rc.conf</filename> ̭(Ѧ &man.rc.conf.5;)
- HUoӭȳ] NOG</para>
-
- <programlisting>tcp_extensions=NO</programlisting>
-
- <para>Xylogic Annex D]ۦPDAznۦPק~s
- WoǥDC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ip-multicast">
- <para>ڭnˤ~ IP multicast support }H</para>
- </question>
-
- <answer>
- <para>FreeBSD 2.0 H᪺w 䴩 Multicast host ާ@CpG
- zQNzD]w multicast router ܡAzs compile z
- kernelA[J <literal>MROUTING</literal> ﶵAåB
- &man.mrouted.8; FreeBSD 2.2 Τ᪺|b}ɰ
- &man.mrouted.8; pGb <filename>/etc/rc.conf</filename>
- <literal>mrouted_enable</literal> ]w <literal>"YES"</literal>
- </para>
-
- <para>MBONE UؤuiHbL ports Uݥs <ulink
- url="http://www.FreeBSD.org/ports/mbone.html">mbone</ulink> ؿ
- CpGzbT|ijup <command>vic</command> H
- <command>vat</command>ܡA쨺aI</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="dec-pci-chipset">
- <para>ǺdOϥ DEC PCI chipsetH</para>
- </question><answer>
-
- <para>HUO Glen Foster <email>gfoster@driver.nsta.org</email>
- ѪMG</para>
-
- <table>
- <title>Network cards based on the DEC PCI chipset</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Vendor</entry>
- <entry>Model</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>ASUS</entry>
- <entry>PCI-L101-TB</entry>
- </row>
- <row>
- <entry>Accton</entry>
- <entry>ENI1203</entry>
- </row>
- <row>
- <entry>Cogent</entry>
- <entry>EM960PCI</entry>
- </row>
- <row>
- <entry>Compex</entry>
- <entry>ENET32-PCI</entry>
- </row>
- <row>
- <entry>D-Link</entry>
- <entry>DE-530</entry>
- </row>
- <row>
- <entry>Dayna</entry>
- <entry>DP1203, DP2100</entry>
- </row>
- <row>
- <entry>DEC</entry>
- <entry>DE435, DE450</entry>
- </row>
- <row>
- <entry>Danpex</entry>
- <entry>EN-9400P3</entry>
- </row>
- <row>
- <entry>JCIS</entry>
- <entry>Condor JC1260</entry>
- </row>
- <row>
- <entry>Linksys</entry>
- <entry>EtherPCI</entry>
- </row>
- <row>
- <entry>Mylex</entry>
- <entry>LNP101</entry>
- </row>
- <row>
- <entry>SMC</entry>
- <entry>EtherPower 10/100 (Model 9332)</entry>
- </row>
- <row>
- <entry>SMC</entry>
- <entry>EtherPower (Model 8432)</entry>
- </row>
- <row>
- <entry>TopWare</entry>
- <entry>TE-3500P</entry>
- </row>
- <row>
- <entry>Znyx (2.2.x)</entry>
- <entry>ZX312, ZX314, ZX342, ZX345, ZX346, ZX348</entry>
- </row>
- <row>
- <entry>Znyx (3.x)</entry>
- <entry>ZX345Q, ZX346Q, ZX348Q, ZX412Q, ZX414, ZX442, ZX444,
- ZX474, ZX478, ZX212, ZX214 (10mbps/hd)</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="fqdn-hosts">
- <para>n FQDN ~sLH</para>
- </question>
-
- <answer>
- <para>A]\|o{nsObt@ӺC|ӨҤlA]AOb
- foo.bar.edu oӺ줤AQnsb@xs <hostid>mumble</hostid>
- DALb <hostid role="domainname">example.org</hostid> UA
- A Fully-Qualified Domain Name <hostid
- role="fqdn">mumble.example.org</hostid>AӤOu
- <hostid>mumble</hostid>C</para>
-
- <para>DzΪ BSD BIND resolver \γoؤ覡ѥX}AO
- FreeBSD <application>bind</application> (see &man.named.8;)
- w覡AhOFAҦbH~A䴩LD FQDN YgC
- ҥHp <hostid>mumble</hostid> b <hostid
- role="fqdn">mumble.foo.example.org</hostid>A_hN|q쪺̩
- h}lC</para>
-
- <para>oMekPA]NO
- <hostid role="domainname">mumble.example.org</hostid>AM
- <hostid role="domainname">mumble.edu</hostid> ~jMC
- ݤ@U RFC 1535A̭쬰򤧫eknAƦܺOӦw
- |}C</para>
-
- <para>o̦ӤѪk, AiH[J@</para>
-
- <programlisting>search foo.example.org example.org</programlisting>
-
- <para>instead of the previous</para>
-
- <programlisting>domain foo.example.org</programlisting>
-
- <para>bA <filename>/etc/resolv.conf</filename> ɮפ (аѦ
- &man.resolv.conf.5;)COnTwjMǤ|H RFC 1535 ҿת
- <quote>boundary between local and public administration</quote>C
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="network-permission-denied">
- <para>ڦbsuɤ@X{
- <errorname>Permission denied</errorname> ~TH</para>
- </question>
-
- <answer>
- <para> pGbsĶ kernel ɥ[J <literal>IPFIREWALL</literal> ﶵA
- Ъ`N 2.1.7R wOڵҦg֭㪺ʥ](b}o
- 2.1-STABLE ɧﱼF)C</para>
-
- <para>IpGpߧ˿F firewall ]wAAiHH
- <username>root</username> HURO\N|_`G</para>
-
- <screen>&prompt.root; <userinput>ipfw add 65534 allow all from any to any</userinput></screen>
-
- <para>]iHb <filename>/etc/rc.conf</filename> [J
- <literal>firewall_type="open"</literal> ﶵC</para>
-
- <para>pGQDp]w FreeBSD firewallAаѦ <ulink
- url="../handbook/firewalls.html">U`</ulink>C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ipfw-overhead">
- <para>IPFW |yhjH</para>
- </question>
-
- <answer>
- <para>аѦҤU <ulink
- url="../handbook/firewalls.html">Firewalls</ulink> `ASOO
- <ulink url="../handbook/firewalls.html#IPFW-OVERHEAD">IPFW
- Overhead & Optimization</ulink> o@qC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ipfw-fwd">
- <para>ڪ <command>ipfw</command> <quote>fwd</quote>
- redirect WhNAVLɵLk`B@H</para>
- </question>
-
- <answer>
- <para>iOAFeʥ]H~B~Qi}Ķ
- (network address translation, NAT)A<quote>fwd</quote> WhҶi
- 檺ʧ@NpPrҥܡFeʥ]Aä|hקʥ]ơC
- ]ڭ̦pUWhG</para>
-
- <screen>01000 fwd <replaceable>10.0.0.1</replaceable> from any to <replaceable>foo 21</replaceable></screen>
-
- <para>@ӳqSwؼЦ} <replaceable>foo</replaceable> ʥ]
- eFDɡAھڳoWhAʥ]NQe
- <replaceable>10.0.0.1</replaceable>AOؼЦ}oMO
- <replaceable>foo</replaceable>Iʥ]ؼЦ}
- <emphasis>S</emphasis> אּ
- <replaceable>10.0.0.1</replaceable>CjD|Nʥ]A
- ]L̨äOoӥؼЦ}C]Aϥ <quote>fwd</quote> Wh
- ɩpϥΪ̩ҹw붶QCoئ欰OtίSʡAӫD~C
- </para>
-
- <para>Ѧ <link linkend="service-redirect">AV`
- </link>A &man.natd.8; UAΪ̬Oϥ <ulink
- url="../../../../ports/index.html">ports collection</ulink> \
- hAVuӥTAQi檺u@C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="service-redirect">
- <para>npYxAȭnD(service request)Vt@xH
- </para>
- </question>
-
- <answer>
- <para>b ports ؿ<quote>sysutils</quote>ӥs
- <literal>socket</literal> MAiHAV FTP ΨL
- AȡCunӺAȪRO令Is socket YiApUҥܡG
- </para>
-
- <programlisting>ftp stream tcp nowait nobody /usr/local/bin/socket socket <replaceable>ftp.example.com</replaceable> <replaceable>ftp</replaceable></programlisting>
-
- <para>䤤 <replaceable>ftp.example.com</replaceable> P
- <replaceable>ftp</replaceable> OOQ쪺M port W١C
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="bandwidth-mgr-tool">
- <para>̥iH޲zWeuH</para>
- </question>
-
- <answer>
- <para>FreeBSD WTMWe޲zuG &man.dummynet.4; wgXiJ
- FreeBSD t(ԲӪγ~, &man.ipfw.4;); <ulink
- url="http://www.csl.sony.co.jp/person/kjc/programs.html">ALTQ</ulink>
- iHKOϥΡA<ulink
- url="http://www.etinc.com/">Emerging Technologies</ulink>
- X Bandwidth Manager hOӥγnC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="bpf-not-configured">
- <para>|]X
- <errorname>/dev/bpf0: device not configured</errorname>oӰTH
- </para>
- </question>
-
- <answer>
- <para>AF@ӻݭnfJܫʥ]Lo (Berkeley Packet Filter)
- { (&man.bpf.4;)AOAb kernel SҰʥCUo@[
- J kernel ]wɤAsĶ@ӷs kernelG</para>
-
- <programlisting>pseudo-device bpf # Berkeley Packet Filter</programlisting>
-
- <para>bs}A٭nX device nodeAb
- <filename>/dev</filename> UG</para>
-
- <screen>&prompt.root; <userinput>sh MAKEDEV bpf0</userinput></screen>
-
- <para>pGQni@BDp󰵥XU device nodeAаѾ\ <ulink
- url="../handbook/kernelconfig-nodes.html">Handbook g`I</ulink>
- C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="mount-smb-share">
- <para>ڭnˤ~N Windows ϺбJt, N Linux
- smbmount ˡH</para>
- </question>
-
- <answer>
- <para>ϥ <application>SMBFS</application> uաCoMuդ
- ]tF@tC kernel ק٦ϥΪ̪u{(userland programs)C
- oǵ{MTb ports ä
- <filename role="package">net/smbfs</filename> UiHCb
- 4.5-RELEASE ᪺hOtΤءC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="icmp-response-bw-limit">
- <para>ڦbtΤxo{HUTG
- <quote>icmp-response bandwidth limit 300/200 pps</quote>AoO
- ̸J|H</para>
- </question>
-
- <answer>
- <para>oOtή֤ߧiDAYǬʤ޵oeX񥦩һ{ӰeX
- h ICMP TCP mT (RST)CICMP ^T``O]H
- ճsQϥΪ UDP qTCTCP mThOHճs}
- TCP qTyGCHUoǬʥiNOyoǰT]G
- </para>
-
- <itemizedlist>
- <listitem>
- <para>ɤOkAȲյ(DoS)覡
- (۸wSzIϥγ@ʥ]覡)C</para>
- </listitem>
-
- <listitem>
- <para>jqqT𱽴y(۸ȹդּƪ`AȳqT)C</para>
- </listitem>
- </itemizedlist>
-
- <para>X{ƦrĤ@ӥNھڳoǬyq kernel ӰeXʥ]ơA
- ĤGӼƦrhO kernel ثe̤joeơCAiHQ sysctl ק
- <varname>net.inet.icmp.icmplim</varname> ܼƭȨӧ̤jȡC|
- Ҩӻ,pGƱקﭭ <literal>300</literal> packets per
- secondG</para>
-
- <screen>&prompt.root; <userinput>sysctl -w net.inet.icmp.icmplim=300</userinput></screen>
-
- <para>pGAQbtάݨoǰTAOMƱO^
- ܡAAiHQ sysctl ק
- <varname>net.inet.icmp.icmplim_output</varname> ܼƨӨoǰT
- G</para>
-
- <screen>&prompt.root; <userinput>sysctl -w net.inet.icmp.icmplim_output=0</userinput></screen>
-
- <para>̫ApGAQoǭܡAAiH]w
- <varname>net.inet.icmp.icmplim</varname> (pWҩҥ)
- <literal>0</literal>CWzzѡAڭ̤ijAoǭC
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="unknown-hw-addr-format">
- <para>oӿ~T
- <errorname>arp: unknown hardware address format</errorname>
- ONH</para>
- </question>
-
- <answer>
- <para>oNAϰsuW@dz]ƨϥ FreeBSD ݤ MAC
- 榡Coq`ONHbAϰWiA̱`NO
- cable modem suCoTL`AӥBӤܩvT FreeBSD D
- įC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="cvsup-missing-libs">
- <para>ڭ˦n CVSup MAObհɵoͤF~AnH
- </para>
- </question>
-
- <answer>
- <para>Aݬݿ~TO_pUG</para>
-
- <programlisting>/usr/libexec/ld-elf.so.1: Shared object "libXaw.so.6" not found</programlisting>
-
- <para>oؿ~TNADWw˪
- <filename role="package">net/cvsup</filename> S]t
- <application>XFree86</application> MCpGAQnϥ
- <application>CVSup</application> تϧΤ
- <acronym>GUI</acronym> ܡAAݭnw
- <application>XFree86</application>C~ApGAuQHROC
- ϥ <application>CVSup</application> ܡAAӥe
- w˪MCæw
- <filename role="package">net/cvsup-without-gui</filename> oM
- nCb FreeBSD U <ulink
- url="http://www.freebsd.org/handbook/cvsup.html">CVSup</ulink>
- qԲӪC</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="security">
- <chapterinfo>
- <author>
- <firstname>Biing Jong</firstname>
- <surname>Lin</surname>
- <affiliation>
- <address><email>bjlin@stic.gov.tw</email></address>
- </affiliation>
- </author>
- </chapterinfo>
-
- <title>tΦwg</title>
- <qandaset>
- <qandaentry>
- <question id="sandbox">
- <para>O sandboxH</para>
- </question><answer>
-
- <para><quote>Sandbox</quote> OtΦwΪNyAӷNqG</para>
-
- <itemizedlist>
- <listitem>
-
- <para>bYǵ@̪{ǡAoǨ@OΨӪ
- YǤHIJoD{ǡAiӥXJjtΤC</para>
-
- <para>oD{ǥiHb@ <quote>ʧ@</quote>C]N
- OAҰ檺{i|z𪺥~CҥHpG
- z復wWU{AäݭnSOhť@|@ʡA
- ub𤺬ʡC</para>
-
- <para>|ҨӻAiH userid ӰoD@AoO security
- M named 󤤪wqC</para>
-
- <para>{bN <literal>ntalk</literal> oӪAȧ@]
- /etc/inetd.conf^CoӪAȥHe userid O
- <username>root</username>A{bɫhO
- <username>tty</username>C<username>tty</username>
- oӨϥΪ̴NO@ sandboxApGHQ ntalk
- IJtΡA{bLNioӤ]uγo useridC</para>
- </listitem>
-
- <listitem>
- <para>bYӼ̪{AoWzӱoYKC򥻤W
- oܯIJӵ{H۫HLAiJݪAƹW
- u|iJXӪALki@BקuꪺơC</para>
-
- <para>Foӥت̱`ΪkANObYӤlؿUX
- ҡAM chroot ӵ{Ao˸ӵ{ڥؿKOo
- lؿAӫDtίuڥؿC</para>
-
- <para>t@ӱ`@kONYɮרt mount ŪAb
- Wt~syX{HiHgJɮרtΡCoӵ{|۫H
- iHLɮŪgAuݤoӰŪ - t
- 檺@{ݱoC</para>
-
- <para>ڭ̸չϱNo sandbox ɶqzơAϥΪ̩ΫIJ
- LkݨLO_bY sandbox ̭C</para>
- </listitem>
- </itemizedlist>
-
- <para>UNIX @ sandboxA@Ӧb{hAt@ӫhO userid
- ӹFC</para>
-
- <para>C UNIX {Ƿ|ΨNMҦL{ǹj}AYӵ{
- iHHNקL{Ǧ}ơCoM Windows A{iH
- קL}ơAGɭPΤjۦPC</para>
-
- <para>C UNIX {dzݩYӯSw useridCpG userid O
- <username>root</username>AN|NMLϥΪ̪{ǹj}C
- Userid Pɤ]ΩwиƪsvWC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="securelevel">
- <para>O securelevel?</para>
- </question>
-
- <answer>
- <para>securelevel O֤ߤҹ@@ӦwC򥻤W
- securelevel OȮɡA֤߷|YǤu@FYϬO superuser
- (]NO <username>root</username>) ]LkǤu@Cbg
- ɡAsecurelevel b@몺~AٯHU\G
- </para>
-
- <itemizedlist>
- <listitem>
- <para>MYǯSwɮ׺XСAҦp <literal>schg</literal>
- (tΰŪкX, the system immutable flag)</para>
- </listitem>
-
- <listitem>
- <para>g <devicename>/dev/mem</devicename> P
- <devicename>/dev/kmem</devicename>A NƼgJܮ֤߰O餤
- </para>
- </listitem>
-
- <listitem>
- <para>J֤߼Ҳ</para>
- </listitem>
-
- <listitem>
- <para> &man.ipfirewall.4; WhC</para>
- </listitem>
- </itemizedlist>
-
- <para>QnˬdbYӹB@tΪ securelevel AAunHU
- ROYiG</para>
-
- <screen>&prompt.root; <userinput>sysctl kern.securelevel</userinput></screen>
-
- <para>XG|]t@ &man.sysctl.8; ܼƦW (boӨҤlA
- O <varname>kern.securelevel</varname>) HΤ@ӼƦrÇYO
- ثe securelevel ȡCpGO@ӥ (]NOj 0)Aܦܤ
- @ securelevel O@wg}ҤFC</para>
-
- <para>ASkC@ӹB@tΪ securelevelFpGiHܡA
- NhFoӾNqFCpGAn@@ǻݭn securelevel
- DȤ~iHʧ@ (Ҧp <maketarget>installworld</maketarget>
- Χʤ)AAݭnק <filename>/etc/rc.conf</filename>
- securelevel ]w ( <varname>kern_securelevel</varname> M
- <varname>kern_securelevel_enable</varname> ܼ)AM᭫s}C
- </para>
-
- <para>QnDh securelevel PUӤPżvTӸ`A
- аѦ &man.init.8; C</para>
-
- <warning>
- <para>securelevel iOUFF\hwʳAy
- @ئwHC</para>
-
- <para>@ӳ̤jDANOnoӥ\৹ĪܡAb
- securelevel o@ΫeҰʹL{AҦϥΨ쪺ɮ׳
- QO@_ӡCpG@ӧ̦b securelevel īe (ѩ
- ǨtΦbҰʤҧ@ƱALkb securelevel
- `B@AҥHo|bҰʹL{~|B@)AL̪{
- Q檺ܡAsecurelevel O@NLĤFCO@Ұʵ{
- Ҧɮצb޳NWOi檺AOpGuo˧@ܡAt
- @N|ܦ@LCYϥuOק@ӳ]wɡA]N
- tAܤ֤]oHҦC</para>
-
- <para>FoIA٦\h䥦F賣bqH׾¤WQסAרO
- freebsd-securityCШ <ulink
- url="../../../../search/index.html">o</ulink> jMHe
- QסCǤHƱ securelevel ֮Aѥt@ӧuq
- NAL|IC</para>
-
- <para>IۦӾC</para>
- </warning>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="extra-named-port">
- <para>BIND (<command>named</command>) FbqT 53 H~]b
- LsqT (high-numbered port) ť (Listen)C
- oO^ơH</para>
- </question>
-
- <answer>
- <para>FreeBSD 3.0 ᪺ϥΤ@ӯS BIND AoӪ|
- HsqTӦ^~dߡCpGA]nAX
- ]wάOªQۤvݨӵΪA@IӷQ 53 qT^~dߡA
- AiHէHUɮ׬e
- <filename>/etc/namedb/named.conf</filename>G</para>
-
- <programlisting>options {
- query-source address * port 53;
-};</programlisting>
-
- <para>A]iHN <literal>*</literal> אּSw IP addressA
- ǥH[jC</para>
-
- <para>KߧACŪAtΤW &man.sockstat.1; iåB`N
- `pO@nơI</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="sendmail-port-587">
- <para>Sendmail FbзǪqT 25 ~]bqT 587 ťIoO
- ^ơH</para>
- </question>
-
- <answer>
- <para>s Sendmail 䴩 mail submission o\AåB
- γqT 587Co\٨SQsx䴩O䴩ƥإbW
- C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="toor-account">
- <para>ڵo{Fo UID 0 <username>toor</username> bAoO
- J|HڳQ±FܡH</para>
- </question>
-
- <answer>
- <para>ߡC<username>toor</username> O@
- <quote>alternative</quote> ޲ẕb (toor O root Vk)C
- HOH &man.bash.1; w˦ӫبAӫhtΤwب@
- ӱbCoӱbNH@ӫDзǪ shell ըϥΡA Aݭnh
- <username>root</username> shellC]oǨL shell
- èSHtιw]Ȧw (|ҨӻAYǥ ports w˪
- shell package)AӳQww˦b <filename>/usr/local/bin</filename>
- ؿUAisbPɮרtΤC խY <username>root</username>
- shell Qb <filename>/usr/local/bin</filename>AB
- <filename>/usr</filename> (άOL]t
- <filename>/usr/local/bin</filename> oӤlؿɮרt)
- ]Yǭ]èSQ` mount _ӪܡA<username>root</username>
- NLk`nJtζi (MA}HҦN|ݧAn
- J shell)C</para>
-
- <para>ǤHϥ <username>toor</username> biC骺
- <username>root</username> @u@ApiHϥΫDзǪ
- shellA <username>root</username> iHOdз shellA
- H]@ϥΪ̼Ҧ (single user mode) κ檬pBzC
- ̷ӨtΤwȡAANLkϥ <username>toor</username> nJA
- ]oӱb|KX]wC]ApGAQҰʳoӱbAAݭn
- ϥ <username>root</username> nJtΨåBק
- <username>toor</username> KXC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="suidperl">
- <para> <command>suidperl</command> Lk`B@H</para>
- </question>
-
- <answer>
- <para>]YǦwҡA<command>suidperl</command> ww
- èS]w suid bitCtκ޲z̥iH̷ӥHUROҰ suid ]wC
- </para>
-
- <screen>&prompt.root; <userinput>chmod u+s /usr/bin/suidperl</userinput></screen>
-
- <para>pGAQnb source ɯŮ <command>suidperl</command> w
- Ұ suid \઺ܡAs <filename>/etc/make.conf</filename> [J
- <varname>ENABLE_SUIDPERL=true</varname> M
- <command>make buildworld</command>C</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="ppp">
- <title>PPP</title>
-
- <qandaset>
- <qandaentry>
- <question id="userppp">
- <para>I cannot make &man.ppp.8; work. What am I doing wrong?</para>
- </question>
-
- <answer>
- <para>You should first read the
- &man.ppp.8;
- man page and the <ulink
- url="../handbook/ppp-and-slip.html#USERPPP">
- PPP section of the handbook</ulink>. Enable logging with
- the command</para>
-
- <programlisting>set log Phase Chat Connect Carrier lcp ipcp ccp command</programlisting>
-
- <para>This command may be typed at the
- &man.ppp.8; command prompt or it may be
- entered in the <filename>/etc/ppp/ppp.conf</filename>
- configuration file (the start of the
- <literal>default</literal> section is the best
- place to put it). Make sure that
- <filename>/etc/syslog.conf</filename> (see &man.syslog.conf.5;) contains the lines</para>
-
- <programlisting>!ppp
-*.* /var/log/ppp.log</programlisting>
-
- <para>and that the file <filename>/var/log/ppp.log</filename>
- exists. You can now find out a lot about what is going on
- from the log file. Do not worry if it does not all make sense.
- If you need to get help from someone, it may make sense to
- them.</para>
-
- <para>If your version of &man.ppp.8; does not understand the
- <command>set log</command> command, you should download the
- <ulink url="http://people.FreeBSD.org/~brian/">
- latest version</ulink>. It will build on FreeBSD version
- 2.1.5 and higher.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-hangs">
- <para>Why does &man.ppp.8; hang when I run it?</para>
- </question>
-
- <answer>
- <para>This is usually because your hostname will not resolve.
- The best way to fix this is to make sure that
- <filename>/etc/hosts</filename> is consulted by your
- resolver first by editing <filename>/etc/host.conf</filename>
- and putting the <literal>hosts</literal> line first. Then,
- simply put an entry in <filename>/etc/hosts</filename> for
- your local machine. If you have no local network, change your
- <hostid>localhost</hostid> line:</para>
-
- <programlisting>127.0.0.1 foo.bar.com foo localhost</programlisting>
-
- <para>Otherwise, simply add another entry for your host.
- Consult the relevant man pages for more details.</para>
-
- <para>You should be able to successfully
- <command>ping -c1 `hostname`</command> when you are done.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-nodial-auto">
- <para>Why will &man.ppp.8; not dial in <literal>-auto</literal>
- mode?</para>
- </question>
-
- <answer>
- <para>First, check that you have got a default route. By running
- <command>netstat -rn</command> (see &man.netstat.1;), you should see two entries like this:</para>
-
- <programlisting>Destination Gateway Flags Refs Use Netif Expire
-default 10.0.0.2 UGSc 0 0 tun0
-10.0.0.2 10.0.0.1 UH 0 0 tun0</programlisting>
-
- <para>This is assuming that you have used the addresses from the
- handbook, the man page or from the ppp.conf.sample file.
- If you do not have a default route, it may be because you are
- running an old version of &man.ppp.8;
- that does not understand the word <literal>HISADDR</literal>
- in the ppp.conf file. If your version of
- &man.ppp.8; is from before FreeBSD
- 2.2.5, change the</para>
-
- <programlisting>add 0 0 HISADDR</programlisting>
-
- <para>line to one saying</para>
-
-
- <programlisting>add 0 0 10.0.0.2</programlisting>
-
- <para>Another reason for the default route line being missing
- is that you have mistakenly set up a default router in your
- <filename>/etc/rc.conf</filename> (see &man.rc.conf.5;) file (this file was called
- <filename>/etc/sysconfig</filename> prior to release 2.2.2),
- and you have omitted the line saying</para>
-
- <programlisting>delete ALL</programlisting>
-
- <para>from <filename>ppp.conf</filename>. If this is the case,
- go back to the <ulink
- url="../handbook/ppp-and-slip.html#USERPPP-FINAL">
- Final system configuration</ulink> section of the
- handbook.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="no-route-to-host">
- <para>What does <errorname>No route to host</errorname> mean?</para>
- </question>
-
- <answer>
- <para>This error is usually due to a missing</para>
-
- <programlisting>MYADDR:
- delete ALL
- add 0 0 HISADDR</programlisting>
-
- <para>section in your <filename>/etc/ppp/ppp.linkup</filename>
- file. This is only necessary if you have a dynamic IP address
- or do not know the address of your gateway. If you are using
- interactive mode, you can type the following after entering
- <literal>packet mode</literal> (packet mode is
- indicated by the capitalized <acronym>PPP</acronym> in the
- prompt):</para>
-
- <programlisting>delete ALL
-add 0 0 HISADDR</programlisting>
-
- <para>Refer to the <ulink
- url="../handbook/ppp-and-slip.html#USERPPP-DYNAMICIP">
- PPP and Dynamic IP addresses</ulink> section of the handbook
- for further details.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="connection-threeminutedrop">
- <para>Why does my connection drop after about 3 minutes?</para>
- </question>
-
- <answer>
- <para>The default PPP timeout is 3 minutes. This can be
- adjusted with the line</para>
-
- <programlisting>set timeout <replaceable>NNN</replaceable></programlisting>
-
- <para>where <replaceable>NNN</replaceable> is the number of
- seconds of inactivity before the connection is closed. If
- <replaceable>NNN</replaceable> is zero, the connection is never
- closed due to a timeout. It is possible to put this command in
- the <filename>ppp.conf</filename> file, or to type it at the
- prompt in interactive mode. It is also possible to adjust it on
- the fly while the line is active by connecting to
- <application>ppp</application>s server socket using
- &man.telnet.1; or &man.pppctl.8;.
- Refer to the
- &man.ppp.8; man
- page for further details.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-drop-heavy-load">
- <para>Why does my connection drop under heavy load?</para>
- </question>
-
- <answer>
- <para>If you have Link Quality Reporting (LQR) configured,
- it is possible that too many LQR packets are lost between
- your machine and the peer. Ppp deduces that the line must
- therefore be bad, and disconnects. Prior to FreeBSD version
- 2.2.5, LQR was enabled by default. It is now disabled by
- default. LQR can be disabled with the line</para>
-
- <programlisting>disable lqr</programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-drop-random">
- <para>Why does my connection drop after a random amount of
- time?</para>
- </question>
-
- <answer>
- <para>Sometimes, on a noisy phone line or even on a line with
- call waiting enabled, your modem may hang up because it
- thinks (incorrectly) that it lost carrier.</para>
-
- <para>There is a setting on most modems for determining how
- tolerant it should be to temporary losses of carrier. On a
- USR Sportster for example, this is measured by the S10
- register in tenths of a second. To make your modem more
- forgiving, you could add the following send-expect sequence
- to your dial string:</para>
-
- <programlisting>set dial "...... ATS10=10 OK ......"</programlisting>
-
- <para>Refer to your modem manual for details.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-hangs-random">
- <para>Why does my connection hang after a random amount of
- time?</para>
- </question><answer>
-
- <para>Many people experience hung connections with no apparent
- explanation. The first thing to establish is which side of
- the link is hung.</para>
-
- <para>If you are using an external modem, you can simply try
- using &man.ping.8; to see if the
- <acronym>TD</acronym> light is flashing when you transmit data.
- If it flashes (and the <acronym>RD</acronym> light does not),
- the problem is with the remote end. If <acronym>TD</acronym>
- does not flash, the problem is local. With an internal modem,
- you will need to use the <literal>set server</literal> command in
- your <filename>ppp.conf</filename> file. When the hang occurs,
- connect to &man.ppp.8; using &man.pppctl.8;. If your network connection
- suddenly revives (PPP was revived due to the activity on the
- diagnostic socket) or if you cannot connect (assuming the
- <literal>set socket</literal> command succeeded at startup
- time), the problem is local. If you can connect and things are
- still hung, enable local async logging with <literal>set log
- local async</literal> and use &man.ping.8; from
- another window or terminal to make use of the link. The async
- logging will show you the data being transmitted and received
- on the link. If data is going out and not coming back, the
- problem is remote.</para>
-
- <para>Having established whether the problem is local or remote,
- you now have two possibilities:</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-remote-not-responding">
- <para>The remote end is not responding. What can I do?</para>
- </question>
-
- <answer>
- <para>There is very little you can do about this. Most ISPs
- will refuse to help if you are not running a Microsoft OS.
- You can <literal>enable lqr</literal> in your
- <filename>ppp.conf</filename> file, allowing &man.ppp.8; to detect
- the remote failure and hang up, but this detection is
- relatively slow and therefore not that useful. You may want to
- avoid telling your ISP that you are running user-PPP...</para>
-
- <para>First, try disabling all local compression by adding the
- following to your configuration:</para>
-
- <programlisting>disable pred1 deflate deflate24 protocomp acfcomp shortseq vj
-deny pred1 deflate deflate24 protocomp acfcomp shortseq vj</programlisting>
-
- <para>Then reconnect to ensure that this makes no difference.
- If things improve or if the problem is solved completely,
- determine which setting makes the difference through trial
- and error. This will provide good ammunition when you contact
- your ISP (although it may make it apparent that you are not
- running a Microsoft product).</para>
-
- <para>Before contacting your ISP, enable async logging locally
- and wait until the connection hangs again. This may use up
- quite a bit of disk space. The last data read from the port
- may be of interest. It is usually ascii data, and may even
- describe the problem
- (<quote>Memory fault, core dumped</quote>?).</para>
-
- <para>If your ISP is helpful, they should be able to enable
- logging on their end, then when the next link drop occurs,
- they may be able to tell you why their side is having a
- problem. Feel free to send the details to &a.brian;, or
- even to ask your ISP to contact me directly.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-hung">
- <para>&man.ppp.8; has hung. What can I do?</para>
- </question>
-
- <answer>
- <para>Your best bet here is to rebuild &man.ppp.8; by adding
- <literal>CFLAGS+=-g</literal> and <literal>STRIP=</literal>
- to the end of the Makefile, then doing a
- <command>make clean &amp;&amp; make &amp;&amp; make
- install</command>. When &man.ppp.8; hangs, find the &man.ppp.8; process id
- with <command>ps ajxww | fgrep ppp</command> and run
- <command>gdb ppp <replaceable>PID</replaceable></command>.
- From the gdb prompt, you can then use <command>bt</command>
- to get a stack trace.</para>
-
- <para>Send the results to <email>brian@Awfulhak.org</email>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-loginok-thennothing">
- <para>Why does nothing happen after the <quote>Login OK!</quote>
- message?</para>
- </question>
-
- <answer>
- <para>Prior to FreeBSD version 2.2.5, once the link was
- established, &man.ppp.8;
- would wait for the peer to initiate the Line Control Protocol
- (LCP). Many ISPs will not initiate negotiations and expect
- the client to do so. To force
- &man.ppp.8; to initiate the LCP, use the
- following line:</para>
-
- <programlisting>set openmode active</programlisting>
-
- <note>
- <para>It usually does no
- harm if both sides initiate negotiation, so openmode is now
- active by default. However, the next section explains when
- it <emphasis>does</emphasis> do some harm.</para>
- </note>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-same-magic">
- <para>I keep seeing errors about magic being the same. What does
- it mean?</para>
- </question>
-
- <answer>
- <para>Occasionally, just after connecting, you may see messages
- in the log that say <quote>magic is the same</quote>.
- Sometimes, these messages are harmless, and sometimes one side
- or the other exits. Most PPP implementations cannot survive
- this problem, and even if the link seems to come up, you will see
- repeated configure requests and configure acknowledgments in
- the log file until &man.ppp.8; eventually gives up and closes the
- connection.</para>
-
- <para>This normally happens on server machines with slow disks
- that are spawning a getty on the port, and executing &man.ppp.8; from
- a login script or program after login. I have also heard reports
- of it happening consistently when using slirp. The reason is
- that in the time taken between &man.getty.8; exiting and &man.ppp.8; starting,
- the client-side &man.ppp.8; starts sending Line Control Protocol (LCP)
- packets. Because ECHO is still switched on for the port on
- the server, the client &man.ppp.8; sees these packets
- <quote>reflect</quote> back.</para>
-
- <para>One part of the LCP negotiation is to establish a magic
- number for each side of the link so that
- <quote>reflections</quote> can be detected. The protocol says
- that when the peer tries to negotiate the same magic number, a
- NAK should be sent and a new magic number should be chosen.
- During the period that the server port has ECHO turned on, the
- client &man.ppp.8; sends LCP packets, sees the same magic in the
- reflected packet and NAKs it. It also sees the NAK reflect
- (which also means &man.ppp.8; must change its magic). This produces a
- potentially enormous number of magic number changes, all of
- which are happily piling into the server's tty buffer. As soon
- as &man.ppp.8; starts on the server, it is flooded with magic number
- changes and almost immediately decides it has tried enough to
- negotiate LCP and gives up. Meanwhile, the client, who no
- longer sees the reflections, becomes happy just in time to see
- a hangup from the server.</para>
-
- <para>This can be avoided by allowing the peer to start
- negotiating with the following line in your ppp.conf
- file:</para>
-
- <programlisting>set openmode passive</programlisting>
-
- <para>This tells &man.ppp.8; to wait for the server to initiate LCP
- negotiations. Some servers however may never initiate
- negotiations. If this is the case, you can do something
- like:</para>
-
- <programlisting>set openmode active 3</programlisting>
-
- <para>This tells &man.ppp.8; to be passive for 3 seconds, and then to
- start sending LCP requests. If the peer starts sending
- requests during this period, &man.ppp.8; will immediately respond
- rather than waiting for the full 3 second period.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-lcp-constant">
- <para>LCP negotiations continue until the connection is
- closed. What is wrong?</para>
- </question>
-
- <answer>
- <para>There is currently an implementation mis-feature in
- &man.ppp.8; where it does not associate
- LCP, CCP &amp; IPCP responses with their original requests. As
- a result, if one PPP
- implementation is more than 6 seconds slower than the other
- side, the other side will send two additional LCP configuration
- requests. This is fatal.</para>
-
- <para>Consider two implementations,
- <hostid>A</hostid> and
- <hostid>B</hostid>. <hostid>A</hostid> starts
- sending LCP requests immediately after connecting and
- <hostid>B</hostid> takes 7 seconds to start. When
- <hostid>B</hostid> starts, <hostid>A</hostid>
- has sent 3 LCP REQs. We are assuming the line has ECHO switched
- off, otherwise we would see magic number problems as described in
- the previous section. <hostid>B</hostid> sends a
- REQ, then an ACK to the first of
- <hostid>A</hostid>'s REQs. This results in
- <hostid>A</hostid> entering the <acronym>OPENED</acronym>
- state and sending and ACK (the first) back to
- <hostid>B</hostid>. In the meantime,
- <hostid>B</hostid> sends back two more ACKs in response to
- the two additional REQs sent by <hostid>A</hostid>
- before <hostid>B</hostid> started up.
- <hostid>B</hostid> then receives the first ACK from
- <hostid>A</hostid> and enters the
- <acronym>OPENED</acronym> state.
- <hostid>A</hostid> receives the second ACK from
- <hostid>B</hostid> and goes back to the
- <acronym>REQ-SENT</acronym> state, sending another (forth) REQ
- as per the RFC. It then receives the third ACK and enters the
- <acronym>OPENED</acronym> state. In the meantime,
- <hostid>B</hostid> receives the forth REQ from
- <hostid>A</hostid>, resulting in it reverting to the
- <acronym>ACK-SENT</acronym> state and sending
- another (second) REQ and (forth) ACK as per the RFC.
- <hostid>A</hostid> gets the REQ, goes into
- <acronym>REQ-SENT</acronym> and sends another REQ. It
- immediately receives the following ACK and enters
- <acronym>OPENED</acronym>.</para>
-
- <para>This goes on until one side figures out that they are
- getting nowhere and gives up.</para>
-
- <para>The best way to avoid this is to configure one side to be
- <literal>passive</literal> - that is, make one side
- wait for the other to start negotiating. This can be done
- with the</para>
-
- <programlisting>set openmode passive</programlisting>
-
- <para>command. Care should be taken with this option. You
- should also use the</para>
-
- <programlisting>set stopped N</programlisting>
-
- <para>command to limit the amount of time that
- &man.ppp.8; waits for the peer to begin
- negotiations. Alternatively, the</para>
-
- <programlisting>set openmode active N</programlisting>
-
- <para>command (where <replaceable>N</replaceable> is the
- number of seconds to wait before starting negotiations) can be
- used. Check the manual page for details.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-lockups">
- <para>Why does &man.ppp.8; lock up shortly after connection?</para>
- </question>
-
- <answer>
- <para>Prior to version 2.2.5 of FreeBSD, it was possible that
- your link was disabled shortly after connection due to
- &man.ppp.8; mis-handling Predictor1
- compression negotiation. This would only happen if both sides
- tried to negotiate different Compression Control Protocols
- (CCP). This problem is now corrected, but if you are still
- running an old version of &man.ppp.8;
- the problem can be circumvented with the line</para>
-
- <programlisting>disable pred1</programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-shell-test-lockup">
- <para>Why does &man.ppp.8; lock up when I shell out to test it?</para>
- </question>
-
- <answer>
- <para>When you execute the <command>shell</command> or
- <command>!</command> command, &man.ppp.8; executes a
- shell (or if you have passed any arguments,
- &man.ppp.8; will execute those arguments). Ppp will
- wait for the command to complete before continuing. If you
- attempt to use the PPP link while running the command, the link
- will appear to have frozen. This is because
- &man.ppp.8; is waiting for the command to
- complete.</para>
-
- <para>If you wish to execute commands like this, use the
- <command>!bg</command> command instead. This will execute
- the given command in the background, and &man.ppp.8; can continue to
- service the link.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-nullmodem">
- <para>Why does &man.ppp.8; over a null-modem cable never exit?</para>
- </question>
-
- <answer>
- <para>There is no way for &man.ppp.8; to
- automatically determine that a direct connection has been
- dropped. This is due to the lines that are used in a
- null-modem serial cable. When using this sort of connection,
- LQR should always be enabled with the line</para>
-
- <programlisting>enable lqr</programlisting>
-
- <para>LQR is accepted by default if negotiated by the peer.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-auto-noreasondial">
- <para>Why does &man.ppp.8; dial for no reason in -auto mode?</para>
- </question><answer>
-
- <para>If &man.ppp.8; is dialing
- unexpectedly, you must determine the cause, and set up Dial
- filters (dfilters) to prevent such dialing.</para>
-
- <para>To determine the cause, use the following line:</para>
-
- <programlisting>set log +tcp/ip</programlisting>
-
- <para>This will log all traffic through the connection. The
- next time the line comes up unexpectedly, you will see the
- reason logged with a convenient timestamp next to it.</para>
-
- <para>You can now disable dialing under these circumstances.
- Usually, this sort of problem arises due to DNS lookups. To
- prevent DNS lookups from establishing a connection (this will
- <emphasis>not</emphasis> prevent
- &man.ppp.8; from passing the packets
- through an established connection), use the following:</para>
-
- <programlisting>set dfilter 1 deny udp src eq 53
-set dfilter 2 deny udp dst eq 53
-set dfilter 3 permit 0/0 0/0</programlisting>
-
- <para>This is not always suitable, as it will effectively break
- your demand-dial capabilities - most programs will need a DNS
- lookup before doing any other network related things.</para>
-
- <para>In the DNS case, you should try to determine what is
- actually trying to resolve a host name. A lot of the time,
- &man.sendmail.8; is the culprit. You should make sure that
- you tell sendmail not to do any DNS lookups in its
- configuration file. See the section on
- <link linkend="ispmail">Mail Configuration</link> for details
- on how to create your own configuration file and what should
- go into it. You may also want to add the following line to
- your <filename>.mc</filename> file:</para>
-
- <programlisting>define(`confDELIVERY_MODE', `d')dnl</programlisting>
-
- <para>This will make sendmail queue everything until the queue
- is run (usually, sendmail is invoked with
- <option>-bd -q30m</option>, telling it to run the queue every
- 30 minutes) or until a <command>sendmail -q</command> is done
- (perhaps from your ppp.linkup file).</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ccp-errors">
- <para>What do these CCP errors mean?</para>
- </question>
-
- <answer>
- <para>I keep seeing the following errors in my log file:</para>
-
- <programlisting>CCP: CcpSendConfigReq
-CCP: Received Terminate Ack (1) state = Req-Sent (6)</programlisting>
-
- <para>This is because &man.ppp.8; is trying to negotiate Predictor1
- compression, and the peer does not want to negotiate any
- compression at all. The messages are harmless, but if you
- wish to remove them, you can disable Predictor1 compression
- locally too:</para>
-
- <programlisting>disable pred1</programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-lockup-ioerrors">
- <para>Why does &man.ppp.8; lock up during file transfers with IO
- errors?</para>
- </question>
-
- <answer>
- <para>Under FreeBSD 2.2.2 and before, there was a bug in the
- tun driver that prevents incoming packets of a size larger
- than the tun interface's MTU size. Receipt of a packet
- greater than the MTU size results in an IO error being logged
- via syslogd.</para>
-
- <para>The PPP specification says that an MRU of 1500 should
- <emphasis>always</emphasis> be accepted as a minimum,
- despite any LCP negotiations, therefore it is possible that
- should you decrease the MTU to less than 1500, your ISP will
- transmit packets of 1500 regardless, and you will tickle this
- non-feature - locking up your link.</para>
-
- <para>The problem can be circumvented by never setting an MTU of
- less than 1500 under FreeBSD 2.2.2 or before.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-connectionspeed">
- <para>Why does &man.ppp.8; not log my connection speed?</para>
- </question>
-
- <answer>
-
- <para>In order to log all lines of your modem
- <quote>conversation</quote>, you must enable the
- following:</para>
-
- <programlisting>set log +connect</programlisting>
-
- <para>This will make &man.ppp.8; log
- everything up until the last requested <quote>expect</quote>
- string.</para>
-
- <para>If you wish to see your connect speed and are using PAP
- or CHAP (and therefore do not have anything to
- <quote>chat</quote> after the CONNECT in the dial script - no
- <literal>set login</literal> script), you must make sure that
- you instruct &man.ppp.8; to <quote>expect</quote> the whole CONNECT
- line, something like this:</para>
-
- <programlisting>set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 4 \
- \"\" ATZ OK-ATZ-OK ATDT\\T TIMEOUT 60 CONNECT \\c \\n"</programlisting>
-
- <para>Here, we get our CONNECT, send nothing, then expect a
- line-feed, forcing &man.ppp.8; to read
- the whole CONNECT response.</para>
-
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-ignores-backslash">
- <para>Why does &man.ppp.8; ignore the <literal>\</literal> character
- in my chat script?</para>
- </question><answer>
-
- <para>Ppp parses each line in your config files so that it can
- interpret strings such as
- <literal>set phone "123 456 789"</literal> correctly (and
- realize that the number is actually only
- <emphasis>one</emphasis> argument. In order to specify a
- <literal>&quot;</literal> character, you must escape it
- using a backslash (<literal>\</literal>).</para>
-
- <para>When the chat interpreter parses each argument, it
- re-interprets the argument in order to find any special
- escape sequences such as <literal>\P</literal> or
- <literal>\T</literal> (see the man page). As a result of this
- double-parsing, you must remember to use the correct number of
- escapes.</para>
-
- <para>If you wish to actually send a <literal>\</literal>
- character to (say) your modem, you would need something
- like:</para>
-
- <programlisting>set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK"</programlisting>
-
- <para>resulting in the following sequence:</para>
-
- <programlisting>ATZ
-OK
-AT\X
-OK</programlisting>
-
- <para>or</para>
-
- <programlisting>set phone 1234567
-set dial "\"\" ATZ OK ATDT\\T"</programlisting>
-
- <para>resulting in the following sequence:</para>
-
- <programlisting>ATZ
-OK
-ATDT1234567</programlisting>
-
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-segfault-nocore">
- <para>Why does &man.ppp.8; get a seg-fault, but I see no
- <filename>ppp.core</filename> file?</para>
- </question>
-
- <answer>
- <para>Ppp (or any other program for that matter) should never
- dump core. Because &man.ppp.8; runs with an effective user id of 0,
- the operating system will not write &man.ppp.8;'s core image to disk
- before terminating it. If, however &man.ppp.8;
- is actually terminating due to a
- segmentation violation or some other signal that normally
- causes core to be dumped, <emphasis>and</emphasis>
- you are sure you are using the latest version (see the start of
- this section), then you should do the following:</para>
-
- <screen>&prompt.user; <userinput>tar xfz ppp-*.src.tar.gz</userinput>
-&prompt.user; <userinput>cd ppp*/ppp</userinput>
-&prompt.user; <userinput>echo STRIP= &gt;&gt;Makefile</userinput>
-&prompt.user; <userinput>echo CFLAGS+=-g &gt;&gt;Makefile</userinput>
-&prompt.user; <userinput>make clean all</userinput>
-&prompt.user; <userinput>su</userinput>
-&prompt.root; <userinput>make install</userinput>
-&prompt.root; <userinput>chmod 555 /usr/sbin/ppp</userinput></screen>
-
- <para>You will now have a debuggable version of &man.ppp.8; installed.
- You will have to be <username>root</username> to run &man.ppp.8; as all of its privileges
- have been revoked. When you start &man.ppp.8;, take a careful note
- of what your current directory was at the time.</para>
-
- <para>Now, if and when &man.ppp.8; receives the segmentation violation,
- it will dump a core file called <filename>ppp.core</filename>. You should then do
- the following:</para>
-
- <screen>&prompt.user; <userinput>su</userinput>
-&prompt.root; <userinput>gdb /usr/sbin/ppp ppp.core</userinput>
-<prompt>(gdb)</prompt> <userinput>bt</userinput>
-.....
-<prompt>(gdb)</prompt> <userinput>f 0</userinput>
-....
-<prompt>(gdb)</prompt> <userinput>i args</userinput>
-....
-<prompt>(gdb)</prompt> <userinput>l</userinput>
-.....</screen>
-
- <para>All of this information should be given alongside your
- question, making it possible to diagnose the problem.</para>
-
- <para>If you are familiar with gdb, you may wish to find out some
- other bits and pieces such as what actually caused the dump and
- the addresses &amp; values of the relevant variables.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-autodialprocess-noconnect">
- <para>Why does the process that forces a dial in auto mode never
- connect?</para>
- </question>
-
- <answer>
- <para>This was a known problem with
- &man.ppp.8; set up to negotiate a
- dynamic local IP number with the peer in auto mode. It is
- fixed in the latest version - search the man page for
- <literal>iface</literal>.</para>
-
- <para>The problem was that when that initial program calls
- &man.connect.2;, the IP number of the tun interface is assigned
- to the socket endpoint. The kernel creates the first outgoing
- packet and writes it to the tun device.
- &man.ppp.8; then reads the packet and
- establishes a connection. If, as a result of
- &man.ppp.8;'s dynamic IP assignment, the
- interface address is changed, the original socket endpoint will
- be invalid. Any subsequent packets sent to the peer will
- usually be dropped. Even if they are not, any responses will
- not route back to the originating machine as the IP number is
- no longer owned by that machine.</para>
-
- <para>There are several theoretical ways to approach this
- problem. It would be nicest if the peer would re-assign the
- same IP number if possible <literal>:-)</literal>
- The current version of &man.ppp.8; does
- this, but most other implementations do not.</para>
-
- <para>The easiest method from our side would be to never change
- the tun interface IP number, but instead to change all outgoing
- packets so that the source IP number is changed from the
- interface IP to the negotiated IP on the fly. This is
- essentially what the <literal>iface-alias</literal> option in
- the latest version of &man.ppp.8; is
- doing (with the help of
- &man.libalias.3; and &man.ppp.8;'s <option>-nat</option> switch) -
- it is maintaining all previous interface addresses and NATing
- them to the last negotiated address.</para>
-
- <para>Another alternative (and probably the most reliable) would
- be to implement a system call that changes all bound sockets
- from one IP to another. &man.ppp.8; would
- use this call to modify the sockets of all existing programs
- when a new IP number is negotiated. The same system call could
- be used by dhcp clients when they are forced to re-bind() their
- sockets.</para>
-
- <para>Yet another possibility is to allow an interface to be
- brought up without an IP number. Outgoing packets would be
- given an IP number of 255.255.255.255 up until the first
- SIOCAIFADDR ioctl is done. This would result in fully binding
- the socket. It would be up to &man.ppp.8;
- to change the source IP number, but only if it is set to
- 255.255.255.255, and only the IP number and IP checksum would
- need to change. This, however is a bit of a hack as the kernel
- would be sending bad packets to an improperly configured
- interface, on the assumption that some other mechanism is
- capable of fixing things retrospectively.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-nat-games">
- <para>Why do most games not work with the -nat switch?</para>
- </question>
-
- <answer>
- <para>The reason games and the like do not work when libalias
- is in use is that the machine on the outside will try to open a
- connection or send (unsolicited) UDP packets to the machine on
- the inside. The NAT software does not know that it should send
- these packets to the interior machine.</para>
-
- <para>To make things work, make sure that the only thing
- running is the software that you are having problems with, then
- either run tcpdump on the tun interface of the gateway or
- enable &man.ppp.8; tcp/ip logging (<literal>set log +tcp/ip</literal>)
- on the gateway.</para>
-
- <para>When you start the offending software, you should see
- packets passing through the gateway machine. When something
- comes back from the outside, it will be dropped (that is the
- problem). Note the port number of these packets then shut down
- the offending software. Do this a few times to see if the port
- numbers are consistent. If they are, then the following line in
- the relevant section of <filename>/etc/ppp/ppp.conf</filename> will make the
- software functional:</para>
-
- <programlisting>nat port <replaceable>proto</replaceable> <replaceable>internalmachine</replaceable>:<replaceable>port</replaceable> <replaceable>port</replaceable></programlisting>
-
- <para>where <replaceable>proto</replaceable> is either
- <literal>tcp</literal> or <literal>udp</literal>,
- <replaceable>internalmachine</replaceable> is the machine that
- you want the packets to be sent to and
- <replaceable>port</replaceable> is the destination port number
- of the packets.</para>
-
- <para>You will not be able to use the software on other machines
- without changing the above command, and running the software
- on two internal machines at the same time is out of the question
- - after all, the outside world is seeing your entire internal
- network as being just a single machine.</para>
-
- <para>If the port numbers are not consistent, there are three
- more options:</para>
-
- <orderedlist>
- <listitem>
- <para>Submit support in
- libalias. Examples of <quote>special cases</quote> can be found
- in <filename>/usr/src/lib/libalias/alias_*.c</filename>
- (<filename>alias_ftp.c</filename> is a good prototype). This
- usually involves reading certain recognised outgoing packets,
- identifying the instruction that tells the outside machine to
- initiate a connection back to the internal machine on a
- specific (random) port and setting up a <quote>route</quote> in
- the alias table so that the subsequent packets know where to
- go.</para>
-
- <para>This is the most difficult solution, but it is the best
- and will make the software work with multiple machines.</para>
- </listitem>
-
- <listitem>
- <para>Use a proxy. The
- application may support socks5 for example, or (as in the
- <quote>cvsup</quote> case) may have a <quote>passive</quote>
- option that avoids ever requesting that the peer open
- connections back to the local machine.</para>
- </listitem>
-
- <listitem>
- <para>Redirect everything to
- the internal machine using <literal>nat addr</literal>. This
- is the sledge-hammer approach.</para>
- </listitem>
- </orderedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="useful-port-numbers">
- <para>Has anybody made a list of useful port numbers?</para>
- </question><answer>
-
- <para>Not yet, but this is intended to grow into such a list
- (if any interest is shown). In each example,
- <replaceable>internal</replaceable> should be replaced with
- the IP number of the machine playing the game.</para>
-
- <itemizedlist>
- <listitem>
- <para><application>Asheron's Call</application></para>
-
- <para><literal>nat port udp
- <replaceable>internal</replaceable>
- :65000 65000</literal></para>
-
- <para>Manually change the port number within the game to
- 65000. If you have got a number of machines that you wish
- to play on assign a unique port number for each (i.e.
- 65001, 65002, etc) and add a <literal>nat port</literal>
- line for each one.</para>
- </listitem>
-
- <listitem>
- <para><application>Half Life</application></para>
-
- <para><literal>nat port udp
- <replaceable>internal</replaceable>:27005
- 27015</literal></para>
- </listitem>
-
- <listitem>
- <para><application>PCAnywhere 8.0</application></para>
-
- <para><literal>nat port udp
- <replaceable>internal</replaceable>:5632
- 5632</literal></para>
-
- <para><literal>nat port tcp
- <replaceable>internal</replaceable>:5631
- 5631</literal></para>
- </listitem>
-
- <listitem>
- <para><application>Quake</application></para>
-
- <para><literal>nat port udp
- <replaceable>internal</replaceable>:6112
- 6112</literal></para>
-
- <para>Alternatively, you may want to take a look at <ulink
- url="http://www.battle.net/support/proxy/">
- www.battle.net</ulink> for Quake proxy support.</para>
- </listitem>
-
- <listitem>
- <para><application>Quake 2</application></para>
-
- <para><literal>nat port udp
- <replaceable>internal</replaceable>:27901
- 27910</literal></para>
- <para><literal>nat port udp
- <replaceable>internal</replaceable>:60021
- 60021</literal></para>
- <para><literal>nat port udp
- <replaceable>internal</replaceable>:60040
- 60040</literal></para>
- </listitem>
-
- <listitem>
- <para><application>Red Alert</application></para>
-
- <para><literal>nat port udp
- <replaceable>internal</replaceable>:8675
- 8675</literal></para>
-
- <para><literal>nat port udp
- <replaceable>internal</replaceable>:5009
- 5009</literal></para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="fcs-errors">
- <para>What are FCS errors?</para>
- </question>
-
- <answer>
- <para>FCS stands for <literal>F</literal>rame
- <literal>C</literal>heck
- <literal>S</literal>equence. Each PPP packet
- has a checksum attached to ensure that the data being
- received is the data being sent. If the FCS of an incoming
- packet is incorrect, the packet is dropped and the HDLC FCS
- count is increased. The HDLC error values can be displayed
- using the <literal>show hdlc</literal> command.</para>
-
- <para>If your link is bad (or if your serial driver is dropping
- packets), you will see the occasional FCS error. This is not
- usually worth worrying about although it does slow down the
- compression protocols substantially. If you have an external
- modem, make sure your cable is properly shielded from
- interference - this may eradicate the problem.</para>
-
- <para>If your link freezes as soon as you have connected and you
- see a large number of FCS errors, this may be because your link
- is not 8 bit clean. Make sure your modem is not using software
- flow control (XON/XOFF). If your datalink
- <emphasis>must</emphasis> use software flow control, use the
- command <literal>set accmap 0x000a0000</literal> to tell
- &man.ppp.8; to escape the <literal>^Q</literal> and
- <literal>^S</literal> characters.</para>
-
- <para>Another reason for seeing too many FCS errors may be that
- the remote end has stopped talking <acronym>PPP</acronym>. You
- may want to enable <literal>async</literal> logging at this
- point to determine if the incoming data is actually a login or
- shell prompt. If you have a shell prompt at the remote end,
- it is possible to terminate &man.ppp.8; without dropping the line by
- using the <literal>close lcp</literal> command (a following
- <literal>term</literal> command will reconnect you to the shell
- on the remote machine.</para>
-
- <para>If nothing in your log file indicates why the link might
- have been terminated, you should ask the remote administrator
- (your ISP?) why the session was terminated.</para>
- </answer>
- </qandaentry>
-
- <qandaentry id="PPPoEwithNAT">
- <question id="macos-win98-pppoe-freeze">
- <para>Why do MacOS and Windows 98 connections freeze when
- running PPPoE on the gateway?</para>
- </question>
-
- <answer>
- <para>Thanks to Michael Wozniak
- <email>mwozniak@netcom.ca</email> for figuring this out and
- Dan Flemming <email>danflemming@mac.com</email> for the Mac
- solution:</para>
-
- <para>This is due to what is called a <quote>Black Hole</quote>
- router. MacOS and Windows 98 (and maybe other Microsoft OSs)
- send TCP packets with a requested segment size too big to fit
- into a PPPoE frame (MTU is 1500 by default for Ethernet)
- <emphasis>and</emphasis> have the <quote>do not
- fragment</quote> bit set (default of TCP) and the Telco router
- is not sending ICMP <quote>must fragment</quote> back to the
- www site you are trying to load. (Alternatively, the router is
- sending the ICMP packet correctly, but the firewall at the www
- site is dropping it.) When the www server is sending
- you frames that do not fit into the PPPoE pipe the Telco router
- drops them on the floor and your page does not load (some
- pages/graphics do as they are smaller than a MSS.) This seems
- to be the default of most Telco PPPoE configurations (if only
- they knew how to program a router... sigh...)</para>
-
- <para>One fix is to use regedit on your 95/98 boxes to add the
- following registry entry...</para>
-
- <programlisting>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\MaxMTU</programlisting>
-
- <para>It should be a string with a value <quote>1436</quote>, as
- some ADSL routers are reported to be unable to deal with packets
- larger than this. This registry key has been changed to
- <literal>Tcpip\Parameters\Interfaces\<replaceable>ID for adapter</replaceable>\MTU</literal>
- in Windows 2000 and becomes a DWORD.</para>
-
- <para>Refer to the Microsoft Knowledge Base documents <ulink
- url="http://support.microsoft.com/support/kb/articles/Q158/4/74.asp">Q158474
- - Windows TCPIP Registry Entries</ulink> and <ulink
- url="http://support.microsoft.com/support/kb/articles/Q120/6/42.asp">Q120642
- - TCPIP & NBT Configuration Parameters for Windows
- NT</ulink> for more information on changing Windows MTU to
- work with a NAT router.</para>
-
- <para>Another regedit possibility under Windows 2000 is to
- set the
- <literal>Tcpip\Parameters\Interfaces\<replaceable>ID for
- adapter</replaceable>\EnablePMTUBHDetect</literal> DWORD
- to 1 as mentioned in the Microsoft document 120642
- mentioned above.</para>
-
- <para>Unfortunately, MacOS does not provide an interface for
- changing TCP/IP settings. However, there is commercial software
- available, such as OTAdvancedTuner (OT for OpenTransport, the
- MacOS TCP/IP stack) by <ulink
- url="http://www.softworks.com/">Sustainable Softworks</ulink>,
- that will allow users to customize TCP/IP settings. MacOS NAT
- users should select <literal>ip_interface_MTU</literal> from
- the drop-down menu, enter <literal>1450</literal> instead of
- <literal>1500</literal> in the box, click the box next to
- <literal>Save as Auto Configure</literal>, and click
- <literal>Make Active</literal>.</para>
-
- <para>The latest version of &man.ppp.8;
- (2.3 or greater) has an <command>enable tcpmssfixup</command>
- command that will automatically adjust the MSS to an appropriate
- value. This facility is enabled by default. If you are stuck
- with an older version of &man.ppp.8;, you
- may want to look at the <application>tcpmssd</application>
- port.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="desperation">
- <para>None of this helps - I am desperate! What can I do?</para>
- </question>
-
- <answer>
- <para>If all else fails, send as much information as you can,
- including your config files, how you are starting
- &man.ppp.8;, the relevant parts of your
- log file and the output of the <command>netstat -rn</command>
- command (before and after connecting) to the &a.questions; or
- the <ulink url="news:comp.unix.bsd.freebsd.misc">
- comp.unix.bsd.freebsd.misc</ulink> news group, and someone
- should point you in the right direction.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="serial">
- <title>Serial Communications</title>
-
- <para>This section answers common questions about serial
- communications with FreeBSD. PPP and SLIP are covered in the
- <xref linkend="networking" remap="Networking"/> section.</para>
-
-
- <qandaset>
- <qandaentry>
- <question id="found-serial">
- <para>How do I tell if FreeBSD found my serial ports?</para>
- </question>
-
- <answer>
- <para>As the FreeBSD kernel boots, it will probe for the serial
- ports in your system for which the kernel was configured.
- You can either watch your system closely for the messages it
- prints or run the command</para>
-
- <screen>&prompt.user; <userinput>dmesg | grep sio</userinput></screen>
-
- <para>after your system is up and running.</para>
-
- <para>Here is some example output from the above command:</para>
-
- <programlisting>sio0 at 0x3f8-0x3ff irq 4 on isa
-sio0: type 16550A
-sio1 at 0x2f8-0x2ff irq 3 on isa
-sio1: type 16550A</programlisting>
-
- <para>This shows two serial ports. The first is on irq 4, is
- using port address <literal>0x3f8</literal>, and has a
- 16550A-type UART chip. The second uses the same kind of chip
- but is on irq 3 and is at port address <literal>0x2f8</literal>.
- Internal modem cards are treated just like serial ports---except
- that they always have a modem <quote>attached</quote> to the
- port.</para>
-
- <para>The <filename>GENERIC</filename> kernel includes support
- for two serial ports using the same irq and port address
- settings in the above example. If these settings are not
- right for your system, or if you have added modem cards or have
- more serial ports than your kernel is configured for, just
- reconfigure your kernel. See section
- <link linkend="make-kernel">about building a kernel</link> for
- more details.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="found-modem">
- <para>How do I tell if FreeBSD found my modem cards?</para>
- </question>
-
- <answer>
- <para>Refer to the answer to the previous question.</para>
-
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="missing-tty0X">
- <para>I just upgraded to 2.0.5 and my
- <devicename>tty0<replaceable>X</replaceable></devicename>
- are missing! How do I solve this problem?</para>
- </question>
-
- <answer>
- <para>Do not worry, they have been merged with the
- <devicename>ttyd<replaceable>X</replaceable></devicename> devices. You will have to change
- any old configuration files you have, though.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="access-serial-ports">
- <para>How do I access the serial ports on FreeBSD?</para>
- </question>
-
- <answer>
- <para>The third serial port,
- <devicename>sio2</devicename>
- (see &man.sio.4;, known as COM3 in DOS), is on <devicename>/dev/cuaa2</devicename>
- for dial-out devices, and on <devicename>/dev/ttyd2</devicename>
- for dial-in devices. What is the difference between these two
- classes of devices?</para>
-
- <para>You use <devicename>ttyd<replaceable>X</replaceable></devicename> for dial-ins. When
- opening <devicename>/dev/ttyd<replaceable>X</replaceable></devicename> in blocking mode, a
- process will wait for the corresponding
- <devicename>cuaa<replaceable>X</replaceable></devicename> device to become inactive, and then
- wait for the carrier detect line to go active. When you open
- the <devicename>cuaa<replaceable>X</replaceable></devicename> device, it makes sure the serial
- port is not already in use by the <devicename>ttyd<replaceable>X</replaceable></devicename>
- device. If the port is available, it <quote>steals</quote> it
- from the <devicename>ttyd<replaceable>X</replaceable></devicename> device. Also, the
- <devicename>cuaa<replaceable>X</replaceable></devicename> device does not care about carrier
- detect. With this scheme and an auto-answer modem, you can have
- remote users log in and you can still dial out with the same
- modem and the system will take care of all the
- conflicts.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="enable-multiport-serial">
- <para>How do I enable support for a multiport serial
- card?</para>
- </question>
-
- <answer>
- <para>Again, the section on kernel configuration provides
- information about configuring your kernel. For a multiport
- serial card, place an &man.sio.4; line
- for each serial port on the card in the kernel configuration
- file. But place the irq and vector specifiers on only one of
- the entries. All of the ports on the card should share one irq.
- For consistency, use the last serial port to specify the irq.
- Also, specify the <literal>COM_MULTIPORT</literal>
- option.</para>
-
- <para>The following example is for an AST 4-port serial card on
- irq 7:</para>
-
- <programlisting>options "COM_MULTIPORT"
-device sio4 at isa? port 0x2a0 tty flags 0x781
-device sio5 at isa? port 0x2a8 tty flags 0x781
-device sio6 at isa? port 0x2b0 tty flags 0x781
-device sio7 at isa? port 0x2b8 tty flags 0x781 irq 7 vector siointr</programlisting>
-
- <para>The flags indicate that the master port has minor number 7
- (<literal>0x700</literal>), diagnostics enabled during probe
- (<literal>0x080</literal>), and all the ports share an irq
- (<literal>0x001</literal>).</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="multiport-serial-share-irq">
- <para>Can FreeBSD handle multiport serial cards sharing
- irqs?</para>
- </question>
-
- <answer>
- <para>Not yet. You will have to use a different irq for each
- card.</para>
-
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="default-serial-params">
- <para>Can I set the default serial parameters for a
- port?</para>
- </question>
-
- <answer>
- <para>The <devicename>ttyd<replaceable>X</replaceable></devicename> (or
- <devicename>cuaa<replaceable>X</replaceable></devicename>) device is the regular device
- you will want to open for your applications. When a process
- opens the device, it will have a default set of terminal I/O
- settings. You can see these settings with the command</para>
-
- <screen>&prompt.root; <userinput>stty -a -f /dev/ttyd1</userinput></screen>
-
- <para>When you change the settings to this device, the settings
- are in effect until the device is closed. When it is reopened,
- it goes back to the default set. To make changes to the
- default set, you can open and adjust the settings of the
- <quote>initial state</quote> device. For example, to turn on
- <acronym>CLOCAL</acronym> mode, 8 bits, and
- <acronym>XON/XOFF</acronym> flow control by default for
- ttyd5, do:</para>
-
- <screen>&prompt.root; <userinput>stty -f /dev/ttyid5 clocal cs8 ixon ixoff</userinput></screen>
-
- <para>A good place to do this is in
- <filename>/etc/rc.serial</filename>. Now, an application will
- have these settings by default when it opens
- <filename>ttyd5</filename>. It can still change these settings
- to its liking, though.</para>
-
- <para>You can also prevent certain settings from being changed
- by an application by making adjustments to the
- <quote>lock state</quote> device. For example, to lock the
- speed of <devicename>ttyd5</devicename> to 57600 bps, do</para>
-
- <screen>&prompt.root; <userinput>stty -f /dev/ttyld5 57600</userinput></screen>
-
- <para>Now, an application that opens <devicename>ttyd5</devicename>
- and tries to change the speed of the port will be stuck with
- 57600 bps.</para>
-
- <para>Naturally, you should make the initial state and lock state
- devices writable only by <username>root</username>. The
- &man.MAKEDEV.8;
- script does <emphasis>NOT</emphasis> do this when it creates the
- device entries.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="enable-dialup">
- <para>How can I enable dialup logins on my modem?</para>
- </question>
-
- <answer>
- <para>So you want to become an Internet service provider, eh?
- First, you will need one or more modems that can auto-answer.
- Your modem will need to assert carrier-detect when it detects a
- carrier and not assert it all the time. It will need to hang up
- the phone and reset itself when the data terminal ready
- (<acronym>DTR</acronym>) line goes from on to off. It should
- probably use <filename>RTS/CTS</filename> flow control or no
- local flow control at all. Finally, it must use a constant
- speed between the computer and itself, but (to be nice to your
- callers) it should negotiate a speed between itself and the
- remote modem.</para>
-
- <para>For many Hayes command-set--compatible modems, this
- command will make these settings and store them in
- nonvolatile memory:</para>
-
- <programlisting>AT &amp;C1 &amp;D3 &amp;K3 &amp;Q6 S0=1 &amp;W</programlisting>
-
- <para>See the section <link linkend="direct-at">on sending AT
- commands</link> below for information on how to make these
- settings without resorting to an MS-DOS terminal program.</para>
-
- <para>Next, make an entry in
- <filename>/etc/ttys</filename> (see &man.ttys.5;) for the modem. This file lists all the ports
- on which the operating system will await logins. Add a line
- that looks something like this:</para>
-
- <programlisting>ttyd1 "/usr/libexec/getty std.57600" dialup on insecure</programlisting>
-
- <para>This line indicates that the second serial port
- (<devicename>/dev/ttyd1</devicename>) has a modem connected
- running at 57600 bps and no parity
- (<literal>std.57600</literal>, which comes from the file
- <filename>/etc/gettytab</filename>, see &man.gettytab.5;).
- The terminal type for this port is <literal>dialup</literal>.
- The port is <literal>on</literal> and is
- <literal>insecure</literal>---meaning <username>root</username>
- logins on the port are not allowed. For dialin ports like this one,
- use the <devicename>ttyd<replaceable>X</replaceable></devicename>
- entry.</para>
-
- <para>It is common practice to use <literal>dialup</literal> as
- the terminal type. Many users set up in their <filename>.profile</filename> or
- <filename>.login</filename> files a prompt for the actual terminal type if the
- starting type is dialup. The example shows the port as
- insecure. To become <username>root</username> on this port, you
- have to login as a regular user, then &man.su.1; to become
- <username>root</username>. If you use <literal>secure</literal>
- then <username>root</username> can login in directly.</para>
-
- <para>After making modifications to
- <filename>/etc/ttys</filename>, you need to send a hangup or
- <acronym>HUP</acronym> signal to the
- &man.init.8; process:</para>
-
- <screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen>
-
- <para>This forces the &man.init.8; process to reread
- <filename>/etc/ttys</filename>. The init process will then start getty
- processes on all <literal>on</literal> ports. You can find
- out if logins are available for your port by typing</para>
-
- <screen>&prompt.user; <userinput>ps -ax | grep '[t]tyd1'</userinput></screen>
-
- <para>You should see something like:</para>
-
- <programlisting>747 ?? I 0:00.04 /usr/libexec/getty std.57600 ttyd1</programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="dumb-terminal">
- <para>How can I connect a dumb terminal to my FreeBSD
- box?</para>
- </question>
-
- <answer>
- <para>If you are using another computer as a terminal into your
- FreeBSD system, get a null modem cable to go between the two
- serial ports. If you are using an actual terminal, see its
- accompanying instructions.</para>
-
- <para>Then, modify
- <filename>/etc/ttys</filename> (see &man.ttys.5;), like above. For example, if you are
- hooking up a WYSE-50 terminal to the fifth serial port,
- use an entry like this:</para>
-
- <programlisting>ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure</programlisting>
-
- <para>This example shows that the port on
- <devicename>/dev/ttyd4</devicename> has a wyse50 terminal
- connected at 38400 bps with no parity
- (<literal>std.38400</literal> from
- <filename>/etc/gettytab</filename>, see &man.gettytab.5;) and <username>root</username> logins are
- allowed (<literal>secure</literal>).</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="cannot-tip">
- <para>Why can I not run <command>tip</command> or
- <command>cu</command>?</para>
- </question>
-
- <answer>
- <para>On your system, the programs &man.tip.1;
- and &man.cu.1;
- are probably executable only by
- <username>uucp</username>
- and group <groupname>dialer</groupname>. You can use the group
- <groupname>dialer</groupname> to control who has access to your
- modem or remote systems. Just add yourself to group
- dialer.</para>
-
- <para>Alternatively, you can let everyone on your system
- run &man.tip.1; and &man.cu.1; by
- typing:</para>
-
- <screen>&prompt.root; <userinput>chmod 4511 /usr/bin/cu</userinput>
-&prompt.root; <userinput>chmod 4511 /usr/bin/tip</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="hayes-unsupported">
- <para>My stock Hayes modem is not supported---what
- can I do?</para>
- </question>
-
- <answer>
- <para>Actually, the man page for &man.tip.1; is
- out of date. There is a generic Hayes dialer already built in.
- Just use <literal>at=hayes</literal> in your
- <filename>/etc/remote</filename> (see &man.remote.5;) file.</para>
-
- <para>The Hayes driver is not smart enough to recognize some of
- the advanced features of newer modems---messages like
- <literal>BUSY</literal>, <literal>NO DIALTONE</literal>, or
- <literal>CONNECT 115200</literal> will just confuse it. You
- should turn those messages off when you use &man.tip.1;
- (using <literal>ATX0&amp;W</literal>).</para>
-
- <para>Also, the dial timeout for &man.tip.1; is 60
- seconds. Your modem should use something less, or else tip
- will think there is a communication problem. Try
- <literal>ATS7=45&amp;W</literal>.</para>
-
- <para>Actually, as shipped &man.tip.1; does not yet
- support it fully. The solution is to edit the file
- <filename>tipconf.h</filename> in the directory
- <filename>/usr/src/usr.bin/tip/tip</filename>. Obviously you
- need the source distribution to do this.</para>
-
- <para>Edit the line <literal>#define HAYES 0</literal>
- to <literal>#define HAYES 1</literal>. Then
- <command>make</command> and <command>make install</command>.
- Everything works nicely after that.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="direct-at">
- <para>How am I expected to enter these AT commands?</para>
- </question>
-
- <answer>
- <para>Make what is called a <quote>direct</quote> entry in your
- <filename>/etc/remote</filename> file (see &man.remote.5;). For example, if your modem is hooked
- up to the first serial port, <devicename>/dev/cuaa0</devicename>,
- then put in the following line:</para>
-
- <programlisting>cuaa0:dv=/dev/cuaa0:br#19200:pa=none</programlisting>
-
- <para>Use the highest bps rate your modem supports in the br
- capability. Then, type
- <command>tip <devicename>cuaa0</devicename></command> (see &man.tip.1;)
- and you will be connected to your modem.</para>
-
- <para>If there is no <devicename>/dev/cuaa0</devicename> on your
- system, do this:</para>
-
- <screen>&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>sh MAKEDEV cuaa0</userinput></screen>
-
- <para>Or use cu as <username>root</username> with the following command:</para>
-
- <screen>&prompt.root; <userinput>cu -l<replaceable>line</replaceable> -s<replaceable>speed</replaceable></userinput></screen>
-
- <para>with <replaceable>line</replaceable> being the serial port (e.g.
- <devicename>/dev/cuaa0</devicename>) and <replaceable>speed</replaceable> being the speed
- (e.g.<literal>57600</literal>). When you are done entering
- the AT commands hit <literal>~.</literal> to exit.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="gt-failure">
- <para>Why does the <literal>&lt;@&gt;</literal> sign for the pn
- capability not work?</para></question><answer>
-
- <para>The <literal>&lt;@&gt;</literal> sign in the phone number
- capability tells tip to look in
- <filename>/etc/phones</filename> for a phone number. But the
- <literal>&lt;@&gt;</literal> sign is also a special character
- in capability files like <filename>/etc/remote</filename>.
- Escape it with a backslash:</para>
-
- <programlisting>pn=\@</programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="dial-command-line">
- <para>How can I dial a phone number on the command
- line?</para>
- </question><answer>
-
- <para>Put what is called a <quote>generic</quote> entry in your
- <filename>/etc/remote</filename> file (see &man.remote.5;). For example:</para>
-
- <programlisting>tip115200|Dial any phone number at 115200 bps:\
- :dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du:
-tip57600|Dial any phone number at 57600 bps:\
- :dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du:</programlisting>
-
- <para>Then you can do something like <command>tip -115200
- 5551234</command>. If you prefer &man.cu.1;
- over
- &man.tip.1;, use a generic cu entry:</para>
-
- <programlisting>cu115200|Use cu to dial any number at 115200bps:\
- :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:</programlisting>
-
- <para>and type <command>cu 5551234 -s 115200</command>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="set-bps">
- <para>Do I have to type in the bps rate every time I do
- that?</para>
- </question><answer>
-
- <para>Put in an entry for <literal>tip1200</literal> or
- <literal>cu1200</literal>, but go ahead and use whatever bps
- rate is appropriate with the br capability.
- &man.tip.1;
- thinks a good default is 1200 bps which is why it looks for
- a <literal>tip1200</literal> entry. You do not have to use 1200
- bps, though.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="terminal-server">
- <para>How can I more easily access a number of hosts through a
- terminal server?</para>
- </question>
-
- <answer>
- <para>Rather than waiting until you are connected and typing
- <literal>CONNECT <replaceable>host</replaceable></literal>
- each time, use tip's <literal>cm</literal> capability. For
- example, these entries in
- <filename>/etc/remote</filename> (see &man.remote.5;):</para>
-
- <programlisting>pain|pain.deep13.com|Forrester's machine:\
- :cm=CONNECT pain\n:tc=deep13:
-muffin|muffin.deep13.com|Frank's machine:\
- :cm=CONNECT muffin\n:tc=deep13:
-deep13:Gizmonics Institute terminal server:\
- :dv=/dev/cuaa2:br#38400:at=hayes:du:pa=none:pn=5551234:</programlisting>
-
- <para>will let you type <command>tip pain</command> or
- <command>tip muffin</command> to connect to the hosts
- <hostid>pain</hostid> or <hostid>muffin</hostid>; and
- <command>tip deep13</command> to get to the terminal
- server.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="tip-multiline">
- <para>Can tip try more than one line for each site?</para>
- </question>
-
- <answer>
- <para>This is often a problem where a university has several
- modem lines and several thousand students trying to use
- them...</para>
-
- <para>Make an entry for your university in
- <filename>/etc/remote</filename> (see &man.remote.5;) and use <literal>&lt;\@&gt;</literal> for
- the <literal>pn</literal> capability:</para>
-
- <programlisting>big-university:\
- :pn=\@:tc=dialout
-dialout:\
- :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:</programlisting>
-
- <para>Then, list the phone numbers for the university in
- <filename>/etc/phones</filename> (see &man.phones.5;):</para>
-
- <programlisting>big-university 5551111
-big-university 5551112
-big-university 5551113
-big-university 5551114</programlisting>
-
- <para>&man.tip.1;
- will try each one in the listed order, then give
- up. If you want to keep retrying, run &man.tip.1;
- in a while loop.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="multi-controlp">
- <para>Why do I have to hit CTRL+P twice to send CTRL+P
- once?</para>
- </question>
-
- <answer>
- <para>CTRL+P is the default <quote>force</quote> character,
- used to tell &man.tip.1;
- that the next character is literal data. You can set the
- force character to any other character with the
- <literal>~s</literal> escape, which means <quote>set a
- variable</quote>.</para>
-
- <para>Type <literal>~sforce=<replaceable>single-char
- </replaceable></literal> followed by a newline.
- <replaceable>single-char</replaceable> is any single character.
- If you leave out <replaceable>single-char</replaceable>,
- then the force character is the nul character, which you can
- get by typing CTRL+2 or CTRL+SPACE. A pretty good value for
- <replaceable>single-char</replaceable> is SHIFT+CTRL+6, which
- I have seen only used on some terminal servers.</para>
-
- <para>You can have the force character be whatever you want by
- specifying the following in your
- <filename>$HOME/.tiprc</filename> file:</para>
-
- <programlisting>force=<replaceable>single-char</replaceable></programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="uppercase">
- <para>Why is everything I type suddenly in UPPER CASE?</para>
- </question>
-
- <answer>
- <para>You must have pressed CTRL+A, &man.tip.1;
- <quote>raise character</quote>, specially
- designed for people with broken caps-lock keys. Use
- <literal>~s</literal> as above and set the variable
- <quote>raisechar</quote> to something reasonable. In fact,
- you can set it to the same as the force character, if you
- never expect to use either of these features.</para>
-
- <para>Here is a sample .tiprc file perfect for Emacs users who
- need to type CTRL+2 and CTRL+A a lot:</para>
-
- <programlisting>force=^^
-raisechar=^^</programlisting>
-
-<para>The ^^ is SHIFT+CTRL+6.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="tip-filetransfer">
- <para>How can I do file transfers with
- <command>tip</command>?</para>
- </question>
-
- <answer>
- <para>If you are talking to another Unix system, you can send
- and receive files with <literal>~p</literal> (put) and
- <literal>~t</literal> (take). These commands run
- &man.cat.1; and
- &man.echo.1; on the remote system to accept and send files.
- The syntax is:</para>
-
- <programlisting>~p &lt;local-file&gt; [&lt;remote-file&gt;]
-~t &lt;remote-file&gt; [&lt;local-file&gt;]</programlisting>
-
- <para>There is no error checking, so you probably should use
- another protocol, like zmodem.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="zmodem-tip">
- <para>How can I run zmodem with
- <application>tip</application>?</para>
- </question>
-
- <answer>
- <para>First, install one of the zmodem programs from the
- ports collection (such as one of the two from the comms
- category, <application>lrzsz</application> or
- <application>rzsz</application>.</para>
-
- <para>To receive files, start the sending program on the
- remote end. Then, press enter and type
- <literal>~C rz</literal> (or <literal>~C lrz</literal> if you
- installed <application>lrzsz</application>) to begin
- receiving them locally.</para>
-
- <para>To send files, start the receiving program on the remote
- end. Then, press enter and type
- <literal>~C sz <replaceable>files</replaceable></literal>
- (or <literal>~C lsz <replaceable>files</replaceable></literal>)
- to send them to the remote system.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="cannot-find-serial">
- <para>Why does FreeBSD not find my serial ports, even
- when the settings are correct?</para>
- </question>
-
- <answer>
- <para>Motherboards and cards with Acer UARTs do not probe
- properly under the FreeBSD sio probe. Obtain a patch from
- <ulink url="http://www.lemis.com/serial-port-patch.html">
- www.lemis.com</ulink> to fix your problem.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="misc">
- <title>䥦UU˪D</title>
-
- <qandaset>
- <qandaentry>
- <question id="more-swap">
- <para>ƻ FreeBSD Ϊm(swap)Ŷ Linux hH</para>
- </question>
-
- <answer>
- <para>FreeBSDȬOݰ_ӸmŶ(swap)ΪLinuxhӤwCbƹWA
- äMCDntObAFreeBSDnNmLΪDO餺e
- JmŶ(swap)AHϱoDOiH󬰦IJvQϥΡC
- LinuxONmŶ(swap)Ψӧ@ѨMOD̲פqC
- WcϥθmŶ(swap)CO@ا󦳮IJvϥΥDO骺qC
- </para>
-
- <para>G@譱FreeBSDnϥθmŶ(swap)PɡAAݪ`
- NAFreeBSDä|NNҦF賣JmŶ(swap)CpA
- A~|b@]JK_ɫo{AӨtγQ˶iFmŶ(swap)C
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="top-freemem">
- <para>YϧڥuBּƵ{A <command>top</command> ܥX
- ӪѾlO٬Oܤ֡H</para>
- </question>
-
- <answer>
- <para>²檺׬OAҦϥΨ쪺mO鳣OQOOA
- 󥼳QA{ҧQΨ쪺ONQ֤(kernel)Ψӷ
- @ϺЧ֨(disk cache)CӳoذOQ &man.top.1; аO
- <literal>m(Inact)</literal>A<literal>֨(Cache)</literal>A
- H <literal>wİ(Buf)</literal>AítdbUӤPmtd
- ȦsơCQȦs(cached)ƥNtΤݭnhsCϺи˸m
- NiHoơApAiHɨtΪįC`ӨA&man.top.1;
- ܥX֪ <literal>m(Free)</literal> OOnAun
- XӪȤO <literal>D`</literal> CC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="aout-elf">
- <para>ƻn(ƻO) a.out M ELF ɮ榡H</para>
- </question>
-
- <answer>
- <para>nFѬFreebsdϥ <filename>ELF</filename> 榡AA
- n{Ѥ@UTئbثe Unix tΤ̳QsxΨ쪺ɮ榡G
- </para>
-
- <note>
- <para>b FreeBSD 3.x eAFreeBSD ϥ a.out 榡C</para>
- </note>
-
- <itemizedlist>
- <listitem>
- <para>&man.a.out.5;</para>
-
- <para>oO̦APO]O <quote>̨嫬</quote> Unixت
- 榡Coخ榡ɮרϥΤ@صuBKYAPɡAHۤ@
- ]NƦrΨӿѮ榡C(Ѧ &man.a.out.5; hԲӪ
- )C]tTӸ`ϡG .text .data .bss [W@ӲŸ
- ΦrC</para>
- </listitem>
-
- <listitem>
- <para><acronym>COFF</acronym></para>
-
- <para>SVR3تɮ榡CY]tF@Ӹ`ϪAҥHiHƤ
- .text .data .bss ٦h`ϡC</para>
- </listitem>
-
- <listitem>
- <para><acronym>ELF</acronym></para>
-
- <para>ELF <acronym>COFF</acronym> 榡~̡ADnSx
- iH㦳ƼƸ`ϬqAåiHϥ32-bitsάO64-bitsƭȡC
- DnIG <acronym>ELF</acronym> 榡ObCӨtΤu
- |@ ABI ]eDQ]pXӪCOAbƹWAo
- ]СC]AaϦbӥΪ SYSV @ɸ̡A]ܤ֦ SVR4A
- Solaris M SCO T ABIC</para>
-
- <para>ĶGABI(Application Binary Interface)CpG@wn½ĶA
- Ns <emphasis>ε{Gi줶</emphasis> nFC ABIQo
- iXӪηNAOFPϦbۦPCPUҵoiXӪε{A
- bPtΤWA@G(Binary Code)ۮeC軡A
- <acronym>Sun</acronym> ҴX <acronym>Solaris ABI</acronym>
- AOҰɯbۦP CPU Solaris tΤWAt@ӨҤlO
- Windows tΡCPݩ Intel x86 ɯۥѪbWindows
- 9x/meWindows NT/2k/XPC</para>
-
- <para>FreeBSDѤ@Ӥε{N{һݪABITOWAǦյ
- hѨMoӰDCаѦ &man.brandelf.1; HohTCi
- </para>
- </listitem>
- </itemizedlist>
-
- <para>FreeBSD Ӧ <quote>Dz</quote> }CbDzΤWAFreeBSD
- ϥ &man.a.out.5; 榡Ao˪޳NbnXN BSD QҩOiaC
- MAbFreeBSDWiHإߥHΥT <acronym>ELF</acronym>
- 榡ɮ(]t֤)CM, FreeBSDb@}lϹNw]榡ഫ ELFA
- OHLinux}lhWഫ <acronym>ELF</acronym> 榡ɡA
- ëDOFnk <filename>a.out</filename> 榡CۤϪAoO]
- e Linux@ɨ禡w(shared libraries)ĥΥHD
- (jump-table)¦޳Nh]pCoO@oi̷PxZABD`
- HϥΡA㨬uʪkCJMAwgsb
- <acronym>ELF</acronym> u㴣ѤF@ɨ禡w(shared libraries)
- MסAӥBAݰ_ӬO <quote>eêk</quote>A]Aһ
- ഫNNi]ഫC</para>
-
- <para>bFreeBSDpAڭ̪@ɨ禡w(shared libraries)M
- <application>SunOS</application> D`۪ABϥΡCMӡA
- q 3.0 }lAFreeBSD N <acronym>ELF</acronym> אּw]榡C
- MA<filename>a.out</filename> 榡¦pH몺nAOAڭ
- sĶu㪺g̡AGNU AL̤F
- <filename>a.out</filename> 榡䴩P@CboتpUA
- ڭ̥ۦ@t@ compiler M linkerA]ϱoڭ̵Lk
- q̷s GNU oiGonBC~A ISO-C++ ݨDAרO
- غcl(constructors)MѺcl(destructors)A]aʥӪ
- <acronym>ELF</acronym> ͤ䴩C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="binary-formats">
- <para>O, O, |ohP榡ɦsbO?</para>
- </question>
-
- <answer>
- <para>b·tӻLhAȦ²wsbCӦ]w²AM]
- up²檺tΡCa.out 榡O󨺭ӮɥNһݭnAӳQгy
- XӪ(ҦpPDP-11)CboA\hHյ۱N Unix ӨLx
- ɡAL̤]OdF a.out 榡ɡC]Ao玲 Motorola 68kA
- VAXen tΤwgϥΤFC</para>
-
- <para>MӡAHä|{C@owu{vQFApG
- nhBz@ǨơA CPU qƴN֤@IAåB]o֡Cn
- boطswWu@({b٬RISC)A<filename>a.out</filename>
- oخ榡NXAFCo˪{һݡAhɮ榡QoiX
- ӡAHѤ²B\h <filename>a.out</filename> 榡
- nįC蹳O <acronym>COFF</acronym>A
- <acronym>ECOFF</acronym>AwΤ@ǸHҩP榡ɯɳQгy
- XӡCOAoǮ榡wFU۪A즳@
- <acronym>ELF</acronym> X{C</para>
-
- <para>~A{nVӶVjAӺϺЪŶMDO۹ӻ
- pɡA@ɨ禡w(shared libraries)[QoiXӤFCboPɡA
- Ot(VM System)]ܱoVӶV륩CC@ضiBb
- <filename>a.out</filename>榡WQoiXӮɡAiΩʤ]P
- oVӶVCCt~AH٧Ʊ{bʺAJAάONwg
- LBSΪlƵ{XAǥH`٧hOСC{yb
- oӮɴ]Ko륩AH̤]Ʊb main e۰ʪhFC
- ]A\hcBtHĬ[ޥQΦb <filename>a.out</filename>
- 榡WhѨMoǰDCOAѩ <filename>a.out</filename> 榡
- ѪAnѨMoǰDݥIXhNήɶA{
- פjɡC <acronym>ELF</acronym> 榡iH@|ѨMo@
- DCOAnNӨtαqڥഫLhAN|u}hA]
- A <acronym>ELF</acronym>榡N|@}lP
- <filename>a.out</filename> æsC</para>
-
- <para>MӡAHۮɶLhAFreeBSD build tools tƦ檺
- u(רOĶMJ)CFreeBSDo[iF@ɨ禡w
- (shared libraries)íץF@ǿ~Cӭӵoioǵ{ GNU
- hF]{pAgFoǵ{AH²檺覡󥭥xsĶ
- (building cross compilers)AHΦhخ榡
- (plugging in different formats) @XF䴩C\hHQ@XH FreeBSD
- تx󥭥xsĶCOAFreeBSD as M ld @
- ou@Cs GNU u{[JF󥭥xsĶ (Cross Compiler)A
- <acronym>ELF</acronym>榡䴩A@ɨ禡w(shared libraries)A
- C++ XR... C~A\htӥH <acronym>ELF</acronym> 榡
- o䲣~ApGoǪFb FreeBSD W檺ܷMO̦nCJMA
- <acronym>ELF</acronym> 榡ɤFAٶn
- <filename>a.out</filename> OHwgO@ǫѨoFAbܤO
- ɩ^moh~AӬObΨUaWnn𮧪ɭ
- FC</para>
-
- <para><acronym>ELF</acronym> 榡 a.out 㦳}ni{OA
- BbhtΤ㦳hiXiʡC<acronym>ELF</acronym> u{
- eQ@ABѸ󥭥xsĶ䴩Ao@IܦhHӻOܭn
- C<acronym>ELF</acronym> 榡i a.out C@IAOtD
- `qXӡCo̶٦\hӸ`WPA軡覡A
- {Xlƪk...CoǨäOܭnAOA̴NOPC
- HAGENERIC ֤(kernel)N| <filename>a.out</filename>
- 榡CbDz <filename>a.out</filename> {nɡA
- N|q֤(kernel)C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="chmod-symlinks">
- <para>ƻchmod|ܲŸs(symlink)svH</para>
- </question>
-
- <answer>
- <para>Symlinks èSsvAPɡAbw]pUA
- &man.chmod.1; N|H symlinks hKؼɮתsvC]A
- pGA@ɮ <filename>foo</filename>APɡA@ symlink
- <filename>bar</filename> VoɮסAHUoөRONû|\
- QC</para>
-
- <screen>&prompt.user; <userinput>chmod g-w bar</userinput></screen>
-
- <para>MӡAb <filename>foo</filename> WsvN|Q
- ܡC</para>
-
- <para>Aݨϥ <option>-H</option> άON <option>-L</option>
- P <option>-R</option> ﶵ@_ϥΡAѦ &man.chmod.1; H
- &man.symlink.7; HohTC</para>
-
- <warning>
- <para>ϥοﶵ <option>-R</option> | &man.chmod.1; H
- <acronym>j(RECURSIVE)</acronym> 覡u@CA
- &man.chmod.1; ΦbؿάOsؿŸsɧnpߡC
- pGAnܤ@ӲŸsѦҨ쪺ؿsv &man.chmod.1; A
- B`Nn[WﶵAåBb symlink [W׽u
- (<filename>/</filename>)C|ҨӻApG
- <filename>foo</filename> sؿ <filename>bar</filename>A
- ӧAn <filename>foo</filename> (ڤWO
- <filename>bar</filename>)ANϥΡG</para>
-
- <screen>&prompt.user; <userinput>chmod 555 foo/</userinput></screen>
-
- <para>׽u|ϱo &man.chmod.1;
- <filename>foo</filename> ҫVؿ <filename>bar</filename>
- vC</para>
- </warning>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="login-8char">
- <para>b FreeBSD 2.2.x Χ󦭪AnJW(login names)
- QbKӦrHUOH</para>
- </question>
-
- <answer>
- <para>Ai{ק <literal>UT_NAMESIZE</literal> bssĶ
- tάOܮeơCӥBboACƳiHB@ܦnCOA
- \h{Mu(]ttΤu)Ʀrgb{Y(ëD`O
- <literal>8</literal> <literal>9</literal>AɥiOjǪ
- <literal>15</literal> <literal>20</literal>)CoȶȬO|N
- AtΰOɧaӤw(Ӧ۩ܰʪשMTwװOt)AP
- ]|}a Sun NIS Client B@CPɡAMLUnixtΤ]
- i|ͥDC</para>
-
- <para>bFreeBSD 3.0 Τ᪺Ab̤j׼W[16ӦrA
- PɡADZN׼g{]QXӨç@FAץC]vT
- tΪdܼsAҥH3.0~jPץC</para>
-
- <para>pGA۫HbXDɫۦѨMAAiHQΤUk
- 䴩bCAק
- <filename>/usr/include/utmp.h</filename> UT_NAMESIZEC
- MAA <filename>/usr/include/sys/param.h</filename>
- MAXLOGNAME 令 UT_NAMESIZE ۦPC̫ApGAOql{
- إߨt, OѤF /usr/include C|QsC
- ק /usr/src/.. AɮסC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="dos-binaries">
- <para>گbFreeBSDUDOS{ܡH</para>
- </question>
-
- <answer>
- <para>OA3.0_AiHϥBSDI
- <application>doscmd</application> DOS ApGAoӪF
- AάOQ[JoiCAбH@ʹqll &a.emulation; C
- </para>
-
- <para>3.0etΡAb ports @MniH 8088Aô
- ѨBIOS_AȥHDOSrҦ{AoMns
- <application>pcemu</application>APɡAB楦n
- X Windows(XFree86)C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="translation">
- <para>pGnFreeBSD½ĶڪyAڻݭn@H</para>
- </question>
-
- <answer>
- <para>Ѿ\FreeBSD󤤪 <ulink
- url="../fdp-primer/translations.html">½Ķ`ݵ</ulink>C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="freebsd-mail-bounces">
- <para>ڱH FreeBSD.org a}qll󳣳Qh^FOH</para>
- </question>
-
- <answer>
- <para>FreeBSD.org ltιiӪlĨY檺ˬdAåBh^
- Ҧ]wTAάObUlCAlQh^iO]UC
- ]Ҥް_G</para>
-
- <itemizedlist>
- <listitem>
- <para>oʹqllӦۤwUlϰάOIPC</para>
-
- <para>FreeBSDlANڵwUlӷqllC
- pGѧAAȪqάO줤͹LUlάOU
- l༽AЧA@ӪAȴѪ̡AάOܩC</para>
- </listitem>
-
- <listitem>
- <para>qll󪺥ȦHTMLC</para>
-
- <para>lӤw¤r榡oeAг]wAqllneX¤
- r榡C</para>
- </listitem>
-
- <listitem>
- <para>FreeBSDlBz{LkIPϬdeDIPC</para>
-
- <para>]m DNS ϬdO@xDl󪺤@ӼзǭnDAЬzl
- D]m DNS ϬdC\hѮaxA (DSLAcableAdialup )
- qäѳo˪AȡCboرpUAгzLAȴѪ̪
- lAeXzqllC</para>
- </listitem>
-
- <listitem>
- <para>b SMTP ϥ EHLO/HELO ROɩҵ hostname LkQѪR
- @ IP mC</para>
-
- <para>blQHeA@ӥRXABiQѪRDW٦b
- SMTP wͤOnCpGASb DNS AnOA
- DW١AгzLAȴѪ̪lAeXzqll
- C</para>
- </listitem>
-
- <listitem>
- <para>ATaۤ@ message ID H <quote>localhost</quote>
- r굲C</para>
-
- <para>YǶln鲣ͬYǤT message IDAoNQC
- Aݧ]wAln鲣ͥT message IDApGoL
- kѨMAҼ{AAln@̧s{HBzoӰDC</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="free-account">
- <para>ڥiHb̧@ӧKOFreeBSDbH</para>
- </question>
-
- <answer>
- <para>FreeBSDAѥ~AȡAL줤A
- HѶ} Unix tΪAȡC䤤ǥindz\OΡC</para>
-
- <para><ulink url="http://www.arbornet.org/">Arbornet, Inc</ulink>A
- ]Q٬ M-NetA 1983 ~_N}l Unix tΪAȡC@}lA
- L̨ϥ Altos ð System IIICL̦b 1991 ~ഫtΦ
- BSD/OSCb 2000 ~AL̦Aק󴫦 FreeBSDCM-Net
- Ϊ̳zL SSH telnet suDAôѧ㪺 FreeBSD nH
- ѨϥΡCMӡAM-Net @@ӫDէQ´BAsvu󦨭M
- ٧U̡AM-Net ] BBS tΩMѪAȡC</para>
-
- <para><ulink url="http://www.grex.org/">Grex</ulink> ѤFD`
- M-Net AȡA]AF BBS tΩMѡCMӡAOϥ
- Sun 4MAð SunOSC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="sup-define">
- <para>O <command>sup</command>AڸӦpϥΥH</para>
- </question>
-
- <answer>
- <para><ulink url="http://www.FreeBSD.org/cgi/ports.cgi?^sup">
- SUP</ulink> NO Software Update ProtocolA CMU oiA
- ΨӺӵoiPBCڭ̧QΥOݪxMlx
- PBu@C</para>
-
- <para>MӡASUP bWeϥΤWäӤ͵APɡAثe]AϥΤFC
- ثeijlXPBskO
- <ulink url="../handbook/synching.html#CVSUP">CVSup</ulink>C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="daemon-name">
- <para>oӥiRpHs@H</para>
- </question>
-
- <answer>
- <para>GALèS@ӥWrAhBN٨䬰
- <quote>BSD pc]</quote> aCpGANnϥΤ@ӦWrCNsL
- <quote>pʪ(beastie)</quote> aCG<quote>beastie</quote>
- bŪW <quote>BSD</quote> ܱC</para>
-
- <para>AiHbBSDpc] <ulink
- url="http://www.mckusick.com/beastie/index.html">D</ulink>
- WohTC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="use-beastie">
- <para>گϥ BSD pc]Ϯ׶ܡH</para>
- </question>
-
- <answer>
- <para>]\aAڤ]TwCBSDpc]ϮתvOݩ󰨷Ĭз|
- Marshall Kirk McKusick Ҿ֦CAiHյۥhdݺ<ulink
- url="http://www.mckusick.com/beastie/mainpage/copyright.html">BSDpc]v</ulink>
- HoԲӪϥβӸ`C</para>
-
- <para>`ӨApGAº鬰FۤvQnŲAAAiHۥѪϥΨvCpGAOӤHϥΡAunpAAӳ|Q\iC
- pGAQbӷ~WϥΡAhApôĬз| Kirk McKusick Ho\iC
- pGAݭni@BԲӪTAаѦ <ulink
- url="http://www.mckusick.com/beastie/index.html">BSDpc]</ulink>C
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="daemon-images">
- <para>A BSD pc]ϮץiHڨϥζܡH</para>
- </question>
-
- <answer>
- <para>AiHb <filename>/usr/share/examples/BSD_daemon/</filename> Xfig eps خ榡ɡC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="glossary">
- <para>ڦbBl׾¤WA`|ݨ@YgrB޳NrJAoǥiHhdOH</para>
- </question>
-
- <answer>
- <para>аѾ\ <ulink
- url="&url.books.handbook;/freebsd-glossary.html">
- &os; rJ</ulink>C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="bikeshed-painting">
- <para>ڸӦbN}񨮨תCH</para>
- </question>
-
- <answer>
- <para>̵u̵u׬OGyΦbNzCyL@I׬OGyMAOۤvhسy@y}񨮨סAOA
- oN]Aw{boӨתCANnLؿvCzoӤ몺NOA
- AݭnhרC@ӲӶSxAu]Akh@C
- YǤH׬OGy{סAPܤƪʬOϤzC</para>
-
- <para>B㪺׬OAbgLɶO_ӱN &man.sleep.1;
- ѼƲA&a.phk;oF@g <quote><ulink
- url="http://www.FreeBSD.org/cgi/getmsg.cgi?fetch=506636+517178+/usr/local/www/db/text/1999/freebsd-hackers/19991003.freebsd-hackers">
- bCAaW}񨮨(C⪺)...</ulink></quote>CHUAȺKnӫh峹eG</para>
-
- <blockquote>
- <attribution>&a.phk; on freebsd-hackers, October
- 2, 1999</attribution>
-
- <para><quote>OoӸ}񨮨?</quote> Ho˪߰ݧڡC</para>
-
- <para>oO@ӫD`GơA_hNO@ӥjѪGơCOƹWA
- oӬGƫD`uCCPմSP(C. Northcote Parkinson) b 1960
- ~NgF@ѡAѦW <quote>Parkinson's Law(ѦWGɩxDмSWqߺA˩w)</quote>
- Aoѥ]tFܦh㦳ʺA޲zǡC</para>
-
- <para>[ޭz@IboѤW]</para>
-
- <para>boӳQJ}񨮨׮תSҤlADnnO֯oqAڷQAoHoѪ~֡C</para>
-
- <para>ˮiܤFӦpbƷ|Ĺo٦Phسy@yƦʸUάƦܤQ֯oqA
- OApGAQnhسy@y}񨮨סAAN|QbLaLɪQפC</para>
-
- <para>L()øAoO]@Ӯ֯oqOo˪sAo˪QAåBo˪A
- HܩH̵LkxAӨëDաAL̫Ʊ榳HL̳BzøѨMҦHӶC
- Richard P. Feynmann F@ǦABD`@w媺IAbLѴF Los Alamos ҤlC</para>
-
- <para>t@譱AHۤvbgոˤ@y}񨮨ץXӡAåBiH[qΪCC
- ]ALקA@Fh򧹵dzơA]ާAX׬Oh򪺧AYǤHN|]XӧiDAA
- Lb@P˪ơAbIXVOALNb <emphasis>o</emphasis>C</para>
-
- <para>bAڭ̺ٳoӥs@yꦺd֡z(setting your fingerprint)CoYAӤHźƩMnA
- oYAO_iH۬YaۧOHGyo! oO <emphasis></emphasis> @Cz
- oOFvHܭn@ӯSxCOAɾOjhƤHҽPCQQǯdbdaW}LaC</para>
- </blockquote>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="funnies">
- <chapterinfo>
- <author>
- <firstname>Edward</firstname>
- <surname>Chuang</surname>
- <affiliation>
- <address><email>edwardc@firebird.org.tw</email></address>
- </affiliation>
- </author>
- </chapterinfo>
-
- <title>FreeBSD Nܶ</title>
-
- <qandaset>
- <qandaentry>
- <question id="very-very-cool">
- <para>How cool is FreeBSDH</para>
- </question>
-
- <answer>
- <para>ݡGHL FreeBSD ɪū״նܡH ڪD Linux
- DOS DASťHL FreeBSDAGܼC</para>
-
- <para>GSAObıWLLƦաCڭéW@ժ̪
- AƥAL̪A 250 @J LSD-25 gġC35% ժ̻
- FreeBSD _ӹlA Linux hO⪺dGCڧکҪAS
- @մūפWSOtCӵo{AӦhժ̦bծɹڹC
- XжvTƾڡA̫uoӽլdCڷQjժ̲{bb
- Apple u@A~ Drag and Drop Ass <quote>Scratch and
- Sniff</quote> ϧάɭCIt's a funny old business we're inI</para>
-
- <para>}FAFreeBSD M Linux ϥ <acronym>HLT</acronym>
- (halt) OAibtζmɭCqOϥΤ]֤F͡CpG]w APM(Automatic Power Management)
- AFreeBSD ]iH CPU iJٹqҦC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="letmeoutofhere">
- <para>֦bڪO鴡ѤFF@THH</para>
- </question>
-
- <answer>
- <para>ݡGFreeBSD sĶ֤߮ɦƻ <quote>_S</quote>
- OFF@TܡHsĶ(٦}ɽT{nЫ᪺uȮɶ)A
- ]ئGӦ۰O鴡Ѫ_nC</para>
-
- <para>GOIb BSD 󤤧A|``ݨ <quote>IF</quote>A
- jHDO@عڦsb믫 --- xۧAqC
- Ať쪺nOoǭIFHfbq˰\htκ޲zu
- @C</para>
-
- <para>pGonܧxZAAӦ DOS
- <command>fdisk /mbr</command> N\ApGۤϪĪG
- ]nYCƹWApGbť Bill Gates ƪnq
- تzǨӡAWkӥBn^YI q BSD IFŪvT
- ѩADOS M Windows IFq`୫sxùAF
- AGCpGܡAڷQڹ@ߺD_ǪnC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="changing-lightbulbs">
- <para>nX FreeBSD hacker ~ഫ@ӹqOwH</para>
- </question>
-
- <answer>
- <para>@d@ʤCQGӡG</para>
-
- <para>GQTӦb -current WݤFF</para>
-
- <para>|ӫźٳoO]wWDAҥHo˪ email өb
- -questionsF</para>
-
- <para>T submit PRA䤤@Ӱe doc UAåBeu
- o̦ntF</para>
-
- <para>@ commit |ժqOwAy buildworldA
- LӪOw^ӡF</para>
-
- <para>KӺ_ flame warAdǰeX PR HS]A patchF</para>
-
- <para>ӮI buildworld 걼FF</para>
-
- <para>TQ@ӻ buildworld iHΡAΪH@wO cvsup
- ɾF</para>
-
- <para>@ӧ⴫sOw patch -hackers WF</para>
-
- <para>@ӻLT~eNXF patchAe -current oQA
- ҥHL PR tΦܤnLHC~AL]{XsOwL
- kϥF</para>
-
- <para>TQCөHqOwݩ򥻨tΪ@AҥH committer
- णԸ߾ Community NNo˰UhC٦A-core
- 쩳MoƦYHI</para>
-
- <para>ʤH贫OwA}񨮴תCܱon_ǡF</para>
-
- <para>TӫXAΨӴOw patch ŦX &man.style.9; WwF</para>
-
- <para>QCӮI讳XӪsOwO GPLF</para>
-
- <para>ʤKQHJ@ flame warAb GPLBBSDBMITBNPL
- U license M FSF Y줣WпHhӤHåͤA
- uաF</para>
-
- <para>CӱNo@QתPO -chat M -advocacyF</para>
-
- <para>NⴣXsOwªtA٬O@ӧ⥦ commit iӡF</para>
-
- <para>Ӵ^OwAåBdU㪺 commit TCL̻{
- P FreeBSD ηtOwA٤pܫݦb·tFF</para>
-
- <para>|QHηtOwoƤjneIAnD -core
- ߨ责XMF</para>
-
- <para>Q@ӭnDp@IqOwAHK FreeBSD pGӨ
- qlW|󬰤KF</para>
-
- <para>CQTH -hackers M -chat W SNRA unsubscribe
- ӪܧijF</para>
-
- <para>QTӰeXunsubscribeBڭnp unsubscribeΡU
- ڱq list W椤RAH̫᭱hO@ majordomo [Wh
- footerF</para>
-
- <para>CӤH󩼦s|ɡAӳåXSH`NAiHΪOw
- WhF</para>
-
- <para>TQ@ӫXpG TenDRA sĶsOwA|ªӱoG
- 0.364%]MOw|QsĶ^AҥH FreeBSD wsĶ
- ӬO TenDRAAӤO EGCSF</para>
-
- <para>ӤHsOwʥFPF</para>
-
- <para>EӤH]]Ae PR H^ݡO MFCHF</para>
-
- <para>QCө۱qFOwAӬPSX{C</para>
-
- <para><emphasis>&a.nik; ɪ`G</emphasis></para>
-
- <para><emphasis>ݨɡAڧ֯½FC</emphasis></para>
-
- <para><emphasis>MQA@UAO٦@ӭnNoǰOb
- list WܡH</emphasis></para>
-
- <para><emphasis>۲שFѧڪϩR :-)</emphasis></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="dev-null">
- <para>gJ <filename>/dev/null</filename> ƶ]̥hFH</para>
- </question>
- <answer>
- <para>b CPU @دSOƴAQαƥX/զXɡA
- ഫDoNO CPU Noͭn]FH̨ϥΧ
- BzɡALܦbGVӶVhL̪ƳeiF
- <filename>/dev/null</filename> AӨϪL̪ CPU LD
- pGARF <filename>/dev/null</filename> (N|Ī
- CPU ƴ) A CPU ]\|Cu@ūסAOAtαN
- |ܧ֪OwFKH۩ҦWXƶ}lܦ欰`C
- pGAֳtsuAAiHQŪ
- <filename>/dev/random</filename> ñNLHNǰeܦUBA
- ӭCA CPU ūסFMӧANJϧAsu
- <filename>/</filename> LIάOSoA ISPA
- jƳ̲ױN|bL̪]ƤWഫALL̳q`֦
- nAҥHpGAӹLAӬOSjFC</para>
-
- <para><emphasis>Paul Robinson ɥRG</emphasis></para>
-
- <para>媩 FAQ `GHUuݩqA½ĶyyjԡA
- yNqΡAGOdĭŪ̦ۦ~|C</para>
-
- <para>There are other methods. As every good sysadmin knows,
- it is part of standard practise to send data to the screen
- of interesting variety to keep all the pixies that make up
- your picture happy. Screen pixies (commonly mis-typed or
- re-named as 'pixels') are categorised by the type of hat
- they wear (red, green or blue) and will hide or appear
- (thereby showing the colour of their hat) whenever they
- receive a little piece of food. Video cards turn data into
- pixie-food, and then send them to the pixies - the more
- expensive the card, the better the food, so the better
- behaved the pixies are. They also need constant simulation
- - this is why screen savers exist.</para>
-
- <para>To take your suggestions further, you could just throw
- the random data to console, thereby letting the pixies
- consume it. This causes no heat to be produced at all,
- keeps the pixies happy and gets rid of your data quite
- quickly, even if it does make things look a bit messy on
- your screen.</para>
-
- <para>Incidentally, as an ex-admin of a large ISP who
- experienced many problems attempting to maintain a stable
- temperature in a server room, I would strongly discourage
- people sending the data they do not want out to the
- network. The fairies who do the packet switching and
- routing get annoyed by it as well.</para>
- </answer>
- </qandaentry>
-
-
- <qandaentry>
- <question id="pttlz">
- <para>1993 ~Nymake worldzFH</para>
- </question>
-
- <answer>
- <para>ݡGھ jkh <ulink
- url="http://www.freebsd.org/cgi/cvsweb.cgi/src/Makefile.diff?r1=1.5;r2=1.6;f=h">
- o commit</ulink>AӬO Aug 13 22:47:28 1994 UTC
- ~| make worldA|be|OH</para>
-
- <para>Gھ pttlz.bbs@ptt.cc (u) Apr 7 17:09:47 2008 CST ۺ١G
- ymake world Oڥj (15 ~e) ɪ freebsd ɥΪzAҥH 1993 ~N
- pttlz ymake worldzsbFAЪ`NHaiOۺ١y15 ~ezA
- ФŹv¬DԡA¡I</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="advanced">
- <chapterinfo>
- <author>
- <firstname>En-Ran</firstname>
- <surname>Zhou</surname>
- <affiliation>
- <address><email>zhouer@tfcis.org</email></address>
- </affiliation>
- </author>
- </chapterinfo>
-
- <title>iDD</title>
-
- <qandaset>
- <qandaentry>
- <question id="learn-advanced">
- <para>pDzߧh FreeBSD FH</para>
- </question>
-
- <answer>
- <para>ثeW٨SQ@~tΤѬOM FreeBSD Ӽg
- CMӡA\h@몺 UNIX ѳiHΦb FreeBSD WC
- [@IAMѬOM BSD ҼgC</para>
-
- <para>аѦ Handbook <ulink
- url="../handbook/bibliography-osinternals.html">@~tΤѦҮѥ</ulink>
- C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="how-to-contribute">
- <para>pର FreeBSD X@OH</para>
- </question>
-
- <answer>
- <para>аѦҳog峹 <ulink
- url="../../articles/contributing/article.html">Contributing
- to FreeBSD</ulink> ӴѱzijCpGzNwFI</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="define-snap-release">
- <para>SNAP M RELEASE OH</para>
- </question>
-
- <answer>
- <para>ثeTӬD/bDb FreeBSD <ulink
- url="http://www.FreeBSD.org/cgi/cvsweb.cgi">CVS Repository</ulink>
- (jwgXGSbsFA]q`uTӬDoi)G
- </para>
-
- <itemizedlist>
- <listitem>
- <para><literal>RELENG_5</literal> Y
- <emphasis>5-STABLE</emphasis></para>
- </listitem>
-
- <listitem>
- <para><literal>RELENG_6</literal> Y
- <emphasis>6-STABLE</emphasis></para>
- </listitem>
-
- <listitem>
- <para><literal>HEAD</literal> Y
- <emphasis>-CURRENT</emphasis> ]NOثe
- <emphasis>7.X-CURRENT</emphasis></para>
- </listitem>
- </itemizedlist>
-
- <para>PWLӤۤA <literal>HEAD</literal> äOu
- branch tagAuO symbolic constantAN <quote><emphasis>current
- (|䪺oi)</emphasis></quote>Aq`ڭ̷|²g <quote>-CURRENT</quote>C</para>
-
- <para>N{bӨA<quote>-CURRENT</quote> NO 7.X oiF
- <literal>5-STABLE</literal> (<symbol>RELENG_5</symbol>)Ob 2004 ~ 10 q
- <quote>-CURRENT</quote> fork XӪF
- <literal>6-STABLE</literal> (<symbol>RELENG_6</symbol>)Ob 2005 ~ 11 q
- <quote>-CURRENT</quote> fork XӪC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="custrel">
- <para>n@Xۤv releaseH</para>
- </question>
-
- <answer>
- <para>аѷ <ulink
- url="../../articles/releng/article.html">Release u{</ulink>
- 峹C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="makeworld-clobbers">
- <para> <command>make world</command> |Ӹ˪ binary ɳFH</para>
- </question>
-
- <answer>
- <para>SANOoˤlCpWrҥܡA<command>make world</command>
- |ssĶtΤتC binary ɡAo˦bɴNiTwӤ@PBb(ҥHnWn@qɶ)C</para>
-
- <para>b <command>make world</command>
- <command>make install</command> ɡApG]
- <literal>DESTDIR</literal> oܼơAsͪ binary N|˦b
- <literal>${DESTDIR}</literal> UP˪ؿ𤤡CbYǭק
- shared library M binary LSwpUAo˰i|
- <command>make world</command> ѡC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="cvsup-round-robin">
- <para>Why isn't cvsup.FreeBSD.org a round robin DNS entry to
- share the load amongst the various CVSup servers?</para>
- </question>
-
- <answer>
- <para>While CVSup mirrors update from the master CVSup
- server hourly, this update might happen at any time during
- the hour. This means that some servers have newer code
- than others, even though all servers have code that is
- less than an hour old. If <hostid role="fqdn">cvsup.FreeBSD.org</hostid> was a round
- robin DNS entry that simply redirected users to a random
- CVSup server, running CVSup twice in a row could download
- code older than the code already on the system.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="bus-speed-defaulted">
- <para>btζ}ɡAX{ <quote>(bus speed defaulted)</quote>C</para>
- </question>
-
- <answer>
-
- <para>Adaptec 1542 SCSI d\ϥΪ̥γnվ׬yƪstסC
- 1542 Xʵ{չϱN]iΪֳ̧tסAӵo{b@
- ǾWΡAҥH{bnb kernel ]w[
- <symbol>TUNE_1542</symbol> oӿﶵӱҰʳoӥ\Cb䴩
- Wγoӿﶵ|ϵwЦs֡Ab䴩Wi|ơC
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ctm">
- <para>bWepUAڤ]iHW current oiܡH</para>
- </question>
-
- <answer>
- <para>OAǵ <ulink url="../handbook/synching.html#CTM">CTM
- </ulink> zNiH<literal></literal>U{XC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="split-240k">
- <para>Oo檩ɮפ@ӭ 240k pɮתH</para>
- </question>
-
- <answer>
- <para>H BSD ¦stΦ <option>-b</option> ﶵ
- iHɮץHNƥ byte }C</para>
-
- <para>o̬O <filename>/usr/src/Makefile</filename> @
- ҤlG</para>
-
- <programlisting>bin-tarball:
-(cd ${DISTDIR}; \
-tar cf - . \
-gzip --no-name -9 -c | \
-split -b 240640 - \
-${RELEASEDIR}/tarballs/bindist/bin_tgz.)</programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="submitting-kernel-extensions">
- <para>ڦb kernel [Fs\Aڭn⥦H֡H</para>
- </question>
-
- <answer>
- <para>аѦ <ulink
- url="../../articles/contributing/article.html">Contributing
- to FreeBSD</ulink> 峹AHFѭnp󴣨ѱz{XC</para>
-
- <para>Pɤ]±zߡI</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="pnp-initialize">
- <para>ISA HYΥdOp󰻴ΪlƪH</para>
- </question>
-
- <answer>
- <para> Frank Durda IV ҼgG
- <email>uhclem@nemesis.lonestar.org</email></para>
-
- <para>²檺ADoXO_ PnP d߰ݰTɡAҦ PnP d
- |bXөTw I/O port @^CҥH PnP {}lɡA
- |ݦS PnP dbA۩Ҧ PnP d|bŪ port Hۤv
- # @^Ao˰{N|o@ wired-OR <quote>yes</quote>
- ƦrA䤤ܤַ|@ bit O}CM᰻{|nD
- ( Microsoft/Intelw)p X d<quote>u</quote>CAhݬO
- _٦d^P˪߰ݡApGo <literal>0</literal>ANܨS
- j X dC {b{|ݬO_p <literal>X</literal>
- dApGܡA{Anj X-(limit/4) duAM᭫
- Wʧ@CέƳo semi-binary search kAbYd
- ӴXA{̫|bϤXҦ PnP dAjMƤ]
- C@ӭӧ䪺 2^64 C</para>
-
- <para>@id ID Ѩ 32-bit(ҥHWO 2&circ;64) + 8bit X
- զAĤ@ 32 bits OΨӰϤUatӪCoǼtӱqӨSXӼ
- MLAݨ]P@aXPdt ID iणPC
- 32 bits uӪܤPtӪQkbILYFC</para>
-
- <para>ĤG 32 bits hO #BAӺ}BΤ@ǨϳoidWS
- ơCDĤ@ 32 bits PA_htӤi@XĤG 32 bit
- PidCҥHb@xiHP˪nXidAMӥL̾
- 64 bits ٬O|@ˡC</para>
-
- <para>o 32 bit 藍iHsAo~ϱo̶}l binary search
- wired-OR |o@ӫDsƦrC</para>
-
- <para>@tΰϤXҦd IDA۷|gѦP˪ I/O port @ӭӭ
- sҰʨCidAۧXwdһݪ귽BǤ_iHϥε
- CҦd|Qy@AӦoǸơC</para>
-
- <para>oǸT۩MwФW ECU ɮסB MLB BIOS ̪ƵXb@
- _Aq`OX ECU M MLB ̪ BIOS PnP ơAoǶgä䴩u
- PnPAMӰ{bˬd BIOS M ECU ƫAiHקK PnP g
- Mǰ쪺۽ĬC</para>
-
- <para>ۦA׫Xo PnP gAo|iΪ I/OBDMABIRQ MO
- Mg}w̡CoǶgN|X{bҫwaAU@
- s}AL]SH⥦HɲӲhC</para>
-
- <para>W۷h²ơAAӤwgFѤjPL{C</para>
-
- <para>Microsoft ܦLAXӥDn port ӧ@ PnPAL̪
- ޿OS@id|boǦaѽX@ۤϪ I/O cyclesCOڧ
- @ڦb PnP ׮ɪ IBM t printer boardATh
- oǪA port gJơAO MS <quote>FN</quote>CҥH
- ̪TLA port gJA٦ŪӦ} +
- <literal>0x800</literal>BMt@Ӧb <literal>0x200</literal>
- <literal>0x3ff</literal> portC</para>
-
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="major-numbers">
- <para>ڬY]ƼgFXʵ{Aण൹@ major numberH</para>
- </question>
-
- <answer>
- <para>onݧAO_NoXʵ{}ϥΡApGOܡAЧ⥦
- lXe@ڭ̡A٦ <filename>files.i386</filename> ק諸
- Bkernel ]wɼ˥BHΥΨӲͳ]ɪ &man.MAKEDEV.8;C
- pGA⤽}BΦ]vDӤऽ}ܡAڭ̦SaOd
- character major number 32 M block major number 8 o譱ϥΡA
- γoӴNnFCצpAڭ̳|ܷPEAb &a.hackers;
- oXʵ{C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="alternate-directory-layout">
- <para>ʥؿmhH</para>
- </question>
-
- <answer>
- <para>b^ʥؿmh譱Aڦb 1983 ~gnثe@k
- NSAܹLAoؤ覡Ow FFS ɮרtΡAӤ]S
- 復@ʡCbקK cylinder group Q񺡳o譱o۷\A
- ONǤHwg`NAM find NtXojnCjɮ
- tάOѨǥ depth first search(aka ftw) ͪ archive syX
- ӡAѥXӪؿ inode |nX cylinder groupApGHn
- depth first search ܡAoOV|p@CpGڭ̪D`@
- |ͦh֥ؿܡAѪkObs/gJʧ@eAbC
- cylinder group WyX(Ҧؿ/cylinder greoup ƥ)oh
- ؿCܩ㪺Aڭ̥nھڦahqo ӼƦrAN@ӹ 10
- ܤpTwƥؤ]|ϮIJvHżƦCϤ restore (YѶ}Wz
- archive) M@ɮ׾ާ@kiHO({bΪtkinӷP)G
- pG@ǥؿ(̦h 10 )b 10 ͪܡANoǥؿ
- EbP@ cylinder groupCޫˡA ڪgXoO@Ӥwg
- RLC</para>
-
- <para>Kirk McKusick, September 1998</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="kernel-panic-troubleshooting">
- <para>pb kernel panics ɱo̦hTH</para>
- </question>
-
- <answer>
- <para><emphasis>[o`Oq &a.wpaul; b &os.current; <link
- linkend="mailing">mailing list</link> WoH`A
- &a.des; ץFr~BA[WA̪`ѡC]</emphasis></para>
-
- <programlisting>From: Bill Paul &lt;wpaul@skynet.ctr.columbia.edu&gt;
-Subject: Re: the fs fun never stops
-To: Ben Rosengart
-Date: Sun, 20 Sep 1998 15:22:50 -0400 (EDT)
-Cc: current@FreeBSD.org</programlisting>
-
- <para><emphasis>[Ben oFU panic T]</emphasis></para>
-
- <programlisting>&gt; Fatal trap 12: page fault while in kernel mode
-&gt; fault virtual address = 0x40
-&gt; fault code = supervisor read, page not present
-&gt; instruction pointer = 0x8:0xf014a7e5
- ^^^^^^^^^^
-&gt; stack pointer = 0x10:0xf4ed6f24
-&gt; frame pointer = 0x10:0xf4ed6f28
-&gt; code segment = base 0x0, limit 0xfffff, type 0x1b
-&gt; = DPL 0, pres 1, def32 1, gran 1
-&gt; processor eflags = interrupt enabled, resume, IOPL = 0
-&gt; current process = 80 (mount)
-&gt; interrupt mask =
-&gt; trap number = 12
-&gt; panic: page fault</programlisting>
-
- <para>Aݨ칳o˪TɡAu⥦@eWӬOCڦbW
- SaЩ instruction pointer Ȭ۷nAO|]]w
- PCyܻAoӭȷ|AΪ kernel image ɦܰʡCpGO
- Y snapshot GENERIC kernelA]\LHiHlܨXD
- 禡ApGAOΦۭq kernelAu
- <emphasis>A</emphasis>~iDڭ̰DXb̡C</para>
-
- <para>nƥ]AoǡG</para>
-
- <procedure>
- <step>
- <para> instruction pointer ȰOUӡC`Nbe
- <literal>0x8:</literal> boӱpänAڭ̭nO
- <literal>0xf0xxxxxx</literal>C</para>
- </step>
-
- <step>
- <para>tέs}AoDROG
-
- <screen>&prompt.user; <userinput>nm -n /(y panic kernel ɮ) | grep f0xxxxxx</userinput></screen>
-
- 䤤 <literal>f0xxxxxx</literal> NOOUӪ
- instruction pointer ȡCiण|n짹㪺oӦrA
- oO] kernel symbol table ̪U symbol uO禡i
- JIA instruction pointer ҫ}iOb禡
- Y@BAӤ@wb}YCҥHpG䤣ӦrA
- instruction pointer Ȫ̫@ӼƦrAAդ@G
-
- <screen>&prompt.user; <userinput>nm -n /(y panic kernel ɮ) | grep f0xxxxx</userinput></screen>
-
- pGoˤ]䤣ANt@ӼƦrhAA@ƨ
- A GO@iy panic 禡CCoˤ񪽱
- XD禡ӱotAܤ֦nL򳣨SC</para>
-
- </step>
- </procedure>
-
- <para>ڱ``ݨHܤ@j panic TAܤ֬ݨ즳H@Iɶ
- instruction pointer M kernel symbol table 禡@UC
- </para>
-
- <para>nlܥXy panic ]̦nkOX crash dumpAM
- &man.gdb.1; bW stack traceC</para>
-
- <para>ެO@ءAڳq`OγoӤkG</para>
-
- <procedure>
- <step>
- <para>gn kernel ]wɡCpGAݭn kernel debuggerAb]
- wɤ[W <literal>options DDB</literal> oӿﶵC
- (hæX{LajɡAq`|γoӨӳ]w_IC)
- </para>
- </step>
-
- <step>
- <para> <command>config -g
- <replaceable>KERNELCONFIG</replaceable></command>
- XΨӽsĶؿC</para>
- </step>
-
- <step>
- <para><command>cd /sys/compile/
- <replaceable>KERNELCONFIG</replaceable>; make
- </command></para>
- </step>
-
- <step>
- <para> kernel sĶC</para>
- </step>
-
- <step>
- <para><command>make install</command></para>
- </step>
-
- <step>
- <para>s}</para>
- </step>
- </procedure>
-
- <para>&man.make.1; N|syX kernelC<filename>kernel</filename>
- ٦ <filename>kernel.debug</filename>C
- <filename>kernel</filename> N|Qw˨
- <filename>/kernel</filename>A <filename>kernel.debug</filename>
- iΨӵ &man.gdb.1; @ debugging symbols ӷC</para>
-
- <para>nTw crash dumpAs
- <filename>/etc/rc.conf</filename> N <literal>dumpdev</literal>
- swap ΰϡCo &man.rc.8; | &man.dumpon.8; ӱҰ
- crash dumpAA]iHʰ &man.dumpon.8; b panic A
- crash dump iH &man.savecore.8; s_ӡFpG
- <filename>/etc/rc.conf</filename> ̦] <literal>dumpdev</literal>
- 򭫷s} &man.rc.8; |۰ʰ &man.savecore.8;
- crash dump sb <filename>/var/crash</filename>C</para>
-
- <note>
- <para>FreeBSD crash dump q`M̪ڰO@ˤjAN
- pG 64MB OAcrash dump jpNO 64MBCҥHnTw
- <filename>/var/crash</filename> UŶAάOiH
- ʰ &man.savecore.8; crash dump t@ӪŶ
- ؿUCt@ؤ]\iH crash dump kAOb kernel
- ]wɤ <literal>options MAXMEM=(foo)</literal>AN kernel
- iΪO魭bXzjpC|ҨӻApGA 128MB O
- AOiH kernel u 16MB OAo crash dump
- NO 16MB ӤO 128MB FC</para>
- </note>
-
- <para>@o{F crash dumpANiH &man.gdb.1; Ӱ
- stack trace ApUҥܡG</para>
-
- <screen>&prompt.user; <userinput>gdb -k /sys/compile/KERNELCONFIG/kernel.debug /var/crash/vmcore.0</userinput>
-<prompt>(gdb)</prompt> <userinput>where</userinput></screen>
-
- <para>n`Ni|X{nXӿùiθTAAiH &man.script.1;
- ҦXs_ӡCΥ]AҦ debug symbol kernel ӰAo
- ӥiH panic Ooͦb@Cq`OѤUWŪ
- stack straceAoˤ~@ӭӰlܥXǰʧ@ި crashC]iH
- &man.gdb.1; UܼƩεceLXӡAHˬdt crash ɪ
- ڪAC</para>
-
- <para>nաApGAĤGxqӥBƨgAiHN &man.gdb.1; ]w
- ݰCo˧AiHb@x &man.gdb.1; ht@x̪
- kernelAiH檺]A]w_IBb kernel lX@BB浥
- ANb@ϥΪ̵{W@ˡCѩS|ӳ]m
- xþFqAҥH٨So˪LC</para>
-
- <para><emphasis>[Bill ɥRG"ڧѤF@IGpGAҰ DDB
- kernel ]wgiJAiHb DDB ROCU 'panic'Aj
- panic (٦ crash dump)C]ib panic qɦAiJA
- pGo˪ܡAJ 'continue'AۥN| crash dumpC" -ed]
- </emphasis></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="dlsym-failure">
- <para> dlsym() ާ@ ELF ɡH</para>
- </question>
-
- <answer>
- <para>b ELF @tCu㤤AwO| dynamic linker ݨ
- ɸ̩wqF symbolCҥH <function>dlsym()</function> S
- kǥѩIs <function>dlopen(NULL, flags)</function> o
- handleAΥhjM symbol @w|ѡC</para>
-
- <para>pGAQn <function>dlsym()</function> XY process
- Dɤ symbolAhnb link ɹ ELF linker (&man.ld.1;)
- [W <option>-export-dynamic</option> oӰѼơC</para>
-
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="change-kernel-address-space">
- <para>ڭnpW[δ kernel w}ŶH</para>
- </question>
-
- <answer>
- <para>w]ȬOAFreeBSD 3.x kernel iHw}ŶO 256 MB
- FreeBSD 4.x iH 1 GBCpGOt۷A
- (Ҧpj FTP HTTP A)AA]\|o{ 256 MB iणjC
- </para>
-
- <para>ҥHAnpW[w}ŶOHnq譱ۤCiD
- kernel nOdjŶۤvC䦸AJMObw}Ŷ̤W
- J kernelAҥH٭nէCJ}A~|Mew}d
- |C</para>
-
- <para>W[ <filename>src/sys/i386/include/pmap.h</filename> ̪
- <literal>NKPDE</literal> NiHFĤ@ӥؼСC1 GB w}Ŷ|
- oˡG</para>
-
- <programlisting>#ifndef NKPDE
-#ifdef SMP
-#define NKPDE 254 /* addressable number of page tables/pde's */
-#else
-#define NKPDE 255 /* addressable number of page tables/pde's */
-#endif /* SMP */
-#endif</programlisting>
-
- <para>nX <literal>NKPDE</literal> TȡANQnŶjp
- (H megabyte )H 4A۳ CPU 1A
- CPU hO 2C</para>
-
- <para>nѨMĤGӰDAۦX kernel QJ}GDX
- 0x100100000 w}Ŷjp(H byte )Ap 1 GB jpNO
- 0xc0100000C<filename>src/sys/i386/conf/Makefile.i386</filename>
- ̪ <symbol>LOAD_ADDRESS</symbol> ]oӭȡQۦb
- <filename>src/sys/i386/conf/kernel.script</filename> AN
- section C̫e location counter ]ۦPȡApUG</para>
-
- <programlisting>OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
-OUTPUT_ARCH(i386)
-ENTRY(btext)
-SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/obj/elf/home/src/tmp/usr/i386-unknown-freebsdelf/lib);
-SECTIONS
-{
- /* Read-only sections, merged into text segment: */
- . = 0xc0100000 + SIZEOF_HEADERS;
- .interp : { *(.interp) }</programlisting>
-
- <para>M᭫ssĶz kernelCzi|b &man.ps.1;B&man.top.1;
- o{ɸIDQ<command>make world</command> ӴNiHѨM
- (ΧL <filename>pmap.h</filename> ƻs
- <filename>/usr/include/vm/</filename> UAAʽsĶ
- <filename>libkvm</filename>A&man.ps.1; ٦ &man.top.1;)C</para>
-
- <para>`NGkernel үw}ŶjpO 4 megabytes ơC
- </para>
-
- <para>[&a.dg; ɥRG<emphasis>ڻ{ kernel w}ŶjpӭnO 2
- AjTwo@ICªҰʵ{|ʨ
- high order address bitsAOo]ܤ֦ 256 MBC]</emphasis>
- </para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="acknowledgments">
- <chapterinfo>
- <author>
- <firstname>Vanilla</firstname>
- <surname>Shu</surname>
- <affiliation>
- <address><email>vanilla@FreeBSD.org</email></address>
- </affiliation>
- </author>
- </chapterinfo>
-
- <title>P</title>
-
- <blockquote>
- <attribution>FreeBSD Core Team</attribution>
-
- <para>pzbo FAQ ~aAάOzQW[ǬƻA
- мgʫH &a.faq; Cڭ̫D`P±zijA
- ]zijoܱonI</para>
- </blockquote>
-
- <variablelist>
- <varlistentry>
- <term>&a.jkh;</term>
- <listitem>
- <para>sLɪ FAQ</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.dwhite;</term>
-
- <listitem>
- <para>g`b freebsd-questions W^D</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.joerg;</term>
-
- <listitem>
- <para>g`b Usenet W^D</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.wollman;</term>
-
- <listitem>
- <para>Networking and formatting</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Jim Lowe</term>
-
- <listitem>
- <para>Multicast information</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.pds;</term>
-
- <listitem>
- <para>FreeBSD FAQ o󪺥rWu</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>The FreeBSD Team</term>
-
- <listitem>
- <para>Kvetching, moaning, submitting data</para>
-
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>󨺨Ǵgo FAQ UAӧڭ̨S쪺H̡A
- ڭ̥ѰJP±zI</para>
- </chapter>
-
-
- <chapter id="ports">
- <chapterinfo>
- <author>
- <firstname>Yi-Feng</firstname>
- <surname>Tzeng</surname>
- <affiliation>
- <address><email>yftzeng@iis.sinica.edu.tw</email></address>
- </affiliation>
- </author>
- </chapterinfo>
-
- <title>Ports and Packages `D</title>
-
- <qandaset>
- <qandaentry>
- <question id="make-fetch">
- <para>pu tarballH</para>
- </question>
-
- <answer>
- <para>pGuƱ tarball UӪܡAȻݿJHUOYiG
- <screen>&prompt.root; <userinput>make fetch</userinput></screen>
- pGOn@ portAH
- <filename role="package">editors/joe</filename> ҡG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/editors/joe</userinput>
-&prompt.root; <userinput>make fetch</userinput></screen>
-
- <para>Aw]|N <filename role="package">editors/joe</filename>
- tarball U <filename>/usr/ports/distfiles</filename>
- ؿUC</para>
-
- <para>pGOƱw˦ ports Ҧۨ ports tarballAH
- <filename role="package">systuils/portupgrade</filename> ҪܡA
- hG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/systuils/portupgrade</userinput>
-&prompt.root; <userinput>make fetch-recursive</userinput></screen>
-
- <para>w]|N port PҦݭnL port tarballAU
- <filename>/usr/ports/distfiles</filename> ؿUC</para>
-
- <para>pGOƱҦ ports tarball AhG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make fetch</userinput></screen>
-
- <para>h|ұNҦ ports tarball U
- <filename>/usr/ports/distfiles</filename> ؿUC</para>
-
- <para>pGOƱ ftp UҦ ports tarball AhG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/ftp</userinput>
-&prompt.root; <userinput>make fetch-recursive</userinput></screen>
-
- <para>h|ұN ftp UҦ ports tarball U
- <filename>/usr/ports/distfiles</filename> ؿUC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="make-extract">
- <para>pȰѶ} tarballBJH</para>
- </question>
-
- <answer>
- <para>ɭԲߺDۤv patch lXɭԡA|ܱ`Ψoӥ\CH
- <filename role="package">editors/joe</filename> ҡG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/editors/joe</userinput>
-&prompt.root; <userinput>make extract</userinput></screen>
-
- <para>|N tarballѶ}
- <filename>/usr/ports/editors/joe/work</filename> ؿUC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="make-patch">
- <para>pȰѶ} tarball øɤWx责Ѫ patch H</para>
- </question>
-
- <answer>
- <para>kP <link linkend="make-extract">make extract</link>
- k@APOɤWx责Ѫ patchAA patch
- ۤvץC ɭԲߺDۤv patch lXɭԡA
- hoӤ覡nŦXzݨDC
- H <filename role="package">editors/joe</filename> ҡG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/editors/joe</userinput></screen>
- <screen>&prompt.root; <userinput>make patch</userinput></screen>
-
- <para>|N tarballѶ} <filename>/usr/ports/editors/joe/work</filename> ؿU
- AøɤWx责Ѫ patchC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="make-install">
- <para>pwˤ@ӷs portH</para>
- </question>
-
- <answer>
- <para>pGtΤWw˦nAhiHܦwˤ@ӷs portC
- H <filename role="package">editors/joe</filename> ҪܡAhG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/editors/joe</userinput></screen>
- <screen>&prompt.root; <userinput>make install</userinput></screen>
-
- <para>p|btΤWwˤ@ӷs joe nC
- pGݭnbw˧A@ֲMsɴүdUӪȦsؿAhitX <userinput>make clean</userinput> k@_ϥΡApG</para>
- <screen>&prompt.root; <userinput>cd /usr/ports/editors/joe</userinput></screen>
- <screen>&prompt.root; <userinput>make clean</userinput></screen>
-
- <para>pGQn@MҦ ports ͪȦsơAhun^ ports ڥؿYiG</para>
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput></screen>
- <screen>&prompt.root; <userinput>make clean</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="make-package">
- <para>pwˤ@ӷs portAå](package)_ӡH</para>
- </question>
-
- <answer>
- <para>Nw˧n饴]_ӡA\hKQʡG]AbOtΤAiѨ䥦ϥΡA
- αNӦnXDisQΦ package sֳtwˡC
- H <filename role="package">editors/joe</filename> ҪܡAhG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/editors/joe</userinput></screen>
- <screen>&prompt.root; <userinput>make package</userinput></screen>
-
- <para>p|btΤWwˤ@ӷs joe nAñNn饴](package)_ӡC
- package w]|b <filename>/usr/ports/editors/joe</filename> ؿUApGƱ涰޲zܡAijpUBJG</para>
-
- <screen>&prompt.root; <userinput>mkdir -p /usr/ports/packages</userinput></screen>
-
- <para>Hᥴ] packages |sbؿUAåBtη|۰ʰAHK޲zC
- pGݭnbw˧A@ֲMsɴүdUӪȦsؿAhitX make clean @_ϥΡApG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/editors/joe</userinput></screen>
- <screen>&prompt.root; <userinput>make package clean</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="make-depend-package">
- <para>p󥴥]@ portAñNҦ̪ۨ ports ]]_ӡH</para>
- </question>
-
- <answer>
- <para>] <link linkend="make-package">make package</link> u]@MA
- ̿઺ ports èS@_]Ao|X{@ӱ`J쪺DG
- NOpG@ port ݭn̿䥦 portsA򥲶N䥦 ports ]@_]A_hw packages |̩ۨʪDC
- H <filename role="package">sysutils/portupgrade</filename> ҡG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/sysutils/portupgrade</userinput></screen>
- <screen>&prompt.root; <userinput>make DEPENDS_TARGET=package package</userinput></screen>
-
- <para>p|Ҧ portupgrade Ҭۨ̿઺ ports @֥]A]]AۤvC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="pkg-create">
- <para>p@Ӥwgw˪ port ]H</para>
- </question>
-
- <answer>
- <para>pGw˦n@ӮMAƫeå]AƫQ]ܡAhG
- H <filename role="package">editors/joe</filename> ҡG</para>
-
- <screen>&prompt.root; <userinput>cd /var/db/pkg</userinput></screen>
- <screen>&prompt.root; <userinput>pkg_create -b joe-{}</userinput></screen>
-
- <para>|Nww˪ port ]_ӡAb <filename>/var/db/pkg</filename> ؿUC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="make-clean">
- <para>pMz ports sҲͪȦsơH</para>
- </question>
-
- <answer>
- <para>bw port ɭԡA|sĶһݭnu@ؿ(work)A]q`w˦n@ӮMA|MȦsؿAH`ٵwЪŶC
- H <filename role="package">editors/joe</filename> ҡG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/editors/joe</userinput></screen>
- <screen>&prompt.root; <userinput>make clean</userinput></screen>
-
- <para>pGOƱMҦ ports ȦsؿAhG</para>
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput></screen>
- <screen>&prompt.root; <userinput>make clean</userinput></screen>
-
- <para>pGOƱMҦ ftp ȦsؿAhG</para>
- <screen>&prompt.root; <userinput>cd /usr/ports/ftp</userinput></screen>
- <screen>&prompt.root; <userinput>make clean</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="make-distclean">
- <para>pMz ports sҲͪȦsơAH tarball ɡH</para>
- </question>
-
- <answer>
- <para>b <link linkend="make-clean">make clean</link> ȥuOMsһݭnu@ؿ(work)AèSNsĶ
- ports ɤ@֤U tarball R(۹ tarball w]|sb <filename>/usr/ports/distfiles</filename>)
- pGQ tarball @ֲMܡAH <filename role="package">editors/joe</filename> ҡG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/editors/joe</userinput></screen>
- <screen>&prompt.root; <userinput>make distclean</userinput></screen>
-
- <para><userinput>make distclean</userinput> BJ]tF <userinput>make clean</userinput>
- \A]NOF|R tarball ~Aٷ|@ֲMsĶɪȦs work ؿC</para>
-
- <para>pGOƱMҦ ports Ȧs work ؿ tarballAhG</para>
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput></screen>
- <screen>&prompt.root; <userinput>make distclean</userinput></screen>
-
- <para>ӦpGOƱMҦ ftp work ؿ tarballAhG</para>
- <screen>&prompt.root; <userinput>cd /usr/ports/ftp</userinput></screen>
- <screen>&prompt.root; <userinput>make distclean</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="make-depends-list">
- <para>pbw ports edߩҨ̿઺MH</para>
- </question>
-
- <answer>
- <para>bw ports eAiHdߩҨ̿઺MC
- H <filename role="package">mail/p5-Mail-SpamAssassin</filename> ҡG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/mail/p5-Mail-SpamAssassin</userinput></screen>
- <screen>&prompt.root; <userinput>make all-depends-list</userinput></screen>
- <para><userinput>make all-depends-list</userinput> ܦMҦ̪ۨMC</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/mail/p5-Mail-SpamAssassin</userinput></screen>
- <screen>&prompt.root; <userinput>make pretty-print-build-depends-list</userinput></screen>
- <para><userinput>make all-depends-list</userinput> ܦMbsĶһݭnMC</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/mail/p5-Mail-SpamAssassin</userinput></screen>
- <screen>&prompt.root; <userinput>make pretty-print-run-depends-list</userinput></screen>
- <para><userinput>make all-depends-list</userinput> ܦMnɩһݭnMC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="make-deinstall">
- <para>p󲾰ww˪ portsH</para>
- </question>
-
- <answer>
- <para>H <filename role="package">editors/joe</filename> ҡG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/editors/joe</userinput></screen>
- <screen>&prompt.root; <userinput>make deinstall</userinput></screen>
-
- <para>άOϥ <userinput>pkg_delete</userinput>G</para>
- <screen>&prompt.root; <userinput>pkg_delete joe-{version}</userinput></screen>
-
- <para>ɭԮM󤧶̩ۨʷ|ɭPLkApGnjܡAhG</para>
- <screen>&prompt.root; <userinput>pkg_delete -f joe-{version}</userinput></screen>
- <para>Ъ`NGܦi|ɭP䥦̨ۨon骺M_ӥX{DC</para>
- <para>ܩG̪tOAаѦ <link linkend="deinstall-vs-pkg-delete">make deinstall P pkg_delete 򤣦P</link></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="make-deinstall-depends">
- <para>p@ֲҬ̪ۨ portsH</para>
- </question>
-
- <answer>
- <para>H <filename role="package">sysutils/portupgrade</filename> ҡG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/sysutils/portupgrade</userinput></screen>
- <screen>&prompt.root; <userinput>make deinstall-depends</userinput></screen>
-
- <para>榹BJeAЪ`NO_|LM]@P̪ۨCijѦ
- <link linkend="make-depends-list">make-depends-list</link> kˬdC</para>
-
- <para>άOϥ</para>
- <screen><userinput>pkg_delete</userinput></screen>
- <para>o˭Y̸ۨӮM󪺸ܡA|ĵiӤ|CDt~[F -f ѼƨӱjC</para>
- <screen>&prompt.root; <userinput>pkg_delete -r portupgrade-{version}</userinput></screen>
- <para>ܩG̪tOAаѦ <link linkend="deinstall-vs-pkg-delete">make deinstall P pkg_delete 򤣦P</link></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="make-reinstall">
- <para>p󭫷swˤww˹L portsH</para>
- </question>
-
- <answer>
- <para>sw˪eOGew˹LΥثewwˡCH <filename role="package">editors/joe</filename> ҡG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/editors/joe</userinput></screen>
- <screen>&prompt.root; <userinput>make deinstall clean install</userinput></screen>
-
- <para>άO</para>
- <screen>&prompt.root; <userinput>cd /usr/ports/editors/joe</userinput></screen>
- <screen>&prompt.root; <userinput>make reinstall</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="make-search">
- <para>pHrjM portsH</para>
- </question>
-
- <answer>
- <para>pGnq ports collection MPr "ldap" portsAhG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput></screen>
- <screen>&prompt.root; <userinput>make search key=ldap</userinput></screen>
-
- <para>pGunqP ftp ports UMPr "ldap" portsAhG</para>
- <screen>&prompt.root; <userinput>cd /usr/ports/ftp</userinput></screen>
- <screen>&prompt.root; <userinput>make search key=ldap</userinput></screen>
-
- <para>٦t@ӥΪkAkuON key nameCpGwgDnjM ports W١AΥuQW٬r "ldap"A hG</para>
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput></screen>
- <screen>&prompt.root; <userinput>make search name=ldap</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="upgrade-ports">
- <para>pɯŤww˪ portsH</para>
- </question>
-
- <answer>
- <para>pGwgwˮMAƫɯŪܡAª portCH <filename role="package">editors/joe</filename> ҡG</para>
- <screen>&prompt.root; <userinput>cd /usr/ports/editors/joe</userinput></screen>
- <screen>&prompt.root; <userinput>make clean reinstall</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="pkg-info">
- <para>pdߥثetΦwˤFǮMH</para>
- </question>
-
- <answer>
- <para>dߥثetΤww˪MG</para>
-
- <screen>&prompt.root; <userinput>pkg_info</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="pkg-info-grep">
- <para>pdߥثetΦSw˳orMH</para>
- </question>
-
- <answer>
- <para>]n䪺rO joe ܡG</para>
- <screen>&prompt.root; <userinput>pkg_info | grep joe</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="pkg-info-W">
- <para>pd߬Yɮ׬OݩǮMH</para>
- </question>
-
- <answer>
- <para>pGQd <filename>/usr/local/bin/joe</filename> OݩӮM󪺸ܡAhG</para>
- <screen>&prompt.root; <userinput>pkg_info -W /usr/local/bin/joe</userinput></screen>
- <para>pGS^ǥTܡAN۳oɮ׬O FreeBSD تC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="pkg-info-L">
- <para>pd߬YӮMwˤFɮסH</para>
- </question>
-
- <answer>
- <para>pGQdߥثetΩҦw˪ <filename role="package">joe</filename> ]tFɮסAhG</para>
- <screen>&prompt.root; <userinput>pkg_info -L /var/db/pkg/joe-{version}</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="reinstall-upgrade">
- <para>pwª portsH</para>
- </question>
-
- <answer>
- <para>ɭԷ|]̩ۨʡAάOsDAӷ|QªMC
- o̤ЪkOQ CVS nBA^kHeªsblAHwªMC</para>
-
- <para>AYڭ̭n^_Y@ӮM󪺪ɡAݭnhd FreeBSD ports CVS repositoryC
- ̱`NO <ulink url="http://www.freshports.org/">Freshports</ulink> B FreeBSD
- <ulink url="http://lists.freebsd.org/pipermail/cvs-all/">Mailing FreeBSD cvs</ulink> άO FreeBSD
- <ulink url="http://www.freebsd.org/cgi/cvsweb.cgi/ports/">ports cvsweb</ulink>C</para>
-
- <para>dӮM󪩥Ҩ̦slANק CVS tagC@w] ports CVS tag |gb <filename>/usr/share/examples/cvsup/ports-supfile</filename>
- Apn^ 2002/10/05 ܡAhG</para>
- <screen>&prompt.root; <userinput>vi /usr/share/examples/cvsup/ports-supfile</userinput></screen>
- <screen>*default date=2002.10.05.00.00.00 #N date 令</screen>
-
- <para>MӤ@ CVSup csup ɭԤ@ˡA CVSup csup (make update)Aɪ
- ports collections N|^ɪΡAӮMª]|X{b ports collections Aunw˧YiC</para>
-
- <para>pGȬOQ^Y portsAh[WB~TApȧƱ <filename role="package">lang/perl5.8</filename> ^A
- ӧڭ̱oݩ lang @AhG</para>
- <screen>&prompt.root; <userinput>vi /usr/share/examples/cvsup/ports-supfile</userinput></screen>
- <screen>#ports-all #N ports-all Хܰ_</screen>
- <screen>ports-lang #[Jo</screen>
- <para>̫A CVSup csup Aæw˧YiCثeYƱW^@ portAh·СC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="upgrade-ports-mk">
- <para>ps ports MkH</para>
- </question>
-
- <answer>
- <para>Mk (<filename>/usr/ports/Mk</filename>) OsĶ ports ɩҰѦҪ]wAɭYo ports collections ӷsAӾɭP Mk ešAɴNOӧs Mk ɭԤFC</para>
- <screen>&prompt.root; <userinput>cd /usr/src</userinput></screen>
- <screen>&prompt.root; <userinput>make update</userinput></screen>
- <screen>&prompt.root; <userinput>cd /usr/src/share/mk</userinput></screen>
- <screen>&prompt.root; <userinput>make install</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="make-use-sed-inplace">
- <para>pѨMw ports ɥX{ sed -i ~H</para>
- </question>
-
- <answer>
- <para>] BSD style sed A]NO BSD ۦ sed AP@ ports sĶҰ檺 sed @PAҥH|ɭP@ǻyk~Cɥw sed_inplace (<filename role="package">textproc/sed_inplace</filename>)AMAw˭쥻Lkw˪ portsG</para>
- <screen>&prompt.root; <userinput>make -DUSE_REINPLACE install</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="pkg-version">
- <para>pCXҦiHɯŪ portsH</para>
- </question>
-
- <answer>
- <para>ports collection st׫ܧ֡AbCs ports collections A|X{ثe{
- bw˪MٷsAiHOtΦۦzôѥiɯŮM󪺦CG</para>
- <screen>&prompt.root; <userinput>pkg_version -c</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="grep-defined-makefile">
- <para>po ports ҴѪsĶѼơH</para>
- </question>
-
- <answer>
- <para>Ҧ ports collections ҴѪsĶѼƳ|b Makefile ɮפԭzA
- p <filename role="package">sysutils/portupgrade</filename> ܡAhOb <filename>/usr/ports/sysutils/portupgrade/Makefile</filename>
- ɮפUC</para>
- <screen>&prompt.root; <userinput>cd /usr/ports/sysutils/portupgrade</userinput></screen>
- <screen>&prompt.root; <userinput>make -DNOPORTDOCS install</userinput></screen>
-
- <para>w˦ ports ɡA|N NOPORTDOCS ҹѼƫwihC</para>
- <para>ɭԳ]wHʤƪ ports |bw˫eѰѼƨѿܡAOj ports S
- ѡA]ۦhjMisĶѼơAbڴѪ覡pUG</para>
- <screen>&prompt.root; <userinput>cd /usr/ports/sysutils/portupgrade</userinput></screen>
- <screen>&prompt.root; <userinput>grep defined Makefile</userinput></screen>
-
- <para>pXGiHDҦѪisĶѼơAMɷ|hX䥦ơA|oӽTO@Ӥ
- iѦҪ覡C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="make-configure-args">
- <para>pʥ[JsĶ ports ѼơH</para>
- </question>
-
- <answer>
- <para>b <link linkend="grep-defined-makefile">eҭz</link> kAO ports collections ѪeUAɭԨäOҦӳnҤ䴩ѼƳ|Ǧb ports collections A]ɭԷ|ݭnʥ[JsĶѼơC</para>
- <para>p ftp/pure-ftpd ApGQ inetd 䴩sJﶵAèSQ ports collections үǤJA]ʥ[WoӽsĶѼơApUG</para>
- <screen>&prompt.root; <userinput>cd /usr/ports/ftp/pure-ftpd</userinput></screen>
- <screen>&prompt.root; <userinput>make CONFIGURE_ARGS+="--without-inetd" install</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="make-prefix">
- <para>pw ports w˸|H</para>
- </question>
-
- <answer>
- <para>w] ports collecions wwƦw˪| (<filename>/usr/local/</filename>)ApGQNMw˦bw]|ܡAiHʫww˸|CH <filename role="package">editors/joe</filename> ҡAhG</para>
- <screen>&prompt.root; <userinput>cd /usr/ports/editors/joe</userinput></screen>
- <screen>&prompt.root; <userinput>make PREFIX=/usr install</userinput></screen>
- <para> joe N|Nɮ׹b /usr ؿUAӤOw] /usr/local ؿUC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="force-pkg-register">
- <para>w ports X{ FORCE_PKG_REGISTER ~T</para>
- </question>
-
- <answer>
- <para>аѦ Ohaha <ulink url="http://ohaha.ks.edu.tw/faq-0003.htm">FAQ</ulink>C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="shared-object-not-found">
- <para>w ports X{ Shared object libintl.so.X not found ~T</para>
- </question>
-
- <answer>
- <para>аѦ Ohaha <ulink url="http://ohaha.ks.edu.tw/faq-0004.htm">FAQ</ulink>C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="pkg-add">
- <para>pw packagesH</para>
- </question>
-
- <answer>
- <para>ثe FreeBSD packages O .tgz ҥ]CpGQwˤ@ packages Aiϥ pkg_addApwˤ@ joe tgzG</para>
- <screen>&prompt.root; <userinput>pkg_add joe-{version}.tgz</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="pkg-add-force">
- <para>pjw packagesH</para>
- </question>
-
- <answer>
- <para>ѩ󦳨 packages |PL packages ̩ۨʪYAҥHw˨ packages ~
-ॿ`wˡC</para>
- <para>pGnjw packages AiHw˨Ǧ̩ۨ packages An`NOjw
-Gi|ɭPιB@`Cjw packages OpUApjwˤ@ joe tgzG</para>
- <screen>&prompt.root; <userinput>pkg_add -f joe-{version}.tgz</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="pkg-info-r">
- <para>pd packages PL packages ̩ۨʡH</para>
- </question>
-
- <answer>
- <para>ѩ󦳨 packages |PL packages ̩ۨʪYAҥHw˨ packages ~
-ॿ`wˡC</para>
- <para>d packages PL packages ̩ۨʪOpUApd߻P portupgrade ̪ۨL packagesG</para>
- <screen>&prompt.root; <userinput>pkg_info -r portupgrade-{version}.tgz</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="pkg-add-r">
- <para>pw˻ݪ packagesH</para>
- </question>
-
- <answer>
- <para>س]w覡AO PACKAGEROOTApG</para>
- <screen>&prompt.root; <userinput>setenv PACKAGEROOT ftp://ftp.tw.freebsd.org</userinput></screen>
-
- <para>t@ؤ覡O]w PACKAGESITEAnBOYӯx packages xäOŦXx誺]wΧA
-Qۤvw@Ӹ|C</para>
- <para>H ftp.tw.freebsd.org i386 current pakcages ҡG</para>
- <screen>&prompt.root; <userinput>setenv PACKAGESITE ftp://ftp.tw.freebsd.org/pub/FreeBSD/ports/i386/packages-current/Latest/</userinput></screen>
-
- <para>ؤ覡ܨ䤤@جҥiAUӪBJ@ˡC</para>
- <para>nw packages ɭԡAp portupgrade ܡAhG</para>
- <screen>&prompt.root; <userinput>pkg_add -r portupgrade</userinput></screen>
-
- <para>htη|۰ʩ ftp.tw.freebsd.org ҦP portupgrade ̪ۨ packages æwˡC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="make-index">
- <para>ps INDEX ӪH</para>
- </question>
-
- <answer>
- <para>4.x INDEX <filename>/usr/ports/INDEX</filename>A5.x <filename>/usr/ports/INDEX-5</filename>AHC</para>
- <para>INDEX O ports Ҧ̵ۨTӪAYsܡA|ɭP ports ӥѡC
-x観ws INDEXApGQۦsܡAhG</para>
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput></screen>
- <screen>&prompt.root; <userinput>make index</userinput></screen>
-
- <para>pGQUx̷s INDEXAhG</para>
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput></screen>
- <screen>&prompt.root; <userinput>make fetchindex</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="make-readmes">
- <para>ps INDEX HTMLH</para>
- </question>
-
- <answer>
- <para>FreeBSD ѤFκ覡[ ports collectionAYiϥ lynx, w3m, links Ψ䥦is{Ӭd\Cs@ ports collection 覡pUG</para>
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput></screen>
- <screen>&prompt.root; <userinput>make readmes</userinput></screen>
-
- <para>pGOȶnثeؿUTAγ@sY@UTAp /usr/ports/ftp ܡAhG</para>
- <screen>&prompt.root; <userinput>cd /usr/ports/ftp</userinput></screen>
- <screen>&prompt.root; <userinput>make readme</userinput></screen>
- <para>hȷ|s /usr/ports/ftp oӥؿTAWPUؿҤ|ʨC榨\A|b۹ؿU README.html ɮסC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="sup-refuse">
- <para>pwY ports ports updateH</para>
- </question>
-
- <answer>
- <para>Y ports UYǤΤAhiHb ports update ɡAsAH`ٺWePɶCunק <filename>/usr/sup/refuse</filename> oɡC</para>
- <screen>&prompt.root; <userinput>ports/french</userinput></screen>
- <screen>&prompt.root; <userinput>ports/german</userinput></screen>
- <screen>&prompt.root; <userinput>ports/lang/perl5.8</userinput></screen>
- <para>hWCؿN|sC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="deinstall-vs-pkg-delete">
- <para>make deinstall P pkg_delete 򤣦PH</para>
- </question>
-
- <answer>
- <para>²ӻAmake deinstall | portAåB|ѷӨ̪ۨMC</para>
- <para>pkg_delete b port eA|ѷӨ̪ۨMAåB pkg_delete 䴩 wild card ApnҦ p }Y portsAhG</para>
- <screen>&prompt.root; <userinput>cd /var/db/pkg</userinput></screen>
- <screen>&prompt.root; <userinput>pkg_delete p*</userinput></screen>
-
- <para>n`NOApGϥ make deinstallAh̦nTwtΥثeҦw˪AP ports collection ܪŦXA_hi|X{Dwʿ~F pkg_delete O]
-RtΤҦw˪AҥHSDC</para>
- <para>]AyܻAtΩҦw˪ŦX ports collections AhiHϥ make deinstall pkg_deleteA_h̦ܳn pkg_deleteC</para>
- </answer>
- </qandaentry>
-
- </qandaset>
- </chapter>
-
- &bibliography;
-</book>
diff --git a/zh_TW.Big5/books/fdp-primer/overview/chapter.xml b/zh_TW.Big5/books/fdp-primer/overview/chapter.xml
deleted file mode 100644
index 82c23be37f..0000000000
--- a/zh_TW.Big5/books/fdp-primer/overview/chapter.xml
+++ /dev/null
@@ -1,241 +0,0 @@
-<?xml version="1.0" encoding="big5"?>
-<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved.
-
- Redistribution and use in source (SGML DocBook) and 'compiled' forms
- (SGML HTML, PDF, PostScript, RTF and so forth) with or without
- modification, are permitted provided that the following conditions
- are met:
-
- 1. Redistributions of source code (SGML DocBook) must retain the above
- copyright notice, this list of conditions and the following
- disclaimer as the first lines of this file unmodified.
-
- 2. Redistributions in compiled form (transformed to other DTDs,
- converted to PDF, PostScript, RTF and other formats) must reproduce
- the above copyright notice, this list of conditions and the
- following disclaimer in the documentation and/or other materials
- provided with the distribution.
-
- THIS DOCUMENTATION IS PROVIDED BY NIK CLAYTON "AS IS" AND ANY EXPRESS OR
- IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-
- $FreeBSD$
- Original revision: 1.23
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="overview">
- <title></title>
-
- <para>wѻP FreeBSD pCuqq FreeBSD \ӻQnA
- FreeBSD p(HUҥH FDP ӥN FreeBSD Documentation Project
- Yg) hPoǤ󼶼gBsA]zIw^mOQ_QC</para>
-
- <para>̥DnتANOMiDzGyFDP [cǡzByp󼶼gô FDPzB
- yp󦳮ĹBΤuӨUZzC</para>
-
- <para><indexterm>
- <primary>Membership</primary>
- </indexterm>
- ڭwCӼߪӤhӥ[J FDP CCFDP äwC륲XhֽZqA~[JC
- zߤ@n@NOq\ &a.doc; C</para>
-
- <para>ŪAzN|G</para>
-
- <itemizedlist>
- <listitem>
- <para>AѦǤO FDP Һ@C</para>
- </listitem>
-
- <listitem>
- <para>iH FDP Һ@ SGML lC</para>
- </listitem>
-
- <listitem>
- <para>Dpӹ@קC</para>
- </listitem>
-
- <listitem>
- <para>DpZۤvקﳡAó̫᥿iJ FreeBSD 󤺡C</para>
- </listitem>
- </itemizedlist>
-
- <sect1 xml:id="overview-doc">
- <title>FreeBSD 󪺲զ</title>
-
- <para>FDP `@td FreeBSD 4 OG</para>
-
- <variablelist>
- <varlistentry>
- <term>uWU(manual)</term>
-
- <listitem>
- <para>^媩t manual äO FDP ҼgA]̬Oݩ base system C
- MӡAFDP iH(]o򰵹L)קoǤAoǤgoMAƦܬOɥ~aC</para>
-
- <para>½ĶζtdNtΪuWU½ĶPyC oĶ FDP @C</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FAQ</term>
-
- <listitem>
- <para>FAQ DnObU׾© newsgroup |`ݨΦi|ݨ쪺 FreeBSD DP C
- (²ANOyݵz榡) q`|\bo̭ݵ榡A|ӪԲӤeC</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>ϥΤU(Handbook)</term>
-
- <listitem>
- <para>ϥΤUDnO FreeBSD ϥΪ̴ѸԺɪuWѦҸơC</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Web site</term>
-
- <listitem>
- <para>FreeBSD DnUФ譱 WWW Aw}} <link xlink:href="&url.base;/index.html">http://www.FreeBSD.org/</link>
- Hγ\hL mirror CoO\hHĤ@IJ FreeBSD aC</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>o|ӤզizL FreeBSD CVS tree ӨoC]NOAoǤ󪺭קOHO}A
- ӥBL׬OֳiHιO <application>CSup</application>, <application>CVSup</application>
- <application>CTM</application> NX(checkout)ébۤvWƥΰƥѦҵγ~C</para>
-
- <para>~A\hH|gDZоǤκ@ FreeBSD eC(Y@̦PN)䤤ǸƷ|Osb FreeBSD
- CVS repository CӨLAi@̤ƱQb FreeBSD repository ӥtsLBC
- `AFDP |ɤOѳoǤ󪺳sC</para>
- </sect1>
-
- <sect1 xml:id="overview-before">
- <title>b}ue...</title>
-
- <para>尲]zwgAѡG</para>
-
- <itemizedlist>
- <listitem>
- <para>pq FreeBSD CVS repository sۤvqW FreeBSD 󳡥(H <application>CVS</application>
- <application>CSup</application> <application>CVSup</application> άO
- <application>CTM</application>) άO
- <application>CVSup</application> ӤU <emphasis>checked-out</emphasis> ƥ</para>
- </listitem>
-
- <listitem>
- <para>p FreeBSD Ports M޲z &man.pkg.add.1; ӤUBw˳nC</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 xml:id="overview-quick-start">
- <title>ֳtWg</title>
-
- <para>YQۦոլݡAæHߥiH@oANӤUBJaC</para>
-
- <procedure>
- <step>
- <para>w <package>textproc/docproj</package> oӲզX port(meta-port)C</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/textproc/docproj</userinput>
-&prompt.root; <userinput>make JADETEX=no install</userinput></screen>
- </step>
-
- <step>
- <para>U FreeBSD <filename>doc</filename> tree 쥻WG
- L׬O CSup CVSup <literal>checkout</literal> ҦA
- άOƻs㪺 CVS repository 쥻WiHC</para>
-
- <para>YQbWu]̧Cת CVS repository NnA򥲶n
- checkout X <filename>doc/share</filename> H <filename>doc/en_US.ISO8859-1/share</filename>
- oӥؿ~C</para>
-
- <screen>&prompt.user; <userinput>cvs checkout doc/share</userinput>
-&prompt.user; <userinput>cvs checkout doc/en_US.ISO8859-1/share</userinput></screen>
-
- <para>YwЪŶٺiHܡAiHҦyt doc check out XӡG</para>
-
- <screen>&prompt.user; <userinput>cvs checkout doc</userinput></screen>
- </step>
-
- <step>
- <para>i̻ݭnq repository checkout XӧAQקY{yΤ峹eC
- Y⼶gsѩηs峹ܡAiHѦҲ{@ҨӰC</para>
-
- <para>|ҨӻAYQggs峹AeOb FreeBSD P Windows 2000 إ VPN suA
- iHUo˪@kG</para>
-
- <procedure>
- <step>
- <para>Check out <filename>articles</filename> ؿG</para>
-
- <screen>&prompt.user; <userinput>cvs checkout doc/en_US.ISO8859-1/articles</userinput></screen>
- </step>
-
- <step>
- <para>ƻs{峹@dCboӨҤlAzMws峹b
- <filename>vpn-w2k</filename> ؿUC</para>
-
- <screen>&prompt.user; <userinput>cd doc/en_US.ISO8859-1/articles</userinput>
-&prompt.user; <userinput>cp -R committers-guide vpn-w2k</userinput></screen>
- </step>
- </procedure>
-
- <para>YOnק{峹AO FAQ(\b <filename>doc/en_US.ISO8859-1/books/faq</filename>)
- Anq repository X(check out)G</para>
-
- <screen>&prompt.user; <userinput>cvs checkout doc/en_US.ISO8859-1/books/faq</userinput></screen>
- </step>
-
- <step>
- <para>Hs边ӽsg <filename>.xml</filename> ɡC</para>
- </step>
-
- <step>
- <para>H <buildtarget>lint</buildtarget> UѼơAӧֳt˴󵲺cγsL~A
- HUoӫOAڤW|iӮɪsѹL{AuOդ󦳵L~C</para>
-
- <screen>&prompt.user; <userinput>make lint</userinput></screen>
-
- <para>sѪ@NɡAoɧAiH <varname>FORMATS</varname>
- ܼƨӫwͪ榡@ءC ثe䴩榡@G
- <literal>html</literal>, <literal>html-split</literal>,
- <literal>txt</literal>, <literal>ps</literal>,
- <literal>pdf</literal>, <literal>rtf</literal> C
- Ҥ䴩榡C̷sAiѦ
- <filename>doc/share/mk/doc.docbook.mk</filename> ɡC аOoG
- b@OAYnPɲͦhخ榡ܡAϥΤ޸(quotes)ӱNoǮ榡A_ӡC</para>
-
- <para>|ҨӻAYun
- <literal>html</literal> 榡NnANG</para>
-
- <screen>&prompt.user; <userinput>make FORMATS=html</userinput></screen>
-
- <para>YƱ榳 <literal>html</literal> <literal>txt</literal> 榡ܡA
- Ain⦸ &man.make.1; O~৹G</para>
-
- <screen>&prompt.user; <userinput>make FORMATS=html</userinput>
-&prompt.user; <userinput>make FORMATS=txt</userinput></screen>
-
- <para>A]iHγ@OӧG</para>
-
- <screen>&prompt.user; <userinput>make FORMATS="html txt"</userinput></screen>
- </step>
-
- <step>
- <para>̫AH &man.send-pr.1; Ӵק諸C</para>
- </step>
- </procedure>
- </sect1>
-</chapter>
diff --git a/zh_TW.Big5/books/fdp-primer/tools/chapter.xml b/zh_TW.Big5/books/fdp-primer/tools/chapter.xml
deleted file mode 100644
index bb447eb65c..0000000000
--- a/zh_TW.Big5/books/fdp-primer/tools/chapter.xml
+++ /dev/null
@@ -1,235 +0,0 @@
-<?xml version="1.0" encoding="big5"?>
-<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved.
-
- Redistribution and use in source (SGML DocBook) and 'compiled' forms
- (SGML, HTML, PDF, PostScript, RTF and so forth) with or without
- modification, are permitted provided that the following conditions
- are met:
-
- 1. Redistributions of source code (SGML DocBook) must retain the above
- copyright notice, this list of conditions and the following
- disclaimer as the first lines of this file unmodified.
-
- 2. Redistributions in compiled form (transformed to other DTDs,
- converted to PDF, PostScript, RTF and other formats) must reproduce
- the above copyright notice, this list of conditions and the
- following disclaimer in the documentation and/or other materials
- provided with the distribution.
-
- THIS DOCUMENTATION IS PROVIDED BY NIK CLAYTON "AS IS" AND ANY EXPRESS OR
- IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-
- $FreeBSD$
- Original revision: 1.32
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="tools">
- <title>u</title>
-
- <para>FDP ϥΤ@uӨU޲z FreeBSD Bഫ榡C
- ]AYni FDP u@ܡAnǷ|oǤu~C</para>
-
- <para>oǤu㳣iH Ports Packages ӦwˡAH`ٳ\hw˪uҡC</para>
-
- <para>zw˳oǤuA~ϥαUӦU`|Ш쪺ҤlC oǤu㪺ΪkA|b`ͨC </para>
-
- <tip>
- <title>ijw <package>textproc/docproj</package></title>
-
- <para>ˤF
- <package>textproc/docproj</package> iHٮɬ٤OAO
- զX port(meta-port)AëDnAuON@DZ`ΤuզX_ӦӤwC
- ˤFo port AyӡzN|۰ʤUBw˥ҷ|Ш쪺uFC
- YnBz媺ܡAijA <package>chinese/docproj</package> |nC</para>
-
- <para>bo packages AAi|ݭnϥ JadeTeX o macro ]wA
- @ܨϥθ macro ܡA|ۥh &tex;Cѩ &tex; OZjMA
- DAݭnX Postscript PDF 榡A_hNˤFC</para>
-
- <para>ҥHЦҼ{O_n`ٽsĶɶBwЪŶAHPwnn JadeTeX (H &tex;)
- FCYn@ָ˰_ӪܡG</para>
-
- <screen>&prompt.root; <userinput>make JADETEX=yes install</userinput></screen>
-
- <para>άOA˪ܡG</para>
-
- <screen>&prompt.root; <userinput>make JADETEX=no install</userinput></screen>
-
- <para>Ϊ̡A]iH <package>textproc/docproj-jadetex</package> άO <package>textproc/docproj-nojadetex</package> oӤ@ӸˡA
- ̳Owƥ]w <varname>JADETEX</varname> ܼƪ slave portsA
- @˷| docproj tOȦb󦳨S JadeTeX ӤwC
- Ъ`NGYunX HTML ASCII 榡ANθ <application>JadeTeX</application>A
- ӭYnX PostScriptBPDF 榡ANݭn &tex; ~C</para>
- </tip>
-
- <sect1 xml:id="tools-mandatory">
- <title>Ƥu</title>
-
- <sect2>
- <title>n</title>
-
- <para>odzObi FreeeBSD pɩҷ|ݭnΤWu{A
- ӥBiHΨഫ HTMLBplain textH RTF 榡CoǬMb
- <package>textproc/docproj</package> wgFC</para>
-
- <variablelist>
- <varlistentry>
- <term><application>Jade</application>
- (<package>textproc/jade</package>)</term>
-
- <listitem>
- <para>DSSSL W檺@{AiΨӧаOy(marked up)ഫL榡AOGHTML &tex;C</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><application>Tidy</application>
- (<package>www/tidy</package>)</term>
-
- <listitem>
- <para>HTML <quote>pretty printer</quote>AiΨӧ۰ʲͪ HTML ezo\ŪBHK@C</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><application>Links</application>
- (<package>www/links</package>)</term>
-
- <listitem>
- <para>rާ@Ҧ WWW s(browser)iH HTML ର plain text 榡C</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><application>peps</application>
- (<package>graphics/peps</package>)</term>
-
- <listitem>
- <para>󤤦ǹϬOs EPS 榡Aoǥnର PNG 榡A
- ~@siH`[ݡC</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
-
- <sect2>
- <title>DTD Entity</title>
-
- <para>ѩ FDP Ψ\h DTD EntityA]b}ueAnˤWoǤ~C</para>
-
- <variablelist>
- <varlistentry>
- <term>HTML DTD (<package>textproc/html</package>)</term>
-
- <listitem>
- <para>HTML OΩ WWW аOyAB]O FreeBSD ҨϥΪ榡C</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>DocBook DTD (<package>textproc/docbook</package>)</term>
-
- <listitem>
- <para>DocBook OMΨӻs@޳N󪺼ХܻyA
- FreeBSD 󳣬OH DocBook ҼgC</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>ISO 8879 entities
- (<package>textproc/iso8879</package>)</term>
-
- <listitem>
- <para>b ISO 8879:1986 19 entity Q\h DTD ҤjqϥΡA
- ]AFƾDzŸBԤBrŸ(y`Ÿ]O)HΧþŸC</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
-
- <sect2>
- <title>˦(Stylesheets)</title>
-
- <para>oǼ˦OΨഫBƤ󪺿ùܡBCLĪGBz</para>
-
- <variablelist>
- <varlistentry>
- <term>Modular DocBook ˦
- (<package>textproc/dsssl-docbook-modular</package>)</term>
-
- <listitem>
- <para>Modular DocBook ˦AOΨӧ DocBook аOyഫL榡AOG
- HTML RTFC</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
- </sect1>
-
- <sect1 xml:id="tools-optional">
- <title>Uu</title>
-
- <para>@woˤUCu~AOAˤF|eiUu@A
- ӥBiX榡]uʡC</para>
-
- <sect2>
- <title>n</title>
-
- <variablelist>
- <varlistentry>
- <term><application>JadeTeX</application>
- <application>teTeX</application>
- (<package>print/jadetex</package>
- <package>print/teTeX</package>)</term>
-
- <listitem>
- <para><application>Jade</application> P
- <application>teTeX</application> iΨӧ DocBook 榡ର
- DVI, Postscript PDF 榡CwˮɽаOo[W
- <application>JadeTeX</application> o macroAoˤ~|KˤWoӮMC</para>
-
- <para>YLNഫh榡(|ҡGun HTML, plain text, RTF oǮ榡N)
- ANθ
- <application>JadeTeX</application> P
- <application>teTeX</application>C p@ӥi٤U@ǪsĶɶBw˪ŶA
- ] <application>teTeX</application> jnܤ 30MB ŶC</para>
-
- <important>
- <para>YMwn
- <application>JadeTeX</application> H
- <application>teTeX</application> ܡAb˧ <application>JadeTeX</application> A
- nOo]w <application>teTeX</application> ~C
- <filename>print/jadetex/pkg-message</filename> ԲӤЬBJC</para>
- </important>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><application>Emacs</application>
- <application>XEmacs</application>
- (<package>editors/emacs</package>
- <package>editors/xemacs</package>)</term>
-
- <listitem>
- <para>o̽s边㦳Bz SGML DTD аO󪺯SҦC
- ӼҦѤ@ǫOA²ƩһݪrơAӥBiH֥ioͪ~C</para>
-
- <para>LAoǽs边äOƪFrs边iHΨӽsаOyC
- LAAiHzLWzo˪s边Aoc@~PIJvǡC</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Y˨LnΪBz SGML {AШӫH &a.doceng; DA
- p@ӡAӳnN|CJo̤ФFC</para>
- </sect2>
- </sect1>
-</chapter>
diff --git a/zh_TW.Big5/books/fdp-primer/translations/chapter.xml b/zh_TW.Big5/books/fdp-primer/translations/chapter.xml
deleted file mode 100644
index 44feef7f0f..0000000000
--- a/zh_TW.Big5/books/fdp-primer/translations/chapter.xml
+++ /dev/null
@@ -1,383 +0,0 @@
-<?xml version="1.0" encoding="big5"?>
-<!-- Copyright (c) 1999 Nik Clayton, All rights reserved.
-
- Redistribution and use in source (SGML DocBook) and 'compiled' forms
- (SGML HTML, PDF, PostScript, RTF and so forth) with or without
- modification, are permitted provided that the following conditions
- are met:
-
- 1. Redistributions of source code (SGML DocBook) must retain the above
- copyright notice, this list of conditions and the following
- disclaimer as the first lines of this file unmodified.
-
- 2. Redistributions in compiled form (transformed to other DTDs,
- converted to PDF, PostScript, RTF and other formats) must reproduce
- the above copyright notice, this list of conditions and the
- following disclaimer in the documentation and/or other materials
- provided with the distribution.
-
- THIS DOCUMENTATION IS PROVIDED BY NIK CLAYTON "AS IS" AND ANY EXPRESS OR
- IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-
- $FreeBSD$
- Original revision: 1.29
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="translations">
- <title>½Ķɪ`D</title>
-
- <para>O½Ķ FreeBSD (]tGFAQ, Handbook, tutorials, manual pages)`D(FAQ)C</para>
-
- <para> <emphasis>Dn</emphasis> OH FreeBSD w½Ķp½Ķ FAQ ӨӪA
- lZ̬ Frank Gr&uuml;nder <email>elwood@mc5sys.in-berlin.de</email> Aå
- Bernd Warken <email>bwarken@mayn.de</email> A½Ķ^^媩C</para>
-
- <para>The FAQ is maintained by the &a.doceng;.</para>
-
- <qandaset>
- <qandaentry>
- <question>
- <para>FAQ تO?</para>
- </question>
-
- <answer>
- <para>H۶VӶVhHѻP freebsd-doc l׾¡AӥBƱN FreeBSD ½ĶUػyC
- ڭ̧Ʊo FAQ ྨiରoǰѻP½Ķ̴ѧֳtѴbC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para><phrase>i18n</phrase> <phrase>l10n</phrase> OOH</para>
- </question>
-
- <answer>
- <para><phrase>i18n</phrase> O
- <phrase>internationalization</phrase> ²gA <phrase>l10n</phrase>
- hO <phrase>localization</phrase> ²gCodzOFѼgKӥΪ²gC</para>
-
- <para><phrase>i18n</phrase> NO}Y <quote>i</quote> ᭱ 18 ӦrA̫ᱵ <quote>n</quote>C
- PzA
- <phrase>l10n</phrase> hO}Y <quote>l</quote> ᭱ 10 ӦrA̫ᱵ <quote>n</quote>C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>MĶ̰ѻPQת mailing list ܡH</para>
- </question>
-
- <answer>
- <para>ڡAPyt½Ķ̳Uۦݪ mailing listsCo <link xlink:href="http://www.freebsd.org/docproj/translations.html">½ĶpM</link>
- CXU½ĶpԲ mailing lists άC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>ݭnhH@_ѻP½ĶܡH</para>
- </question>
-
- <answer>
- <para>MoAVhHѻP½ĶANV½AӥB^媩YWBsܡA
- U½Ķ]iH֦PBoC</para>
-
- <para>@woOM~Ķ̡A~ѻP½ĶC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>nDǻyOOH</para>
- </question>
-
- <answer>
- <para>zפWAn^D`ZAӥBܩaAQ½ĶynBΦۦpC</para>
-
- <para>^ëD@wn|CpAiHZ(Spanish) FAQ ½ĶIQ(Hungarian)C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>ӾǷ|ǵ{ϥΩOH</para>
- </question>
-
- <answer>
- <para>jPijbۤvW]إ FreeBSD CVS repository ƥ(ܤ֤󳡤)AiH
- <application>CTM</application>
- <application>CVSup</application> iHCHandbook "sBɯ FreeBSD"
- @pϥγoǵ{C</para>
-
- <para>~Aݭnx <application>CVS</application> ΪkC
- p@ӡAAiHd\PtBC</para>
-
- <para>[XXX To Do(|ZAݸɥR) -- gW⻡(tutorial)ӤЦpH CVSup
- o󳡤AHιݤPtC]</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>nX٦֭nڤ@_½ĶOH</para>
- </question>
-
- <answer>
- <para><link xlink:href="http://www.FreeBSD.org/docproj/translations.html">p½Ķ</link> oCFثewU½Ķ̦G
- ApGwgLH]bA@˪½Ķu@AФnƮOHOA
- лPLpôݬ٦ǦaiHWC</para>
-
- <para>YWåCXAy½ĶAάO]Hn½Ķ٥}ťܡANHH &a.doc; aC
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>SH½ĶکҨϥΪyAӫH</para>
- </question>
-
- <answer>
- <para>߰ڡAAnW <quote>FreeBSD
- <replaceable>Ay</replaceable> ½Ķp</quote> ҵ{AwWC</para>
-
- <para>OAP_O_WɶA]Au@ӤHb½ӤwA
- ]A½ĶGBPLi|ӤupôoǤu@OA¾dҦbC</para>
-
- <para>gH &a.doc; VjaťAdzƭn½ĶAMp½ĶN|s</para>
-
- <para>YAawgH FreeBSD mirror(M]) AȪܡANLpôA
- ø߰ݧAO_bWiHŶөpơA
- HάO_iH email b mailing list AȡC</para>
-
- <para>MAN}l½oA@}l½ĶɭԡAǽgTu|e
- &mdash; O FAQ աAάOpW⤧峹C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>wg½n@ǤFAӱHOH</para>
- </question>
-
- <answer>
- <para>onݱpөwC YAOb½Ķζ(O饻Bw)A
- L̷|ۤvy{ӨMw½ĶeAoǤjPy{|bL̺WgC</para>
-
- <para>YAOYytߤ@½Ķ(ΧAOtdY½ĶpA÷Q⦨G^X FreeBSD p)
- AANӧۤv½ĶGH FreeBSD pC(Ӹ`ЬݤUӰD)</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>ڬOӻytߤ@½Ķ̡Aӫ½ĶGHXhOH</para>
-
- <para>Ϊ</para>
-
- <para>ڭ̬O½ĶζAӫڭ̦½ĶGHXhOH</para>
- </question>
-
- <answer>
- <para>AХTwA½ĶG´zAåiTsĶA]NOG
- ⥦\{[cOiHTsĶ\C</para>
-
- <para>ثeAFreeBSD 󳣬Ob̤Wh <filename>doc/</filename> ؿC
- ӸӥؿUh̨ytӰRWA̷ ISO639 wq(<filename>/usr/share/misc/iso639</filename>
- o FreeBSD 1999/01/20 ٷs)C</para>
-
- <para>YAoӻyti|PsX覡(OG)
- Nӷ|UoˡAӨ̧AҨϥΪsX覡ӤC</para>
-
- <para>̫AAӫإߦnU󪺥ؿFC</para>
-
- <para>|ҨӻA](Swedish)½ĶAӷ|G</para>
-
- <programlisting>doc/
- sv_SE.ISO8859-1/
- Makefile
- books/
- faq/
- Makefile
- book.xml</programlisting>
-
- <para><literal>sv_SE.ISO8859-1</literal> O̷
- <filename>yt(lang).sX(encoding)</filename>
- WhӫإߪĶWC
- Ъ`NG䤤 <filename>Makefiles</filename> ɡA̬OΨӽsѪC</para>
-
- <para>MХ &man.tar.1; P &man.gzip.1; ӧA½ĶY_ӡAñH쥻pӡC</para>
-
- <screen>&prompt.user; <userinput>cd doc</userinput>
-&prompt.user; <userinput>tar cf swedish-docs.tar sv_SE.ISO8859-1</userinput>
-&prompt.user; <userinput>gzip -9 swedish-docs.tar</userinput></screen>
-
- <para>ۡA <filename>swedish-docs.tar.gz</filename> ŶWAYASۤvŶ(ISP)
- AiHɱH &a.doceng; ӡC</para>
-
- <para>٦AOo &man.send-pr.1; HqjaFAwgHX½ĶFA
- ٦AYHiH˾\BƼf󪺸ܡA½Ķ~nA
- ]o]U󴣤½Ķ~誺yZסC</para>
-
- <para>̫A|H(iOp`ޡAάO &a.doceng; )
- |˾\A½ĶAýT{O_i`sĶC~AL̷|SO`NUCXIG</para>
-
- <orderedlist>
- <listitem>
- <para>Aɮ׬O_ RCS tag (O "ID" )H</para>
- </listitem>
-
- <listitem>
- <para><filename>sv_SE.ISO8859-1</filename> O_iHQ <command>make all</command> sĶOH</para>
- </listitem>
-
- <listitem>
- <para><command>make install</command> O_GTH</para>
- </listitem>
- </orderedlist>
-
- <para>YDܡA˾\̷|m{AAo½ĶGiHTϥΡC</para>
-
- <para>YSDܡAN|ܧ֧A½ĶG commit ihFC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>iH[JYytάYa~F½ĶeܡH</para>
- </question>
-
- <answer>
- <para>ڭ̧Ʊ椣no򰵡C</para>
-
- <para>|ҨӻA]AdzƧ Handbook ½Ķ媩A
- çƱsB][A½Ķ Handbook 媩C</para>
-
- <para>ڭ̷QXӦԣ]A򤣧oǸTѵ^媩OH(άOwBZB嵥 &hellip;)
- ]Ai^yŪ̶]hɡA|QR FreeBSD ~C
- ~Ao]iH FreeBSD iסAMAoäOaưڡC</para>
-
- <para>YAY~ơA( &man.send-pr.1; )ѵ^媩 Handbook H@׭q
- AMA^媩׭qA½An½Ķ Handbook aC</para>
-
- <para>PA¡C</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>nӻytSrgih½ĶeOH</para>
- </question>
-
- <answer>
- <para>󤺩ҦD ASCII(Non-ASCII) rAnϥ SGML entities ~gihC</para>
-
- <para>²ӻAۤ@}Y|O &amp; Ÿ(&amp;)AMO entity W١A̫ᱵW(;)C</para>
-
- <para>o entity WٳO ISO8879 ҨqA port tree hb
- <package>textproc/iso8879</package>C</para>
-
- <para>HU|@ǨҤlG</para>
-
- <segmentedlist>
- <segtitle>EntityW</segtitle>
-
- <segtitle>ڼˤl</segtitle>
-
- <segtitle></segtitle>
-
- <seglistitem>
- <seg>&amp;eacute;</seg>
- <seg>&eacute;</seg>
- <seg>p <quote>e</quote>AñayB(acute accent)</seg>
- </seglistitem>
-
- <seglistitem>
- <seg>&amp;Eacute;</seg>
- <seg>&Eacute;</seg>
- <seg>j <quote>E</quote>AñayB(acute accent)</seg>
- </seglistitem>
-
- <seglistitem>
- <seg>&amp;uuml;</seg>
- <seg>&uuml;</seg>
- <seg>p <quote>u</quote>Añaհһytܤ(umlaut)</seg>
- </seglistitem>
- </segmentedlist>
-
- <para>bˤF iso8879 o port ANiHb
- <filename>/usr/local/share/xml/iso8879</filename> oǪԲӦCC</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>p٩IŪ̩OH</para>
- </question>
-
- <answer>
- <para>b^󤺡AŪ̳OH <quote>you</quote> Ӻ٩IAӦǻyèS/DϹjC</para>
-
- <para>YAҭn½yiHϧOoǮtAХθӻytb@޳NWҨϥΪ٩IaC
- pGeyxbܡAЧθʪ٩IӨNC</para>
-
- <!--
- K http://fatpipi.cirx.org/~vanilla/rules.txt
- pDnA½Ķ峹ɶq֥Ϊ٩IAڥLΦrC
- pGuoΡANĥβĤTH(ΡiLjӫDiAj)A٦NOνƼ(ΡiA̡jӫDiAj)A
- Mo٬OotX媺WUyNCpGLOg "I" ½Ķ ""AhLipDC
-
- O夺jhƪ"You..... you ...etc"
- 곣iHiAj²ƩάOקKAo\ŪɭԪZPӦUC
- -->
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>½ĶGnnW@ǨLTOH</para>
- </question>
-
- <answer>
- <para>MnC</para>
-
- <para>C^媩Z}YAq`|UeG</para>
-
- <programlisting>&lt;!--
- The FreeBSD Documentation Project
-
- &dollar;FreeBSD: doc/en_US.ISO8859-1/books/fdp-primer/translations/chapter.xml,v 1.5 2000/07/07 18:38:38 dannyboy Exp &dollar;
---&gt;</programlisting>
-
- <para>ڤWeiyPACZ|W &dollar;FreeBSD&dollar; o@H
- <literal>The FreeBSD Documentation Project</literal> ŧiC
- Ъ`NG&dollar;FreeBSD }YoO| CVS HۨCʦӦ۰ʧ諸A
- ҥHAsɮתܽЫO쪬(]NOung <literal>&dollar;FreeBSD&dollar;</literal> NnF)C</para>
-
- <para>½Ķ󤤡An &dollar;FreeBSD&dollar; oAåB
- <literal>FreeBSD Documentation Project</literal> oאּ
- <literal>The FreeBSD Ayt
- Documentation Project</literal>C</para>
-
- <para>~A٥[WĤTӫXA½ĶA쩳OH^媩Z@Ұ½ĶC</para>
-
- <para>]OAZ媩(Spanish)ɮ׶}YӬOoˡG</para>
-
- <programlisting>&lt;!--
- The FreeBSD Spanish Documentation Project
-
- &dollar;FreeBSD: doc/es_ES.ISO8859-1/books/fdp-primer/translations/chapter.xml,v 1.3 1999/06/24 19:12:32 jesusr Exp &dollar;
- Original revision: 1.11
---&gt;</programlisting>
- </answer>
- </qandaentry>
- </qandaset>
-</chapter>
diff --git a/zh_TW.Big5/books/fdp-primer/writing-style/chapter.xml b/zh_TW.Big5/books/fdp-primer/writing-style/chapter.xml
deleted file mode 100644
index 24bbace9f2..0000000000
--- a/zh_TW.Big5/books/fdp-primer/writing-style/chapter.xml
+++ /dev/null
@@ -1,440 +0,0 @@
-<?xml version="1.0" encoding="big5"?>
-<!-- Copyright (c) 1998 Nik Clayton, All rights reserved.
-
- Redistribution and use in source (SGML DocBook) and 'compiled' forms
- (SGML HTML, PDF, PostScript, RTF and so forth) with or without
- modification, are permitted provided that the following conditions
- are met:
-
- 1. Redistributions of source code (SGML DocBook) must retain the above
- copyright notice, this list of conditions and the following
- disclaimer as the first lines of this file unmodified.
-
- 2. Redistributions in compiled form (transformed to other DTDs,
- converted to PDF, PostScript, RTF and other formats) must reproduce
- the above copyright notice, this list of conditions and the
- following disclaimer in the documentation and/or other materials
- provided with the distribution.
-
- THIS DOCUMENTATION IS PROVIDED BY NIK CLAYTON "AS IS" AND ANY EXPRESS OR
- IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-
- $FreeBSD$
- Original revision: 1.48
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="writing-style">
- <title>󪺼g</title>
-
- <para>ѩ FreeBSD OѲh@̩Һ@AFOg@檺@eʡA
- ON͸@Ѫg@WhAЦUOonuC</para>
-
- <variablelist>
- <varlistentry>
- <term>ϥά^y</term>
-
- <listitem>
- <para>P@ӦrbP^y|ۤPkC
- JrPpAбĥά^ykC OG
- Ч <quote>color</quote>AӫD <quote>colour</quote>C
- Ч <quote>rationalize</quote>AӫD <quote>rationalise</quote>
- rJC</para>
-
- <note>
- <para>Y峹ĥέ^^y]iHAg峹ĥΦP@k~
- C Ӥ󪺨LAOѡBB manual
- hĥά^yC</para>
- </note>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>n²g</term>
-
- <listitem>
- <para>Фn²g(contraction)C аȥN㪺rgXӡC pG
- <quote>Don't use contractions</quote> oyΨ²gANnקKC</para>
-
- <para>ѭgkקK²g]ADO]p@ӦryNǡA
- BĶ̷|PǡC</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Tϥ serial comma Hιy</term>
-
- <listitem>
- <para>^qq`|r(,)@ӥyҴ쪺UتyϹjC
- åB|b̫@Ӵ쪺خɡA[WrAW <quote>and</quote>A
- ̫~O̫᪺ءC</para>
-
- <para>|ӨҤlAݬݤUoyG</para>
-
- <blockquote>
- <para>This is a list of one, two and three items.</para>
- </blockquote>
-
- <para>o@y쩳OTӶ(<quote>one</quote>B<quote>two</quote>
- B<quote>three</quote>)OHΪ̬OuӶ(<quote>one</quote>B
- <quote>two and three</quote>)OH</para>
-
- <para>]覡OH serial comma 覡A~ॿTFyNG</para>
-
- <blockquote>
- <para>This is a list of one, two, and three items.</para>
- </blockquote>
-
- <para>MӡAb½ĶL{Aijr(,)אּy(B)AåB
- <quote>and</quote> iӤ½AHKyNyC</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>קKϥص</term>
-
- <listitem>
- <para>иյקKϥص(redundant phrase)C רO
- <quote>oӫO</quote>B<quote>oɮ</quote>B<quote>man
- O</quote> oXӳq`OnصC</para>
-
- <para>HO(command)譱|ҡAΪkOĤGyҤlG</para>
-
- <informalexample>
- <para>ϥ <command>cvsup</command> OӧslXC</para>
- </informalexample>
-
- <informalexample>
- <para>ϥ <command>cvsup</command> ӧslXC</para>
- </informalexample>
-
- <para>Hɮ(filename)譱|ҡAΪkOĤGyҤlG</para>
-
- <informalexample>
- <para>&hellip; bo
- <filename>/etc/rc.local</filename> ɮ &hellip;</para>
- </informalexample>
-
- <informalexample>
- <para>&hellip; b
- <filename>/etc/rc.local</filename> &hellip;</para>
- </informalexample>
-
- <para>H man(manual)譱|ҡAΪkOĤGy(Ψ SGML
- <tag>citerefentry</tag> )G</para>
-
- <informalexample>
- <para>Х <command>man csh</command> OHѾ\ԱC</para>
- </informalexample>
-
- <informalexample>
- <para>ԱаѾ\ &man.csh.1;C</para>
- </informalexample>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Cy᭱[WӪť</term>
-
- <listitem>
- <para>FϤ峹\ŪAH <application>Emacs</application>
- ueBΡAЦbC@yl᭱[WӪťաC</para>
-
- <para>LAy(.)᭱jgrA
- ä@wܫe@ӥyIҦbBNOylA
- רOWr``|o{HC O <quote>Jordan K. Hubbard</quote>
- oHWNOܦnҡGy᭱ťաAMOjg
- <literal>H</literal>AMӳo֩wäOqylC</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>g檺Ӹ`AiѾ\ William Strunk Ҽg <link xlink:href="http://www.bartleby.com/141/">Elements of Style</link>C</para>
-
- <sect1 xml:id="writing-style-guide">
- <title>Style guide</title>
-
- <para>ѩ Handbook OѲh@̩Һ@AFOg@檺@eʡA
- пuUCgC</para>
-
- <sect2>
- <title>jpg</title>
-
- <para>Tag OΤpgrAĴpO <literal>&lt;para&gt;</literal>
- A<emphasis>ӫD</emphasis> <literal>&lt;PARA&gt;</literal>C</para>
-
- <para> SGML hOΤjgrܡAOG
- <literal>&lt;!ENTITY&hellip;&gt;</literal>
- <literal>&lt;!DOCTYPE&hellip;&gt;</literal>A
- <emphasis>ӤO</emphasis>
- <literal>&lt;!entity&hellip;&gt;</literal>
- <literal>&lt;!doctype&hellip;&gt;</literal>C</para>
- </sect2>
-
- <sect2>
- <title>Ygr</title>
-
- <para>Ygr(acronym)q`bѤĤ@ɡAPɦCXkA
- pG"Network Time Protocol (<acronym role="Network Time Protocol">NTP</acronym>)"C
- wqYgrAӾquϥθYgr(ӫDJA
- DϥΧJiHFyN)ӪFYiC
- q`Cѥu|Ĥ@ɡA~|CXJA
- Yz]iHbCĤ@ɤSCXJC</para>
-
- <para>~AP@YgrbeTϥήɡAϥ &lt;acronym&gt; ҡA
- ç⧹Jb <literal>role</literal> ݩʤC
- p@ӴN|إߵJAåBƹܸYgrWɡA
- N|ܧJC</para>
- </sect2>
-
- <sect2>
- <title>Y</title>
-
- <para><emphasis>L</emphasis> ɮYƳ]wA
- Cɮפ@}lY(indentation)Oq 0 aC}l</para>
-
- <para>ҷ|HhӪťըӼW[YơA
- ҫh֨ӪťըYYơC YwF 8 ӪťաAhH tab NC
- ~Ab tab enAΪťաA]nbC᭱[WťաC
- C tag YWL@檺ܡAhUӪNhӪťեHYơC</para>
-
- <para>|ӨҤlAo`ҥΪgkjPOUoˡG</para>
-
- <programlisting><![CDATA[+--- oO 0 aC
-V
-<chapter>
- <title>...</title>
-
- <sect1>
- <title>...</title>
-
- <sect2>
- <title>Y</title>
-
- <para><emphasis>L</emphasis> ɮYƳ]wA
- Cɮפ@}lY(indentation)Oq 0 aC}lC</para>
-
- ...
- </sect2>
- </sect1>
-</chapter>]]></programlisting>
-
- <para>Y <application>Emacs</application>
- <application>XEmacs</application> ӽsoɡA|۰ʶiJ
- <literal>sgml-mode</literal> ҦA
- MN|jϥΨCɮ׳̤U誺ҳ]wC</para>
-
- <para><application>Vim</application> RΪ̤]iHΤUC]wӽվG</para>
-
- <programlisting>augroup sgmledit
- autocmd FileType sgml set formatoptions=cq2l " S榡ﶵ
- autocmd FileType sgml set textwidth=70 " b 70 aCBY۰ʴ
- autocmd FileType sgml set shiftwidth=2 " ۰Y 2 Ӫť
- autocmd FileType sgml set softtabstop=2 " Tab |۰ରӪťY
- autocmd FileType sgml set tabstop=8 " 8 Ӫťର tab
- autocmd FileType sgml set autoindent " ۰Y
-augroup END</programlisting>
-
- </sect2>
-
- <sect2>
- <title>Tag </title>
-
- <sect3>
- <title>Tag Ŧ</title>
-
- <para>P@YƵŪҭnHŤ@ӰϹjAӤPYƵŪhC
- pG</para>
-
- <informalexample>
- <programlisting><![CDATA[<article lang='zh_tw'>
- <articleinfo>
- <title>NIS</title>
-
- <pubdate>October 1999</pubdate>
-
- <abstract>
- <para>...
- ...
- ...</para>
- </abstract>
- </articleinfo>
-
- <sect1>
- <title>...</title>
-
- <para>...</para>
- </sect1>
-
- <sect1>
- <title>...</title>
-
- <para>...</para>
- </sect1>
-</article>]]></programlisting>
- </informalexample>
- </sect3>
-
- <sect3>
- <title>Ҫ</title>
-
- <para>O <tag>itemizedlist</tag>
- oҨƹWtrơAoѨLҨӸɥRC
- oҷ|WΤ@C</para>
-
- <para>t~AO <tag>para</tag>
- <tag>term</tag> oҨäݷftLҡA
- NiWrơAåBbҫ᭱<emphasis>P@</emphasis>
- YiߧYgWoǤC</para>
-
- <para>MAoҵɤ]OWDzۦPC</para>
-
- <para>LAWzoؼҲVήɡA|ܩ㪺xZC</para>
-
- <para>Ĥ@Ҫ᭱WĤGҪܡA
- noҦUۤӼgC ̼ҪqA
- ]OݭnAYƽվC</para>
-
- <para>ӲĤGҵɡAiHPĤ@ҪbP@C</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>ťժ</title>
-
- <para>b commit קɡA<emphasis>ЧObק鷺ePɡA
- ]@_sƮ榡</emphasis>C</para>
-
- <para>p@ӡAO Handbook ½Ķζ~ਲ਼tXAFǤeA
- ӤζO߫hP_Ӧ檺ܡAOѩ榡ƩΪ̤eʡC</para>
-
- <para>|һAYnbYq[WӥylAp@ӸӬqYե|WX 80
- aCAoɽХ commmit קC ۡAA׹L渨AMA
- commit C ӲĤG commit AЩTouO whitespace-only
- (קťզӤw) Ap@ӡA½ĶζNiHĤG commit F
- C</para>
- </sect2>
-
- <sect2>
- <title>Nonbreaking space</title>
-
- <para>קK@DZpU_Gy઺BάOseFP@ylC
- _檺p|HҾ\Ūu㤣PӦҤPC רOzL¤rsӬ
- HTML ɷ|ݨUoˤnsƬqG</para>
-
- <literallayout class="monospaced">Data capacity ranges from 40 MB to 15
-GB. Hardware compression &hellip;</literallayout>
-
- <para>Шϥ <literal>&amp;nbsp;</literal> HקKPyl_A
- HUܽdpϥ nonbreaking spacesG</para>
-
- <itemizedlist>
- <listitem>
- <para>bƦrP줧G</para>
- <programlisting><![CDATA[57600&nbsp;bps]]></programlisting>
- </listitem>
-
- <listitem>
- <para>b{WٻPG</para>
- <programlisting><![CDATA[FreeBSD&nbsp;4.7]]></programlisting>
- </listitem>
-
- <listitem>
- <para>multiword (ϥήɽФpߡAO <quote>The FreeBSD Brazilian
- Portuguese Documentation Project</quote> oѤT|ӦrҲզA
- hΥ[C)G</para>
- <programlisting><![CDATA[Sun&nbsp;Microsystems]]></programlisting>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
-
- <sect1 xml:id="writing-style-word-list">
- <title>J</title>
-
- <para>HU FreeBSD psƮɩұĥΪpJC
- Y䤣n䪺JAаѾ\ <link xlink:href="http://www.oreilly.com/oreilly/author/stylesheet.html">O'Reilly
- word list</link>C</para>
-
- <itemizedlist>
- <listitem>
- <para>2.2.X</para>
- </listitem>
-
- <listitem>
- <para>4.X-STABLE</para>
- </listitem>
-
- <listitem>
- <para>CD-ROM</para>
- </listitem>
-
- <listitem>
- <para>DoS <emphasis>(Denial of Service)</emphasis> </para>
- </listitem>
-
- <listitem>
- <para>Ports Collection</para>
- </listitem>
-
- <listitem>
- <para>IPsec</para>
- </listitem>
-
- <listitem>
- <para>Internet</para>
- </listitem>
-
- <listitem>
- <para>MHz</para>
- </listitem>
-
- <listitem>
- <para>Soft Updates</para>
- </listitem>
-
- <listitem>
- <para>Unix</para>
- </listitem>
-
- <listitem>
- <para>disk label</para>
- </listitem>
-
- <listitem>
- <para>email</para>
- </listitem>
-
- <listitem>
- <para>file system</para>
- </listitem>
-
- <listitem>
- <para>manual page</para>
- </listitem>
-
- <listitem>
- <para>mail server</para>
- </listitem>
-
- <listitem>
- <para>name server</para>
- </listitem>
-
- <listitem>
- <para>null-modem</para>
- </listitem>
-
- <listitem>
- <para>web server</para>
- </listitem>
- </itemizedlist>
-
- </sect1>
-</chapter>
diff --git a/zh_TW.Big5/books/handbook/basics/chapter.xml b/zh_TW.Big5/books/handbook/basics/chapter.xml
deleted file mode 100644
index 71703d3b97..0000000000
--- a/zh_TW.Big5/books/handbook/basics/chapter.xml
+++ /dev/null
@@ -1,2366 +0,0 @@
-<?xml version="1.0" encoding="big5"?>
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
- Original revision: 1.152
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="basics">
- <info><title>UNIX ¦</title>
- <authorgroup>
- <author><personname><firstname>Chris</firstname><surname>Shumway</surname></personname><contrib>Rewritten by </contrib></author>
- </authorgroup>
-
- </info>
-
-
-
- <sect1 xml:id="basics-synopsis">
- <title>z</title>
-
- <para>UӪo@N[\ FreeBSD @~tΪ򥻫OΥ\C
- jeb &unix;-like @~tΤO۳qC
- pGzoǤexܡAiHߪLC
- pGz豵IJ FreeBSDAz@wnJӪŪoC</para>
-
- <para>ŪoAzNFѡG</para>
-
- <itemizedlist>
- <listitem>
- <para>pϥ FreeBSD <quote>virtual consoles</quote>C</para>
- </listitem>
- <listitem>
- <para>&unix; ɮvB@覡H &os; ɮת flagsC</para>
- </listitem>
- <listitem>
- <para>w] &os; ɮרtΰtmC</para>
- </listitem>
- <listitem>
- <para>&os; ϺеcC</para>
- </listitem>
- <listitem>
- <para>p󱾸(mount)B(umount)ɮרt</para>
- </listitem>
- <listitem>
- <para>OprocessesBdaemons H signals C</para>
- </listitem>
- <listitem>
- <para>O shell AHΦpܧzw]nJҡC</para>
- </listitem>
- <listitem>
- <para>pϥΰ򥻪rs边C</para>
- </listitem>
- <listitem>
- <para>O devices M device nodes C</para>
- </listitem>
- <listitem>
- <para>&os; UϥΪ binary 榡C</para>
- </listitem>
- <listitem>
- <para>p\Ū manual pages HohTC</para>
- </listitem>
- </itemizedlist>
-
- </sect1>
-
- <sect1 xml:id="consoles">
- <title>Virtual Consoles M׺ݾ</title>
- <indexterm><primary>virtual consoles</primary></indexterm>
- <indexterm><primary>terminals</primary></indexterm>
-
- <para>ܦhkiHާ@ FreeBSD A䤤@شNObr׺ݾWrC
- pϥ FreeBSD Yi| &unix; @~tΪ¤OMuʡC
- o@`yzO<quote>׺ݾ</quote>M <quote>console</quote>
- AHΥiHpb FreeBSD BΥ̡C</para>
-
- <sect2 xml:id="consoles-intro">
- <title>The Console</title>
- <indexterm><primary>console</primary></indexterm>
-
- <para>pGzSN FreeBSD ]w}ɦ۰ʶiJϧΤƼҦAtη|bҰʪ
- script ]ܵnJܲŸC zN|ݨ칳Oo˪FG</para>
-
- <screen>Additional ABI support:.
-Local package initialization:.
-Additional TCP options:.
-
-Fri Sep 20 13:01:06 EEST 2002
-
-FreeBSD/i386 (pc3.example.org) (ttyv0)
-
-login:</screen>
-
- <para>oӰTbztΤW|dz\PAOӷ|ݨFC
- ڭ̷P쪺O̫A̫OG</para>
-
- <programlisting>FreeBSD/i386 (pc3.example.org) (ttyv0)</programlisting>
-
- <para>o]tF}tΪTC zݨ쪺Ob Intel άۮeBz
- x86 [cW檺 <quote>FreeBSD</quote> console<footnote>
- <para>oNO <literal>i386</literal> NqC `NYϱzOb
- Intel 386 BzW FreeBSD A@ˬO<literal>i386</literal>C
- oOABzAoܪOABz<quote>[c</quote>
- </para>
- </footnote>C oxWr(Cx &unix; @ӦWr)O
- <systemitem>pc3.example.org</systemitem>Aӱz{bݨ쪺Ot
- console&mdash; <filename>ttyv0</filename>׺ݾC</para>
-
- <para>̫᪺@ӳ|OG</para>
-
- <programlisting>login:</programlisting>
-
- <para>oOzӭnJz<quote>bW</quote>aC
- U@p`NiDzpnJ FreeBSDC</para>
- </sect2>
-
- <sect2 xml:id="consoles-login">
- <title>nJ FreeBSD</title>
-
- <para>FreeBSD O@ multiuserBmultiprocessing tΡC
- oO@ӥW١AOb@WiHPɳQPHϥΡA
- PɥiHܦh{tΡC</para>
-
- <para>C@ئhϥΪ̨tγݭniH뤣P<quote>ϥΪ</quote>kC
- b FreeBSD (HΩҦ &unix;-like @~t)
- AҦϥΪ̦b{e<quote>nJ</quote>tΡC
- CӨϥΪ̳@տWSbW
- (<quote>username</quote>)αKX(<quote>password</quote>)C
- FreeBSD b\ϥΪ̰{eN|ݳoӰDC</para>
-
- <indexterm><primary>startup scripts</primary></indexterm>
- <para>b FreeBSD }ö]Ұʪ script <footnote>
- <para>oDZҰʪ script Ob}ɭ FreeBSD |۰ʰ檺{C
- L̥Dn\ONҦӰ檺F]wnA
- ñNz]wI檺AȱҰʡC</para>
- </footnote>AN|LXܦrnDzJTbW١G</para>
-
- <screen>login:</screen>
-
- <para>boӽdҸ̡Aڭ̰]zbO<systemitem class="username">john</systemitem>C
- bܦrBJ <literal>john</literal> ëU <keycap>Enter</keycap>
- C ۱zӷ|ݨt@ӴܦrnzJ<quote>KX</quote>G</para>
-
- <screen>login: <userinput>john</userinput>
-Password:</screen>
-
- <para>J <systemitem class="username">john</systemitem> KXAAU
- <keycap>Enter</keycap>C JKX
- <emphasis>|ܦbùW</emphasis>C
- zݭnߡAo˰OFwWDC</para>
-
- <para>pGzJFTKXAzӤwgnJ FreeBSDC
- {bNiHթҦiΪOFC</para>
-
- <para>zӷ|ݨ<acronym>MOTD</acronym>
- (YTBMessages Of The Day)A᭱۩ROܦr
- (@ <literal>#</literal>,<literal>$</literal>, άO
- <literal>%</literal> r)C oNܱzwg\nJ
- FreeBSD FC</para>
- </sect2>
-
- <sect2 xml:id="consoles-virtual">
- <title>h Console</title>
-
- <para>b@ Console U &unix; MOSDAM FreeBSD
- OiHPɰܦh{C FreeBSD
- o˥iHPɰ@j{@~tΡAu@
- console iHJObOIOC ]
- <quote>virtual consoles</quote> No۷nΡC</para>
-
- <para>iH]w FreeBSD Pɦܦh virtual consoleA
- δXӫ䪺զXNiHq@ virtual console O virtual console
- C C@ console ۤwPXWDAqY@ virtual console
- U@ӪɭԡAFreeBSD |۰ʳBzLJοùXC</para>
-
- <para>FreeBSD OdFSOզXӤ console <footnote>
- <para>b &man.syscons.4;B&man.atkbd.4;B&man.vidcontrol.1;BH
- &man.kbdcontrol.1; manual page A FreeBSD console
- LXʵ{ԲӪ޳NC ڭ̦bo̤QײӸ`A
- 쪺ŪHɥiHb manual pages
- dB@覡ԲӥB㪺C</para></footnote>C
- ziH <keycombo><keycap>Alt</keycap><keycap>F1</keycap></keycombo>B
- <keycombo><keycap>Alt</keycap><keycap>F2</keycap></keycombo>B
- <keycombo><keycap>Alt</keycap><keycap>F8</keycap></keycombo>
- Ӥ FreeBSD P consoleC</para>
-
- <para>zq@ console U@ӪɭԡAFreeBSD
- |BzùXxsΦ^_C
- oN<quote>n</quote>ܦh<quote></quote>ùMLA
- iHzJO FreeBSD C bY@ console
- W檺{ä|]O console ӰAt@
- console ɡA̤|~C</para>
- </sect2>
-
- <sect2 xml:id="consoles-ttys">
- <title><filename>/etc/ttys</filename> </title>
-
- <para>FreeBSD w] console `@ 8 ӡA
- oëDwʳWwAziP]woǵ console ƶqWC
- console s]wb
- <filename>/etc/ttys</filename> oɮפ]wC</para>
-
- <para>iH <filename>/etc/ttys</filename> ɮרӳ]w
- FreeBSD consoleC ɮפCDѤr(Ӧ}YS
- <literal>#</literal> or)O]w׺ݾε consoleC
- FreeBSD w] 9 ӵ console uҰ 8 ӡA]NOHUH
- <literal>ttyv</literal> }YX]wC</para>
-
- <programlisting># name getty type status comments
-#
-ttyv0 "/usr/libexec/getty Pc" cons25 on secure
-# Virtual terminals
-ttyv1 "/usr/libexec/getty Pc" cons25 on secure
-ttyv2 "/usr/libexec/getty Pc" cons25 on secure
-ttyv3 "/usr/libexec/getty Pc" cons25 on secure
-ttyv4 "/usr/libexec/getty Pc" cons25 on secure
-ttyv5 "/usr/libexec/getty Pc" cons25 on secure
-ttyv6 "/usr/libexec/getty Pc" cons25 on secure
-ttyv7 "/usr/libexec/getty Pc" cons25 on secure
-ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure</programlisting>
-
- <para>U쪺]wHΨLﶵAаѾ\ &man.ttys.5; C</para>
- </sect2>
-
- <sect2 xml:id="consoles-singleuser">
- <title>Single User Ҧ Console</title>
-
- <para> <quote>single user Ҧ</quote> Цb
- <xref linkend="boot-singleuser"/>
- o䦳ԺɤСC b single user ҦɡAϥΪ console
- u@ӡAõL console iΡC single user Ҧ]wȥiHb
- <filename>/etc/ttys</filename> ɰվC UH
- <literal>console</literal> }YANOFG</para>
-
- <programlisting># name getty type status comments
-#
-# If console is marked "insecure", then init will ask for the root password
-# when going to single-user mode.
-console none unknown off secure</programlisting>
-
- <note>
- <para>b <literal>console</literal> eѦAiH⨺檺
- <literal>secure</literal> אּ <literal>insecure</literal>A
- p@ӡAY FreeBSD iJ single user ҦA
- |nDzJ <systemitem class="username">root</systemitem> KXC</para>
-
- <para><emphasis>мfVҼ{O_nאּ
- <literal>insecure</literal></emphasis>C ]U@ѰO
- <systemitem class="username">root</systemitem> KXܡAYnnJ single user
- ҦNdz·ФFC٦L覡iHnJA藍 FreeBSD
- }{ǪHӨAN|۷ƤC</para>
- </note>
- </sect2>
-
- <sect2 xml:id="consoles-vidcontrol">
- <title> console ܵe</title>
-
- <para>FreeBSD console w]ܤjpiHվ㬰 1024x768B1280x1024
- ΨLܥdPù䴩ѪRפjpC nܤjpAnssĶ
- kernel å[JUoⶵ]wG</para>
-
- <programlisting>options VESA
-options SC_PIXEL_MODE</programlisting>
-
- <para>@ kernel [JoⶵíssĶANiH &man.vidcontrol.1;
- ӰثeҤ䴩ҦǡC Yndݤ䴩ҦAiHG</para>
-
- <screen>&prompt.root; <userinput>vidcontrol -i mode</userinput></screen>
-
- <para>ӫO|ܸӾҤ䴩ܼҦMC MiHb
- <systemitem class="username">root</systemitem> console zL &man.vidcontrol.1; OA
- ӧܼҦG</para>
-
- <screen>&prompt.root; <userinput>vidcontrol MODE_279</userinput></screen>
-
- <para>YsܼҦıo٤AiHb <filename>/etc/rc.conf</filename>
- ]wAHC}|۰ʥͮġC HWopҡANOG</para>
-
- <programlisting>allscreens_flags="MODE_279"</programlisting>
- </sect2>
- </sect1>
-
- <sect1 xml:id="permissions">
- <title>v</title>
- <indexterm><primary>UNIX</primary></indexterm>
-
- <para>FreeBSD ۩ BSD &unix;A~ӤFXӭn &unix; C
- ]̩AO@ multi-user @~tΡC iHPɳBzhHhuA
- tdɻP޲zӦۨCϥΪ̹wи˸mBg]ơBO
- CPU ɶnDC</para>
-
- <para>]]tί䴩hϥΪ̡A
- ҥHtκ޲z@vӨMw֥iHŪBgJΰ귽C
- ovOϥΤTդKi쪺ƦrxsA@եNɮתҦ̡A
- @եNɮשݪsաAӳ̫@իhNLҦHC
- ܳoǼƦr覡pU:</para>
-
- <indexterm><primary>permissions</primary></indexterm>
- <indexterm>
- <primary>file permissions</primary>
- </indexterm>
- <informaltable frame="none" pgwide="1">
- <tgroup cols="3">
- <thead>
- <row>
- <entry></entry>
- <entry>v</entry>
- <entry>ؿ</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>0</entry>
- <entry>iŪ, igJ, i</entry>
- <entry><literal>---</literal></entry>
- </row>
-
- <row>
- <entry>1</entry>
- <entry>iŪ, igJ, i</entry>
- <entry><literal>--x</literal></entry>
- </row>
-
- <row>
- <entry>2</entry>
- <entry>iŪ, igJ, i</entry>
- <entry><literal>-w-</literal></entry>
- </row>
-
- <row>
- <entry>3</entry>
- <entry>iŪ, igJ, i</entry>
- <entry><literal>-wx</literal></entry>
- </row>
-
- <row>
- <entry>4</entry>
- <entry>iŪ, igJ, i</entry>
- <entry><literal>r--</literal></entry>
- </row>
-
- <row>
- <entry>5</entry>
- <entry>iŪ, igJ, i</entry>
- <entry><literal>r-x</literal></entry>
- </row>
-
- <row>
- <entry>6</entry>
- <entry>iŪ, igJ, i</entry>
- <entry><literal>rw-</literal></entry>
- </row>
-
- <row>
- <entry>7</entry>
- <entry>iŪ, igJ, i</entry>
- <entry><literal>rwx</literal></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- <indexterm>
- <primary><command>ls</command></primary>
- </indexterm>
- <indexterm><primary>directories</primary></indexterm>
-
- <para>ϥ &man.ls.1; OɡAiH[W <option>-l</option> ѼơA
- ˵ԲӪؿMC
- M椤쪺T]tɮ׹Ҧ̡BsդΨLHvC
- b@ӥؿU <command>ls -l</command>A|ܦpUG:
- </para>
-
- <screen>&prompt.user; <userinput>ls -l</userinput>
-total 530
--rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile
--rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile
--rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt
-...</screen>
-
- <para>bo̧iұzӦpϤ <command>ls -l</command>
- Ĥ@T:</para>
-
- <screen>-rw-r--r--</screen>
-
- <para>Ĥ@ (̥) rΨӪܳoɮתA
- зɮץH~A|ؿBSr˸m (Special character device)B
- Socket ΨLSɮ׸˸m (Special pseudo-file device)A
- bҷA<literal>-</literal> ܸɮ׬@ӼзǪɮסC
- dҤUӪTӦrA<literal>rw-</literal>
- NҦ̹ɮ׾֦vC AUӪTӦrA
- <literal>r--</literal> hNsչɮ׾֦vA
- ̫TӦrA<literal>r--</literal> hNLHɮ׾֦vC
- }鸹 (-) ܨSvAdҤoɮתvA
- u\ҦŪBgJɮסAsեHΨLHȯŪɮסC
- ھڥHWAvɮץiHϥ <literal>644</literal> ӪܡA
- CռƦrONɮתTvC</para>
-
- <para>HWO覡AtθӦp󱱨˸mvH ڤW FreeBSD
- jhwи˸mNpPɮסA{iH}ҡBŪHμgJƦp@ɮסC
- oǯS˸mɮ (Special device file) xs <filename>/dev</filename>
- ؿC</para>
-
- <para>
- ؿ]PpɮסA֦ŪBgJΰ檺vA
- bvWPɮצ㪺tC ؿQХܬiɡANiHϥ
- <quote>cd</quote> (ؿ) iJӥؿC
- ]NsbؿwɦWɮ
- (MAɮפ֦ۤvv)</para>
-
- <para>רAnCXؿeA֦ؿŪvC
- ӷnRwɦWɮ׮ɡA]֦ɮשҦbؿgJ
- <emphasis>H</emphasis> 檺vC</para>
-
- <para>٦@vAovDnbSpϥΡAp
- setuid binaries sticky directoriesC
- pGzٷQDhɮvTΨϥΤkAаȥѾ\
- &man.chmod.1; C</para>
-
- <sect2>
- <info><title>vŸ</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
- </info>
-
-
- <indexterm><primary>permissions</primary><secondary>symbolic</secondary></indexterm>
-
- <para>vŸiٰŸܡA
- ϥΦr覡ӨNϥμƭȨӳ]wɮשΥؿvC
- Ÿܪ榡̧Ǭ (YH)(ʧ@)(v)AiϥΪŸpU:</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="3">
- <thead>
- <row>
- <entry></entry>
- <entry>r</entry>
- <entry>Nq</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>(YH)</entry>
- <entry>u</entry>
- <entry>ϥΪ</entry>
- </row>
-
- <row>
- <entry>(YH)</entry>
- <entry>g</entry>
- <entry>sթҦ</entry>
- </row>
-
- <row>
- <entry>(YH)</entry>
- <entry>o</entry>
- <entry>L</entry>
- </row>
-
- <row>
- <entry>(YH)</entry>
- <entry>a</entry>
- <entry>(<quote>world</quote>)</entry>
- </row>
-
- <row>
- <entry>(ʧ@)</entry>
- <entry>+</entry>
- <entry>W[v</entry>
- </row>
-
- <row>
- <entry>(ʧ@)</entry>
- <entry>-</entry>
- <entry>v</entry>
- </row>
-
- <row>
- <entry>(ʧ@)</entry>
- <entry>=</entry>
- <entry>wv</entry>
- </row>
-
- <row>
- <entry>(v)</entry>
- <entry>r</entry>
- <entry>Ū</entry>
- </row>
-
- <row>
- <entry>(v)</entry>
- <entry>w</entry>
- <entry>gJ</entry>
- </row>
-
- <row>
- <entry>(v)</entry>
- <entry>x</entry>
- <entry></entry>
- </row>
-
- <row>
- <entry>(v)</entry>
- <entry>t</entry>
- <entry>Sticky bit</entry>
- </row>
-
- <row>
- <entry>(v)</entry>
- <entry>s</entry>
- <entry>Set UID GID</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>peP˨ϥ &man.chmod.1; Oӳ]wAϥΪѼƬoǦrC
- ҦpAziHϥΤUCOTLϥΪ̦sɮ
- <replaceable>FILE</replaceable>:</para>
-
- <screen>&prompt.user; <userinput>chmod go= FILE</userinput></screen>
-
- <para>YӥHWŸܥiHϥγr (,) ϹjC
- ҦpAUCON|sդΨLHɮ
- <replaceable>FILE</replaceable> gJvA
- èϥH(<quote>world</quote>)ɦvC</para>
-
- <screen>&prompt.user; <userinput>chmod go-w,a+x FILE</userinput></screen>
-
-<!--
- <para>Most users will not notice this, but it should be pointed out
- that using the octal method will only set or assign permissions to
- a file; it does not add or delete them.</para>
--->
- </sect2>
-
- <sect2>
- <info><title>&os; ɮ׺X(Flag)</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <para>Fe쪺ɮv~A&os; 䴩ϥ <quote>ɮ׺X</quote>C
- oǺXмW[Fɮתwʤκ޲zʡA]tؿC</para>
-
- <para>ɮ׺XмW[F޲zʡATObYǮɭ <systemitem class="username">root</systemitem>
- |N~Nɮ׭קβC</para>
-
- <para>ק諸ɮ flag Ȼݭnϥξ֦² &man.chflags.1; uC
- ҦpAХܨtθTRXЩɮ
- <filename>file1</filename>AϥΤUCOG</para>
-
- <screen>&prompt.root; <userinput>chflags sunlink file1</userinput></screen>
-
- <para>YntθTRXСAuݭn²b <option>sunlink</option>
- e[W <quote>no</quote>AҦpG</para>
-
- <screen>&prompt.root; <userinput>chflags nosunlink file1</userinput></screen>
-
- <para>ϥ &man.ls.1; ΰѼ <option>-lo</option>
- i˵ɮץثeXСG</para>
-
- <screen>&prompt.root; <userinput>ls -lo file1
- </userinput></screen>
-
- <para>XGpU:</para>
-
- <programlisting>-rw-r--r-- 1 trhodes trhodes sunlnk 0 Mar 1 05:54 file1</programlisting>
-
- <para>hƪXжȯ <systemitem class="username">root</systemitem>
- ϥΪ̨ӼХܩβAӳXХiɮשҦ̳]wC
- ڭ̫ijtκ޲z̥i\Ū &man.chflags.1; &man.chflags.2;
- HAѬӸ`C</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="dirstructure">
- <title>ؿc</title>
- <indexterm><primary>directory hierarchy</primary></indexterm>
-
- <para>{ FreeBSD ؿ[cANitΦ¦zѡC
- ̭nLӥؿڥؿANO <quote>/</quote> ؿA
- ӥؿ|b}ɳ̥ (mount)A̭|}ҷ|Ψ쥲ɮסC
- ~Aڥؿ٦LɮרtΪI]wC</para>
-
- <para>uIvNOsWɮרtΡA౵Whɮרt
- (q`NOuڥؿvɮרt) ؿC
- b <xref linkend="disk-organization"/> o惡ԲӤСC
- зǪI]AF <filename>/usr</filename>B<filename>/var</filename>B
- <filename>/tmp</filename>B<filename>/mnt</filename> H
- <filename>/cdrom</filename>C oǥؿq`|Ob
- <filename>/etc/fstab</filename> ]wɤC
- <filename>/etc/fstab</filename> OOUɮרtΤάIC
- jb <filename>/etc/fstab</filename> OɮרtΡA|b}ɥ
- &man.rc.8; script Ӧ۰ʱAD̦]w <option>noauto</option>
- ﶵC 䤤Ӹ`iѾ\ <xref linkend="disks-fstab"/>C</para>
-
- <para>ɮרtά[c㻡iѾ\ &man.hier.7;C
- {bOAڭ̤jP@s`ؿǧaC</para>
-
- <para>
- <informaltable frame="none" pgwide="1">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>ؿ</entry>
- <entry></entry>
- </row>
- </thead>
- <tbody valign="top">
- <row>
- <entry><filename>/</filename></entry>
- <entry>ɮרtΪڥؿC</entry>
- </row>
-
- <row>
- <entry><filename>/bin/</filename></entry>
- <entry>single-userBmulti-user ؼҦҥiϥΪ򥻤u
- C</entry>
- </row>
-
- <row>
- <entry><filename>/boot/</filename></entry>
- <entry>@~tζ}L{|Ψ쪺{B]wɡC</entry>
- </row>
-
- <row>
- <entry><filename>/boot/defaults/</filename></entry>
- <entry>w]}Ұʳ]wɡAԱаѾ\ &man.loader.conf.5;
- C</entry>
- </row>
-
- <row>
- <entry><filename>/dev/</filename></entry>
- <entry>Device nodesAԱаѾ\ &man.intro.4;C</entry>
- </row>
-
- <row>
- <entry><filename>/etc/</filename></entry>
- <entry>tγ]wɤΤ@ script ɡC</entry>
- </row>
-
- <row>
- <entry><filename>/etc/defaults/</filename></entry>
- <entry>w]tγ]wɡAԱаѾ\ &man.rc.8;C</entry>
- </row>
-
- <row>
- <entry><filename>/etc/mail/</filename></entry>
- <entry>MTA(Mail Transport Agent)]wɡAO
- &man.sendmail.8;C</entry>
- </row>
-
- <row>
- <entry><filename>/etc/namedb/</filename></entry>
- <entry><command>named</command> ]wɡAԱаѾ\
- &man.named.8;C</entry>
- </row>
-
- <row>
- <entry><filename>/etc/periodic/</filename></entry>
- <entry>CBCgBCzL &man.cron.8;; 檺wƵ{ scriptA
- ԱаѾ\ &man.periodic.8;C</entry>
- </row>
-
- <row>
- <entry><filename>/etc/ppp/</filename></entry>
- <entry><command>ppp</command> ]wɡAԱаѾ\
- &man.ppp.8;C</entry>
- </row>
-
- <row>
- <entry><filename>/mnt/</filename></entry>
- <entry>tκ޲z̺DΥR{ɱIťؿC</entry>
- </row>
-
- <row>
- <entry><filename>/proc/</filename></entry>
- <entry>Process ɮרtΡAԱаѾ\ &man.procfs.5;
- &man.mount.procfs.8;C</entry>
- </row>
-
- <row>
- <entry><filename>/rescue/</filename></entry>
- <entry>ϴγ~@ statically linked {AԱаѾ\
- &man.rescue.8;C</entry>
- </row>
-
- <row>
- <entry><filename>/root/</filename></entry>
- <entry><systemitem class="username">root</systemitem> baؿC</entry>
- </row>
-
- <row>
- <entry><filename>/sbin/</filename></entry>
- <entry> single-user multi-user ҨϥΪtε{κ޲zu
- C</entry>
- </row>
-
- <row>
- <entry><filename>/tmp/</filename></entry>
- <entry>{ɮסC @ӨA}
- <filename>/tmp</filename> F|QMC
- ӳq`|N memory-based ɮרtαb
- <filename>/tmp</filename> WC
- oǺƥizL tmpmfs &man.rc.conf.5; ܼƨӦ۰ʧ
- C(άOb <filename>/etc/fstab</filename> ]wA
- ԱаѾ\ &man.mdmfs.8;C)</entry>
- </row>
-
- <row>
- <entry><filename>/usr/</filename></entry>
- <entry>DnOϥΪ̩Ҧw˪u{Bε{sBC</entry>
- </row>
-
- <row>
- <entry><filename>/usr/bin/</filename></entry>
- <entry>`ΤuB}ouBγnC</entry>
- </row>
-
- <row>
- <entry><filename>/usr/include/</filename></entry>
- <entry>з C include header ɮ׮wC</entry>
- </row>
-
- <row>
- <entry><filename>/usr/lib/</filename></entry>
- <entry>禡wsBC</entry>
- </row>
-
- <row>
- <entry><filename>/usr/libdata/</filename></entry>
- <entry>LUu㪺ɡC</entry>
- </row>
-
- <row>
- <entry><filename>/usr/libexec/</filename></entry>
- <entry>t daemons ΨtΤu{(zLL{Ӱ)C</entry>
- </row>
-
- <row>
- <entry><filename>/usr/local/</filename></entry>
-
- <entry>s@Ǧۦw˪ɡB禡wC PɡA]O FreeBSD
- ports [cw]w˥ؿC <filename>/usr/local</filename>
- ؿ[cjPP <filename>/usr</filename> ۦPAԱаѾ\
- &man.hier.7; C man ؿҥ~A̬Ob
- <filename>/usr/local</filename> UAӫD
- <filename>/usr/local/share</filename>A ports
- Ҧw˪hb
- <filename>share/doc/port</filename>C
- </entry>
- </row>
-
- <row>
- <entry><filename>/usr/obj/</filename></entry>
- <entry>bsĶ <filename>/usr/src</filename>
- ؿɩҲͪ[c object ɮסC</entry>
- </row>
-
- <row>
- <entry><filename>/usr/ports</filename></entry>
- <entry>FreeBSD Ports Collection (optional)C</entry>
- </row>
-
- <row>
- <entry><filename>/usr/sbin/</filename></entry>
- <entry>t daemon ΨtΤu(ѨϥΪ̰)C</entry>
- </row>
-
- <row>
- <entry><filename>/usr/share/</filename></entry>
- <entry>U[cҦ@qɮסC</entry>
- </row>
-
- <row>
- <entry><filename>/usr/src/</filename></entry>
- <entry>BSD lX(ΦۦsW)C</entry>
- </row>
-
- <row>
- <entry><filename>/usr/X11R6/</filename></entry>
- <entry>X11R6 M󪺰ɡB禡w(optional)C</entry>
- </row>
-
- <row>
- <entry><filename>/var/</filename></entry>
- <entry>sUإγ~ log ɡB{ɩμȮɦsBCLζl
- spool ɮסCɭԡAmemory-based ɮרtΤ]|b
- <filename>/var</filename>C
- oǺƥizL varmfs &man.rc.conf.5;
- ܼƨӦ۰ʧC(άOb
- <filename>/etc/fstab</filename> ]wAӸ`аѾ\
- &man.mdmfs.8;C)</entry>
- </row>
-
-
- <row>
- <entry><filename>/var/log/</filename></entry>
- <entry>UtΰO log ɮסC</entry>
- </row>
-
- <row>
- <entry><filename>/var/mail/</filename></entry>
- <entry>UϥΪ̪ mailbox ɮסC</entry>
- </row>
-
- <row>
- <entry><filename>/var/spool/</filename></entry>
- <entry>UئLBltΪ spool ؿC</entry>
- </row>
-
- <row>
- <entry><filename>/var/tmp/</filename></entry>
- <entry>{ɮסC
- oɮצb}q`|OdAD
- <filename>/var</filename>
- Oݩ memory-based ɮרtΡC</entry>
- </row>
-
- <row>
- <entry><filename>/var/yp</filename></entry>
- <entry>O NIS mapsC</entry>
- </row>
-
- </tbody>
- </tgroup>
- </informaltable>
- </para>
-
- </sect1>
-
- <sect1 xml:id="disk-organization">
- <title>Ϻв´</title>
-
- <para>FreeBSD ΨӴMɮת̤pNOɮתW٤FC
- ɮתW٦jpgAҥH <filename>readme.txt</filename>
- M <filename>README.TXT</filename> OӤPɮסC
- FreeBSD äϥΰɦW (<filename>.txt</filename>)
- ӧPOoO@ӵ{ɡBɩάOLɮסC</para>
-
- <para>ɮצsbؿ̭C
- @ӥؿiSɮסA]i঳nXʭɮסC
- ؿ]iH]tLؿF
- ziHإ߶hؿHKƪ޲zC</para>
-
- <para>ɮשΥؿOǥѵwɮשΥؿW١AM[W׽uŸ
- (<literal>/</literal>)FAݭn[WLؿW١C
- pGz@ӥؿ <filename>foo</filename> A̭@ӥؿs@
- <filename>bar</filename>AoӥؿS]tF@ӥs
- <filename>readme.txt</filename>
- ɮסAoɮתWAΪ̻ɮת<firstterm>|</firstterm>NO
- <filename>foo/bar/readme.txt</filename>C</para>
-
- <para>ؿɮxsbɮרtΤC
- Cɮרtγߤ@@ӳ̤WhؿAs<firstterm>ڥؿ
- (root directory)</firstterm>C
- MboӮڥؿU~঳LؿC</para>
-
- <para>ثejMLzιL@~tγthC
- ٬OǤ@˪aNOFAҦp &ms-dos; <literal>\</literal>
- ɮשMؿW٪jŸA &macos; hO <literal>:</literal>
- ŸC</para>
-
- <para>FreeBSD |èSϥκϺоNΨLϺЦW١C
- ]AziHϥι <filename>c:/foo/bar/readme.txt</filename>
- oˤlɮצW١C</para>
-
- <para>۹諸Ab FreeBSD
- tΤ@ɮרtγQw<firstterm>ɮרt</firstterm>C
- ɮרtΪڥؿ <literal>/</literal> ܡC
- MLɮרtΦA<firstterm> (mount)</firstterm>
- bɮרtΤUC]Lױz FreeBSD
- tΤWhwСAC@ӥؿݰ_ӴNbP@ӺϺФWC</para>
-
- <para>]zTɮרtΡAOs@ <literal>A</literal>B
- <literal>B</literal> <literal>C</literal>C
- Cɮרtγ]tӥؿAs
- <literal>A1</literal>B<literal>A2</literal> (̦o
- <literal>B1</literal>B<literal>B2</literal>
- <literal>C1</literal>B<literal>C2</literal>)C</para>
-
- <para> <literal>A</literal> DnɮרtΡFpGz
- <command>ls</command> OdݦؿeAz|ݨӤlؿG
- <literal>A1</literal> <literal>A2</literal>ApUҥܡG</para>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/example-dir1"/>
- </imageobject>
-
- <textobject>
- <literallayout class="monospaced"> /
- |
- +--- A1
- |
- `--- A2</literallayout>
- </textobject>
- </mediaobject>
-
- <para>@ɮרtΥHؿΦt@ɮרtΤWC
- ]A]zN <literal>B</literal> <literal>A1</literal>
- WAh <literal>B</literal> ڥؿNܦF
- <literal>A1</literal>AӦb <literal>B</literal>
- Uؿ|]H:</para>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/example-dir2"/>
- </imageobject>
-
- <textobject>
- <literallayout class="monospaced"> /
- |
- +--- A1
- | |
- | +--- B1
- | |
- | `--- B2
- |
- `--- A2</literallayout>
- </textobject>
- </mediaobject>
-
- <para>b <literal>B1</literal> <literal>B2</literal>
- ؿɮץgѸ| <filename>/A1/B1</filename>
- <filename>/A1/B2</filename> ~FC
- ҦӦb <filename>/A1</filename> ɮ׷|ȮɳQð_ӡA
- <literal>B</literal> Qu<firstterm>
- (unmounted)</firstterm>v~|A{XӡC</para>
-
- <para>pG <literal>B</literal> b <literal>A2</literal>
- WAh|ܦG</para>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/example-dir3"/>
- </imageobject>
-
- <textobject>
- <literallayout class="monospaced"> /
- |
- +--- A1
- |
- `--- A2
- |
- +--- B1
- |
- `--- B2</literallayout>
- </textobject>
- </mediaobject>
-
- <para>W|O <filename>/A2/B1</filename>
- <filename>/A2/B2</filename>C</para>
-
- <para>ɮרtΥiHbLɮרtΪؿWC
- 򤧫eҤlA<literal>C</literal> ɮרtΥiHbɮרt
- <literal>B</literal> <literal>B1</literal>
- ؿWApϩҥܡG</para>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/example-dir4"/>
- </imageobject>
-
- <textobject>
- <literallayout class="monospaced"> /
- |
- +--- A1
- |
- `--- A2
- |
- +--- B1
- | |
- | +--- C1
- | |
- | `--- C2
- |
- `--- B2</literallayout>
- </textobject>
- </mediaobject>
-
- <para>Ϊ <literal>C</literal> <literal>A</literal>
- <literal>A1</literal> ؿWG</para>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/example-dir5"/>
- </imageobject>
-
- <textobject>
- <literallayout class="monospaced"> /
- |
- +--- A1
- | |
- | +--- C1
- | |
- | `--- C2
- |
- `--- A2
- |
- +--- B1
- |
- `--- B2</literallayout>
- </textobject>
- </mediaobject>
-
- <para>pGzx &ms-dos; ܡAoM <command>join</command>
- O (MۦP)C</para>
-
- <para>@뱡pUzݭn߳oǪFC
- Dznw˷sϺСAMq`bzw FreeBSD
- ɫإߦnɮרtΨèMwnnbBN|AʤFC</para>
-
- <para>ziHϥγ@@Ӥjɮרt (root file system)
- ӤإߨLɮרtΡC o˦nB]aBC</para>
-
- <itemizedlist>
- <title>ϥΦhɮרtΪnB</title>
-
- <listitem>
- <para>PɮרtΦbWɭԥiHP
- <firstterm>Ѽ</firstterm>C
- |ҨӻADԷVziHNɮרtγ]ŪA
- HקKpߧRέקﱼnɮסC
- NϥΪ̥igJɮרt (Ҧp <filename>/home</filename>)
- WߥXӤ]iHL̥ <firstterm>nosuid</firstterm>
- ѼƱAﶵiHboɮרtΤɪ
- <firstterm>suid</firstterm>/<firstterm>guid</firstterm>
- bits ġA]\iHtΧwC</para>
- </listitem>
-
- <listitem>
- <para>FreeBSD |۰ʮھڱzɮרtΪϥΤ覡Ӱ̨Ϊɮװtm覡C
- ]A@ӦܦhpɮסB
- ``gJɮרtθuXӸjɮתɮרtΰtmO@˪C
- pGzu@@ӤjɮרtΡAoNSΤFC</para>
- </listitem>
-
- <listitem>
- <para>FreeBSD ɮרtΦbqɭԫíTC
- MӡAbYǭnɭ԰qM|ɮרtεcyl`C
- Φ\hɮרtΪܦbtΦbq`ҰʡA
- HKzbݭnɭԱNƥƦ^s^ӡC</para>
- </listitem>
- </itemizedlist>
-
- <itemizedlist>
- <title>ϥγ@ɮרtΪnB</title>
-
- <listitem>
- <para>ɮרtΪjpOTwC
- zw FreeBSD
- ɭӷ|w@ӤjpAiOӱzi|QŶ[jC
- pGSƥܬOFF
- zNɮרtέsإ߬zݭnjpAMNƥ^s^ӡC</para>
-
- <important>
- <para>FreeBSD &man.growfs.8;
- OiH}ܧɮרtΪjpC</para>
- </important>
- </listitem>
- </itemizedlist>
-
- <para>ɮרtΥ]tbΰϸ̭C
- ] &os; ŧ &unix; [cAoΰϩM@봣쪺ΰ
- (Ҧp &ms-dos; ΰ) PC C@ӤΰϥѤ@ӥN(r)ܡAq
- <literal>a</literal> <literal>h</literal>C
- CӤΰϥu]t@ɮרtΡC
- ]F`ɮרtΦPIӪɮרtΥ~A
- ]iHΥ]tLΰϥNӪܡC</para>
-
- <para>FreeBSD ]|ϺЪŶӷ <firstterm>swap space</firstterm>C
- Swap space FreeBSD @<firstterm>O</firstterm>ΡC
- ozqn֦ڧhOC
- FreeBSD OΧɭԡA|@ǥثeSΨ쪺Ʋ
- swap spaceAMbΨ쪺ɭԲ^h (PɲXSΨ쪺)C</para>
-
- <para>YǤΰϦDҪϥΤ覡pUG</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="2">
- <colspec colwidth="1*"/>
- <colspec colwidth="5*"/>
-
- <thead>
- <row>
- <entry>ΰ</entry>
-
- <entry>D</entry>
- </row>
- </thead>
-
- <tbody valign="top">
- <row>
- <entry><literal>a</literal></entry>
-
- <entry>q`]tɮרt (root file system)</entry>
- </row>
-
- <row>
- <entry><literal>b</literal></entry>
-
- <entry>q`O swap space</entry>
- </row>
-
- <row>
- <entry><literal>c</literal></entry>
-
- <entry>q`M slice jp@ˡA@Ƿ|Ψ slice
- u{ (Ҧpwayˬdu) ӨϥΡC
- @ӻzӤ|ɮרtΫإߦboӤΰϡC</entry>
- </row>
-
- <row>
- <entry><literal>d</literal></entry>
-
- <entry>ΰ <literal>d</literal>
- gNSNqAOwgAϥΡC
- ҥH{b <literal>d</literal>
- NML@몺ΰϬۦPFC</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Cӥ]tɮרtΪΰϬOsbҿת
- <firstterm>slice</firstterm> ̭C
- FreeBSD slice NO`ڭ̺٬ΰ (partition) FC
- P˦aA|oˤl٩I]O] FreeBSD &unix; mC
- slice OsAq 1 s 4 C</para>
-
- <indexterm><primary>slices</primary></indexterm>
- <indexterm><primary>partitions</primary></indexterm>
- <indexterm><primary>dangerously dedicated</primary></indexterm>
-
- <para>slice Xb˸mW٫᭱A@Ӧr
- <literal>s</literal>AMq 1 }lsUhC
- ] <quote>da0<emphasis>s1</emphasis></quote> NOĤ@ SCSI
- wЪĤ@ sliceC @ӺϺФWu঳|ӹ骺 sliceAOb骺
- slice ziHiA޿ sliceC oǩ slice sq 5
- }lAҥH <quote>ad0<emphasis>s5</emphasis></quote> OĤ@ IDE
- wФWĤ@ө sliceC ɮרtΦb˸m (device) ̴NOb@ slice
- C</para>
-
- <para>SlicesB<quote>dangerously dedicated</quote>
- ҦϺоAHΨL]t<firstterm>ΰ(partition)</firstterm>
- ϺгOHr <literal>a</literal> <literal>h</literal>
- sӪܡC sOb˸mW٪᭱A]
- <quote>da0<emphasis>a</emphasis></quote> OϺо da WĤ@
- <quote>dangerously dedicated</quote>ҦΰϡC
- <quote>ad1s3<emphasis>e</emphasis></quote>
- hOĤG IDE wФWĤT slice ĤӤΰϡC</para>
-
- <para>̫Aڭ̴NiHtΤWCӺϺгϤXӤFC
- @ӺϺЪWٷ|@ӥNXӪܳoӺϺЪA۬O@ӼƦrA
- ܳoO@ӺϺСC o slice CӺϺнsq 0 }l@ˡC
- `NXiHѦ <xref linkend="basics-dev-codes"/>C</para>
-
- <para>nѷӤ@ӤΰϪɭԡAFreeBSD |nz@ֿJ]toӤΰϪ
- slice κϺоW١FnѷӤ@ slice ɭԡA]J]to
- slice ϺЦW١C 򰵩OHCXϺЦW١AM
- <literal>s</literal> [W slice sA̫AJΰϦrNC
- dҥiHѦ <xref linkend="basics-disk-slice-part"/>.</para>
-
- <para><xref linkend="basics-concept-disk-model"/>
- ܽdF@Ӱ򥻪ϺФҦA۫HzUC</para>
-
- <para>nw FreeBSDAzظmϺЪ sliceA۩ slice إ߭n
- FreeBSD ΪΰϡC ̫boǤΰϤإɮרt ( swap space)
- èMwnNoɮרtα̡C</para>
-
- <table frame="none" pgwide="1" xml:id="basics-dev-codes">
- <title>ϺоN</title>
-
- <tgroup cols="2">
- <colspec colwidth="1*"/>
- <colspec colwidth="5*"/>
-
- <thead>
- <row>
- <entry>N</entry>
-
- <entry>Nq</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><filename>ad</filename></entry>
-
- <entry>ATAPI(IDE) Ϻо</entry>
- </row>
-
- <row>
- <entry><filename>da</filename></entry>
-
- <entry>SCSI sϺо</entry>
- </row>
-
- <row>
- <entry><filename>acd</filename></entry>
-
- <entry>ATAPI(IDE) о</entry>
- </row>
-
- <row>
- <entry><filename>cd</filename></entry>
-
- <entry>SCSI о</entry>
- </row>
-
- <row>
- <entry><filename>fd</filename></entry>
-
- <entry>nо</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <example xml:id="basics-disk-slice-part">
- <title>ϺСBslice ΤΰϩRWd</title>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="2">
- <colspec colwidth="1*"/>
- <colspec colwidth="5*"/>
-
- <thead>
- <row>
- <entry>W</entry>
-
- <entry>Nq</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><literal>ad0s1a</literal></entry>
-
- <entry>Ĥ@ IDE w (<literal>ad0</literal>) WĤ@ slice
- (<literal>s1</literal>)Ĥ@Ӥΰ(<literal>a</literal>)
- C</entry>
- </row>
-
- <row>
- <entry><literal>da1s2e</literal></entry>
- <entry>ĤG SCSI w (<literal>da1</literal>) WĤG slice
- (<literal>s2</literal>) ĤӤΰ (<literal>e</literal>)
- C</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </example>
-
- <example xml:id="basics-concept-disk-model">
- <title>ϺЪҫ</title>
-
- <para> FreeBSD tΪĤ@ IDE ϺоtmϡC
- ]oӺϺЪeqO 4&nbsp;GBAåB]tF 2&nbsp;GB
- slice (&ms-dos; ΰ)C Ĥ@ slice O DOS
- <filename>C:</filename> ϺоAĤGӫhwˤF FreeBSDC
- dҪ FreeBSD TӤΰϥHΤ@ swap ΰϡC</para>
-
- <para>oTӤΰϨCӳO@ɮרtΡC
- <literal>a</literal> άO (root) ɮרtΡF
- <literal>e</literal> O <filename>/var</filename>F
- <literal>f</literal> άO <filename>/usr</filename>
- ؿcC</para>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/disk-layout"/>
- </imageobject>
-
- <textobject>
- <literallayout class="monospaced">.-----------------. --.
-| | |
-| DOS / Windows | |
-: : &gt; First slice, ad0s1
-: : |
-| | |
-:=================: ==: --.
-| | | Partition a, mounted as / |
-| | &gt; referred to as ad0s2a |
-| | | |
-:-----------------: ==: |
-| | | Partition b, used as swap |
-| | &gt; referred to as ad0s2b |
-| | | |
-:-----------------: ==: | Partition c, no
-| | | Partition e, used as /var &gt; file system, all
-| | &gt; referred to as ad0s2e | of FreeBSD slice,
-| | | | ad0s2c
-:-----------------: ==: |
-| | | |
-: : | Partition f, used as /usr |
-: : &gt; referred to as ad0s2f |
-: : | |
-| | | |
-| | --' |
-`-----------------' --'</literallayout>
- </textobject>
- </mediaobject>
- </example>
- </sect1>
-
-
-
- <sect1 xml:id="mount-unmount">
- <title>Pɮרt</title>
-
- <para>ɮרtδN@C<filename>/</filename>
- NOڡA <filename>/dev</filename>A<filename>/usr</filename>
- HΨLbڥؿUؿNOKAӳoǾKWS٦AO
- <filename>/usr/local</filename> C</para>
-
- <indexterm><primary>ɮרt</primary></indexterm>
- <para>]Yǭ]Aڭ̷|N@ǥؿObPɮרtΤWC
- p <filename>/var</filename> ]tFi|XӪ
- <filename>log/</filename>A<filename>spool/</filename>
- ؿHΦUU˪ȦsɡC
- ɮרtζ캡XMOӦnDNAҥHڭ̩|ɦV
- <filename>/var</filename> q <filename>/</filename> ԥXӡC</para>
-
- <para>t@ӱ`YǥؿbPɮרtΤWzѬOG
- oɮצbPεϺоWC
- O<link linkend="network-nfs">ɮרt</link>
- (Network File System) άOоC</para>
-
- <sect2 xml:id="disks-fstab">
- <title> <filename>fstab</filename> </title>
- <indexterm>
- <primary>ɮרt file systems</primary>
- <secondary>fstab mounted with fstab</secondary>
- </indexterm>
-
- <para>b <filename>/etc/fstab</filename>
- ̭]wɮרtη|b<link linkend="boot">}</link>
- L{۰ʦaQ
- (DɮרtΦQ[W <option>noauto</option> Ѽ)C</para>
-
- <para><filename>/etc/fstab</filename> ɮפe榡pUG</para>
-
- <programlisting><replaceable>device</replaceable> <replaceable>/mount-point</replaceable> <replaceable>fstype</replaceable> <replaceable>options</replaceable> <replaceable>dumpfreq</replaceable> <replaceable>passno</replaceable></programlisting>
-
- <variablelist>
- <varlistentry>
- <term><literal>device</literal></term>
- <listitem>
- <para>˸mW (Ӹ˸musb)C ԱаѾ\
- <xref linkend="disks-naming"/>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>mount-point</literal></term>
-
- <listitem><para>ɮרtέn쪺ؿ (ӥؿusb)C</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>fstype</literal></term>
-
- <listitem>
- <para>ɮרtAoOnǵ &man.mount.8; ѼơC
- FreeBSD w]ɮרtάO <literal>ufs</literal>C</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>options</literal></term>
-
- <listitem>
- <para>iŪigɮרtΥ
- <option>rw</option>AӰŪɮרtΫhO
- <option>ro</option>A᭱ݭn٥iH[LﶵC
- `ﶵp <option>noauto</option>
- OΦbn}L{۰ʪɮרtΡC
- LﶵiѾ\ &man.mount.8; C</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>dumpfreq</literal></term>
-
- <listitem>
- <para>&man.dump.8; ѦبMwɮרtλݭnɦLC
- pGoťիhHsw]ȡC</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>passno</literal></term>
-
- <listitem>
- <para>oӶبMwɮרtˬdǡC
- nLˬdɮרtΡA̪ <literal>passno</literal>
- ȭn]sC ɮרtΪ <literal>passno</literal> ]@
- (]ݭnҦL٭nˬd)AӨLɮרtΪ
- <literal>passno</literal> ӭn]o@jC
- YhɮרtΨ㦳ۦP <literal>passno</literal> ȡAh
- &man.fsck.8; |յۥa(pGi઺)ˬdoɮרtΡC</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>h <filename>/etc/fstab</filename>
- ɮ׮榡οﶵTаѾ\ &man.fstab.5; C</para>
- </sect2>
-
- <sect2 xml:id="disks-mount">
- <title><command>mount</command> O</title>
- <indexterm>
- <primary>ɮרt file systems</primary>
- <secondary> mounting</secondary>
- </indexterm>
-
- <para>&man.mount.8; OOӱɮרtΥΪC</para>
-
- <para>򥻪ާ@O榡pU:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>mount device mountpoint</userinput></screen>
- </informalexample>
-
- <para>b &man.mount.8;
- ̭@j諸ﶵAḺ`ΪNOoǡG</para>
-
- <variablelist>
- <title>ﶵ</title>
-
- <varlistentry>
- <term><option>-a</option></term>
-
- <listitem>
- <para> <filename>/etc/fstab</filename>
- ̭Ҧ٨SQBSQаO <quote>noauto</quote>
- ӥBS <option>-t</option> ưɮרtα_ӡC</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-d</option></term>
-
- <listitem>
- <para>Ҧʧ@AOuhIs system callC
- oӿﶵM <option>-v</option> ftӱ &man.mount.8;
- Nnʧ@ɫܦnΡC</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-f</option></term>
-
- <listitem>
- <para>jbɮרt (MI)AάOΨӱjgJv
- (ɮרtΪAqisܦŪ)C</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-r</option></term>
-
- <listitem>
- <para>ΰŪ覡ɮרtΡC oӿﶵMb <option>-o</option>
- ﶵw <option>ro</option> (b &os; 5.2eO
- <option>rdonly</option>) ѼƬO@˪C</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-t</option>
- <replaceable>fstype</replaceable></term>
-
- <listitem>
- <para>ΫwɮרtΫA (fstype)
- ӱwɮרtΡAάOb <option>-a</option>
- ﶵɥuwAɮרtΡC</para>
-
- <para>w]ɮרtάO <quote>ufs</quote>C</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-u</option></term>
-
- <listitem>
- <para>sɮרtΪﶵC</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-v</option></term>
-
- <listitem>
- <para>ܸԲӸTC</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-w</option></term>
-
- <listitem>
- <para>HisҦɮרtΡC</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para><option>-o</option> ﶵ᭱|ۥHrjѼơAҦpG</para>
- <variablelist>
- <varlistentry>
- <term>noexec</term>
-
- <listitem>
- <para>\boɮרtΤWGi{XA
- o]O@ZΪwﶵC</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>nosuid</term>
-
- <listitem>
- <para>ѪRɮרtΤW setuid setgid XСA
- o]O@ZΪwﶵC</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
-
- <sect2 xml:id="disks-umount">
- <title><command>umount</command> O</title>
- <indexterm>
- <primary>ɮרt file systems</primary>
- <secondary> unmounting</secondary>
- </indexterm>
-
- <para>&man.umount.8; OѼƥiHOI
- (mountpoint)A˸mW١AH <option>-a</option> άO
- <option>-A</option> ﶵC</para>
-
- <para>[W <option>-f</option> iHjA[W <option>-v</option>
- hO|ܸԲӸTC n`NO@ӻ <option>-f</option>
- äOӦnDNAjɮרtΦi|yqA
- Ϊ̷laɮרtΤơC</para>
-
- <para><option>-a</option> M <option>-A</option>
- OΨӨҦwɮרtΡAt~٥iH <option>-t</option>
- ӫwnOǺɮרtΡC n`NO <option>-A</option>
- ä|չϨɮרtΡC</para>
-
- </sect2>
- </sect1>
-
- <sect1 xml:id="basics-processes">
- <title>{</title>
-
- <para>FreeBSD O@Ӧhu@~tΡA]NObP@ɶiH]WL@ӵ{C
- C@ӥbɶ]{Ns <firstterm>{ (process)</firstterm>C
- zUCӫOܤַ|}Ҥ@ӷs{ǡA
- ӦǨtε{ǬO@b]HtΥ`B@C</para>
-
- <para>C@ӵ{dz@ӤЪƦrs <firstterm>process ID
- </firstterm>Aκ٬ <firstterm>PID
- </firstterm>AӥBNɮפ@ˡAC@ӵ{Ǥ]֦̤θsաC
- ֦̤θsժTOΨӨMwɮשθ˸mOoӵ{ǥiH}Ҫ
- (eLɮv)C j{dz{ǡC
- {ǬO}ҳoӵ{Ǫ{ǡAҦpGz shell JOAshell
- NO@ӵ{ǡAӱz檺O]O{ǡC
- C@ӱzγoؤ覡]{Ǫ{dzO shellC
- @ӯSO{ǥs &man.init.8; OӨҥ~C<command>init</command>
- ûOĤ@ӵ{ǡAҥHL PID @|O 1C b FreeBSD }ɭ
- <command>init</command> |۰ʦaQ kernel }ҡC</para>
-
- <para>nݨtΰ椤{ǡAӬ۷ΪOiΡG
- &man.ps.1; H &man.top.1;C<command>ps</command>
- OOΨӦCXb椧{ǡAӥBiHq̪
- PIDBΤFhְOB檺OW٤ΨᤧѼƬO򵥵C
- <command>top</command> OhOܩҦb檺{ǡA
- åBƬs@C]ziHʦ[ݱzqbC</para>
-
- <para>bw]pUA<command>ps</command>
- Ou|ܱzҾ֦{ǡC ҦpG</para>
-
- <screen>&prompt.user; <userinput>ps</userinput>
- PID TT STAT TIME COMMAND
- 298 p0 Ss 0:01.10 tcsh
- 7078 p0 S 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14)
-37393 p0 I 0:03.11 xemacs freebsd.dsl (xemacs-21.1.14)
-48630 p0 S 2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi
-48730 p0 IW 0:00.00 (dns helper) (navigator-linux-)
-72210 p0 R+ 0:00.00 ps
- 390 p1 Is 0:01.14 tcsh
- 7059 p2 Is+ 1:36.18 /usr/local/bin/mutt -y
- 6688 p3 IWs 0:00.00 tcsh
-10735 p4 IWs 0:00.00 tcsh
-20256 p5 IWs 0:00.00 tcsh
- 262 v0 IWs 0:00.00 -tcsh (tcsh)
- 270 v0 IW+ 0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16
- 280 v0 IW+ 0:00.00 xinit /home/nik/.xinitrc -- -bpp 16
- 284 v0 IW 0:00.00 /bin/sh /home/nik/.xinitrc
- 285 v0 S 0:38.45 /usr/X11R6/bin/sawfish</screen>
-
- <para>boӽdҸ̥iHݨ &man.ps.1; XnXC
- <literal>PID</literal> NOe쪺 process IDC PID tOq
- 1 }l@ 99999ApGΧܤS|¶^ӭY}lt
- (Y PID wgbΤFAh PID |st)C
- <literal>TT</literal> Ooӵ{b tty
- WAbo̥iHޡC<literal>STAT</literal>
- O{AA]iHnޡC<literal>TIME</literal> Ooӵ{b
- CPU W檺ɶ&mdash;oq`O{`@᪺ɶA
- ]z}l{Aj{b CPU We|W֮ɶ
- C ̫A<literal>COMMAND</literal> Ooӵ{ROCC</para>
-
- <para>&man.ps.1;
- XӤPﶵզXiHΨܧܥXӪTA䤤@ӳ̦ΪզXO
- <literal>auxww</literal>C
- <option>a</option> iHܩҦb]{ǪOAuOzۤwC
- <option>u</option> hOܵ{Ǫ֦̦W٥HΰOϥαpC
- <option>x</option> iH daemon {ܥXӡA
- <option>ww</option> i &man.ps.1; ܥXCӵ{ǧ㪺eA
- ӤP]LӳQùIFC</para>
-
- <para>&man.top.1; ]XC @몺pݹOoˡG</para>
-
- <screen>&prompt.user; <userinput>top</userinput>
-last pid: 72257; load averages: 0.13, 0.09, 0.03 up 0+13:38:33 22:39:10
-47 processes: 1 running, 46 sleeping
-CPU states: 12.6% user, 0.0% nice, 7.8% system, 0.0% interrupt, 79.7% idle
-Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free
-Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
-
- PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
-72257 nik 28 0 1960K 1044K RUN 0:00 14.86% 1.42% top
- 7078 nik 2 0 15280K 10960K select 2:54 0.88% 0.88% xemacs-21.1.14
- 281 nik 2 0 18636K 7112K select 5:36 0.73% 0.73% XF86_SVGA
- 296 nik 2 0 3240K 1644K select 0:12 0.05% 0.05% xterm
-48630 nik 2 0 29816K 9148K select 3:18 0.00% 0.00% navigator-linu
- 175 root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd
- 7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt
-...</screen>
-
- <para>XTӳC}Y (e) qX̪@ӵ{Ǫ
- PIDBtΥt (tΦh)BtΪ}ɶ
- (qW}_) Hβ{bɶC
- b}Y̭LƦrOObhֵ{ǥb
- (bҤ47)BhְO swap space
- QeΤFA٦NOtΤOFh֮ɶbP CPU AWC</para>
-
- <para>UӪOѦnXҺcAM &man.ps.1; XTC
- NpPeҡAziHݨ PIDBϥΪ̦W١BCPU
- OɶHΥb檺OC &man.top.1;
- bw]pUٷ|iDz{ǥαFh֪OŶC
- bo|A@ӬO`ζq (total size)At@ӬOڥζq
- (resident size)&mdash;`ζqOoε{ݭnOŶA
- ӹڥζqhOڤWӵ{OϥζqC
- boӨҤḽziHݨ <application>&netscape;</application>
- nFXG 30 MB RAMAOuΨ 9 MBC</para>
-
- <para>&man.top.1; Cj 2 |۰ʧsܤeAi <option>s</option>
- ﶵӧܶjɶC</para>
-
- </sect1>
-
- <sect1 xml:id="basics-daemons">
- <title>DaemonBHβפ{</title>
-
- <para>bѽs边ɡAziHܮeaϥΥAsŪɮשάO򪺡C
- iHo˰O]s边ѳoǥ\A
- ٦NOs边̪b@<firstterm>׺ݾ (Terminal) </firstterm>WC
- ǵ{äO]p@bϥΪ̪JA
- ҥH̦b@}l檺ɭԴNq׺ݾ_}FC ҦpA
- Aѳb^譱nDAq`ݭnzJFC
- t~AOHq@ӯǰet@ӯ{A]Ooε{C
- </para>
-
- <para>ڭ̧oص{٧@ <firstterm>daemon</firstterm>C
- Daemon (c]Bu@)
- OþܤG̤͢ݩ󵽨}}Ψc}AOu@pFC
- jPWӻ̴͢NObH@ǦΪƱA
- 򤵤ѪAάOlAܹC o]NO BSD
- NAHӳO@ۦ|cۤTeҪּ֤pc]]C</para>
-
- <para>q`ӻ deamon {Wr᭱|[@Ӧr <quote>d</quote>C
- <application>BIND</application> O Berkeley Internet Name Domain
- Yg (ڤW檺{W٬O <command>named</command>)BApache
- A{W٬O <command>httpd</command>BLAȵ{O
- <command>lpd</command>A̦C
- oOߺDΪkAèSwʳWwAҦp <application>Sendmail</application>
- DnHH daemon Os <command>sendmail</command> ӤO
- <command>maild</command>AzQ@ˡC</para>
-
- <para>ǮɭԷ|ݭnY daemon {ǷqA
- oǷqOzLҿת<firstterm>H(signal)</firstterm>Ӷǻ daemon
- {(άOL椤{)C
- ǥѰeXHAziHM@ daemon (άO@ӥb]{) qC
- Hܦh&mdash;ǦSwNqAǫhO|ε{ӸŪC
- ε{|iDzӵ{OpŪHC
- zueHz֦{ǡAe &man.kill.1; &man.kill.2;
- HOH{ǬOQ\C L <systemitem class="username"> root </systemitem>
- ALiHeHH{ǡC</para>
-
- <para>FreeBSD bYDZp]|eHε{C
- ]ε{goAMϭnsӸIO骺ɭԡAFreeBSD
- |e@ <firstterm>Segmentation Violation</firstterm> H
- (<literal>SIGSEGV</literal>) oӵ{ǡC
- SpG@ε{ΤF &man.alarm.3; system call
- nDtΦbL@qɶsL@UAɶFɭԾxH
- (<literal>SIGALRM</literal>) N|QeXFAL̦C</para>
-
- <para><literal>SIGTERM</literal> and <literal>SIGKILL</literal>
- oӫHiHӲפ{ǡC <literal>SIGTERM</literal>
- {ǬO§覡Aӵ{Ƿ|<emphasis> (catch) </emphasis>
- oӫHӤFѨzQnLC ۤUӥ|⥦ۤw}OɳqqA
- Mb{Ǥe䪺u@C bYDZpU{Ǧi|˧@Sݨ
- <literal>SIGTERM</literal>Apb@Ǥत_u@ܡC</para>
-
- <para><literal>SIGKILL</literal> NSkQ{ǩFC
- oO@<quote>ںާAbFA{bNڰU</quote>HC
- pGzeF <literal>SIGKILL</literal> HYӵ{ǡAFreeBSD
- N|⥦<footnote>
- <para>T&mdash;٬OּƪF褣Q_C
- Ҧpӵ{ǥbqWOqŪ@ɮסA
- Өq]YDzzѳs (QAάO걼F)A
- oӵ{ǧڭ̴NLO@<quote>त_</quote>{ǡC
- q`bgLkoӵ{Ƿ|OɡC
- o͹OɪɭԳoӵ{ǴN|QFC</para>
- </footnote>C</para>
-
- <para>oǬOLzi|nΨ쪺HG
- <literal>SIGHUP</literal>A<literal>SIGUSR1</literal>AH
- <literal>SIGUSR2</literal>C
- oǬOqΪHAeXɤPε{|PC</para>
-
- <para>]zʤFzA]w&mdash;
- zQnsAhsŪ]wȡC ziHAsҰ
- <command>httpd</command>AOo򰵷|yAȰAȤ@qɶA
- oˤliणӦnC
- j daemon g|h^ <literal>SIGHUP</literal>C
- oӫHA̷|hsŪۤw]wɡC
- ]ziHΰe <literal>SIGHUP</literal> HӨN}C
- S]SзǦbWdp^oǫHAP daemon
- i|P欰AҥHðݪܽХT{½\ deamon
- C</para>
-
- <para>HO &man.kill.1; OeXApdҩҥܡG</para>
-
- <procedure>
- <title>eH{</title>
-
- <para>oӽdұN|ܽdpe@ӫH &man.inetd.8;C
- <command>inetd</command> ]wɬO
- <filename>/etc/inetd.conf</filename>A <command>inetd</command>
- |b <literal>SIGHUP</literal> ɭԭsŪoӳ]wɡC</para>
-
- <step>
- <para>XzQneHӵ{Ǫ IDC z|Ψ &man.ps.1; H
- &man.grep.1; oӫOC &man.grep.1; OΨӦbXjMA
- XzwrC oӫOOѤ@ϥΪ̰A &man.inetd.8;
- O <systemitem class="username">root</systemitem> AҥHbϥ &man.ps.1; ɻݭn[W
- <option>ax</option> ﶵC</para>
-
- <screen>&prompt.user; <userinput>ps -ax | grep inetd</userinput>
- 198 ?? IWs 0:00.00 inetd -wW</screen>
-
- <para>]i &man.inetd.8; PID 198C bYDZpU
- <literal>grep inetd</literal> oӫO]|X{bX̡C
- oO] &man.ps.1; DOҦ椤{Ǫ覡yC</para>
- </step>
-
- <step>
- <para> &man.kill.1; ӰeHC S] &man.inetd.8; O
- <systemitem class="username">root</systemitem> 檺Az &man.su.1;
- <systemitem class="username">root</systemitem>C</para>
-
- <screen>&prompt.user; <userinput>su</userinput>
-<prompt>Password:</prompt>
-&prompt.root; <userinput>/bin/kill -s HUP 198</userinput></screen>
-
- <para>@뱡pjh &unix; OA &man.kill.1;
- 榨\ɨä|XTC
- ]ze@ӫHYӤOzҾ֦{ǡA
- zN|Yoӿ~TG <errorname>kill:
- <replaceable>PID</replaceable>: Operation not permitted</errorname>C
- ӦpGz PID ܡAN|He~{ǡC o˥i|VA
- LpGzBܡAinNuOHe@ӫDϥΤ
- PIDAzNu|ݨ <errorname>kill:
- <replaceable>PID</replaceable>: No such process</errorname> ӤwC
- </para>
-
- <note>
- <title> <command>/bin/kill</command>H</title>
-
- <para>ܦh shell Ѥت <command>kill</command> OC
- ]NOo shell |eHAӤO
- <filename>/bin/kill</filename>C
- oˬOZKSաAOP shell
- |PykӫwHWٵC
- Pեh⥦̳qqǷ|ApNª <command>/bin/kill
- ...</command> aC</para>
- </note>
- </step>
- </procedure>
-
- <para>neLHܤ]OD`ANݭnO
- <literal>TERM</literal> <literal>KILL</literal>
- YiC</para>
-
- <important>
- <para>HK@ӨtΤ{ǵML屼äOӦnDNC
- SOO &man.init.8;A process ID 1A@ӫD`SO{ǡC
- <command>/bin/kill -s KILL 1</command>
- GNOtΥߨC ]bzU <keycap>Return</keycap>
- n &man.kill.1;<emphasis>e</emphasis>A
- <emphasis>@w</emphasis>nOoAT{zUѼơC</para>
- </important>
- </sect1>
-
- <sect1 xml:id="shells">
- <title>Shells</title>
- <indexterm><primary>shells</primary></indexterm>
- <indexterm><primary>ROC command line</primary></indexterm>
-
- <para>b FreeBSD Aܦh`u@Ob@ӥs shell
- rC
- Shell Dnu@NOqJROð楦̡C
- \h shell ]ؤ@ǦU`u@OA
- Oɮ׺޲zBɮפBROCsBOHܼƵC
- FreeBSD FX shellAO <command>sh</command>A
- Bourne ShellAH <command>tcsh</command>A} C-shellC
- ٦\hL shell iHq FreeBSD Ports Collection
- oAO <command>zsh</command> H <command>bash</command>
- C</para>
-
- <para>zέ shell OH CӤHߦn@ˡC
- pGzO@ C {]pvAϥιO <command>tcsh</command>
- o C-like shell i|P۷r֡C pGAOq Linux
- LӪAΪ̱zO@ &unix; sAz]\|Qn
- <command>bash</command> ӷ@rC
- C@ shell ۤwWSBAܩoǯSIणtXzu@ҡH
- NOz shell IFC</para>
-
- <para>ɦW۰ʸɻNO` shell \C
- JOɮתeXӦrAoɳq`zuݭnU <keycap>Tab</keycap>
- AU shell N|۰ʧOάOɮצWٳѾlɻC
- ]zɮפOs@ <filename>foobar</filename>
- <filename>foo.bar</filename>C {bnR
- <filename>foo.bar</filename>AiHJG
- <command>rm fo[Tab].[Tab]</command>
- </para>
-
- <para>Shell |LXoӡG <command>rm foo[].bar</command>C</para>
-
- <para>[] O console TaAoͪ@nO shell
- biDڻSk۰ʸɻɦWA]u@ɦWŦXC
- <filename>foobar</filename> M <filename>foo.bar</filename> O
- <literal>fo</literal> }YɦWALܤ֥iHɻ <literal>foo</literal>C
- pGzۿJ <literal>.</literal> MA <keycap>Tab</keycap>
- @A shell NzѤUɦW񺡤FC</para>
-
- <indexterm><primary>environment variables</primary></indexterm>
-
- <para>Shell t@SIOϥΤFܼơC
- ܼƬOHܼƻPȡ]variable/key^Yxs shell
- ҪŶA shell Ҳͪ{dziHŪŶA
- ]oӪŶxsF\h{Ǫ]wպAC bW
- @`ܼƻP[qCG</para>
- <indexterm><primary>environment variables</primary></indexterm>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>ܼ</entry>
- <entry>Բӻ</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><envar>USER</envar></entry>
- <entry>ثenJϥΪ̦W١C</entry>
- </row>
-
- <row>
- <entry><envar>PATH</envar></entry>
- <entry>H_]:^j}ؿCAΥHjMɪ|C</entry>
- </row>
-
- <row>
- <entry><envar>DISPLAY</envar></entry>
- <entry>YsboܼơAhN X11 sܾW١C</entry>
- </row>
-
- <row>
- <entry><envar>SHELL</envar></entry>
- <entry>ثeϥΪ shellC</entry>
- </row>
-
- <row>
- <entry><envar>TERM</envar></entry>
- <entry>ϥΪ̲׺ݾW١AǥѦܼƧP_׺ݾOC</entry>
- </row>
-
- <row>
- <entry><envar>TERMCAP</envar></entry>
- <entry>Database entry of the terminal escape codes to perform
- various terminal functions.</entry>
- </row>
-
- <row>
- <entry><envar>OSTYPE</envar></entry>
- <entry>@~tΪApGFreeBSDC</entry>
- </row>
-
- <row>
- <entry><envar>MACHTYPE</envar></entry>
- <entry>ثetΩҥΪ CPU [cC</entry>
- </row>
-
- <row>
- <entry><envar>EDITOR</envar></entry>
- <entry>ϥΪ̰nrs边C</entry>
- </row>
-
- <row>
- <entry><envar>PAGER</envar></entry>
- <entry>ϥΪ̰nr]text pager^C</entry>
- </row>
-
- <row>
- <entry><envar>MANPATH</envar></entry>
- <entry>H_]:^j}ؿCAΥHjM manual pages |C</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <indexterm><primary>Bourne shells</primary></indexterm>
- <para>bP shell U]wܼƪ覡]ҤPC
- |ҨӻAb C-Style shell UAO
- <command>tcsh</command> M <command>csh</command>AAϥ
- <command>setenv</command> ӳ]wܼơC
- b Bourne shells UAO <command>sh</command> M
- <command>bash</command>AAhϥ
- <command>export</command> ӳ]wAҨϥΪܼơC
- A|ӨҤlӻAYn]wάOק
- <envar>EDITOR</envar> oܼơAb <command>csh</command>
- <command>tcsh</command> U]w <envar>EDITOR</envar> oܼƬ
- <filename>/usr/local/bin/emacs</filename> OOG</para>
-
- <screen>&prompt.user; <userinput>setenv EDITOR /usr/local/bin/emacs</userinput></screen>
-
- <para>b Bourne shells UhOG</para>
-
- <screen>&prompt.user; <userinput>export EDITOR="/usr/local/bin/emacs"</userinput></screen>
-
- <para>jhƪ shell 䴩ϥΪ̦bROCN
- <literal>$</literal> rbܼƤeAHoܼƪȡC
- |ҨӻA<command>echo $TERM</command> |
- ܥX <envar>$TERM</envar> ]wȡAoO] shell oF
- <envar>$TERM</envar> ]wȡA
- ñNǵ <command>echo</command> ܥXӡC</para>
-
- <para>Shell YǯSOrOӪܯSơAڭ̱N٧@
- meta-charactersC 䤤̱`O
- <literal>*</literal> rALNFɦWNrC
- oǯSriHΦbɦWi}]filename globbing^WA|ҨӻAJ
- <command>echo *</command> |MJ
- <command>ls</command> oXGۦPGAoO] shell |NҦŦX
- <literal>*</literal> rɮ׶ǨROCWAA
- <command>echo</command> ܥXӡC</para>
-
- <para>FקK shell ĶoǯSrAڭ̥iHboǯSre@Ӥϱ׽u
- (<literal>\</literal>) rϥL̸(escape) shell ĶC|ҨӻA
- <command>echo $TERM</command> |LXAثe]w׺ݾ榡A
- <command>echo \$TERM</command> h|LX <envar>$TERM</envar>
- oXӦrC</para>
-
- <sect2 xml:id="changing-shells">
- <title>ܧA Shell</title>
-
- <para>ܧ shell ²檺kNOzL <command>chsh</command> ROC
- <command>chsh</command> N|IsܼƤ <envar>EDITOR</envar>
- wrs边C pGS]wAhw]O <command>vi</command>C
- Ш̷ӻݨDhק <quote>Shell:</quote> ȡC</para>
-
- <para>A]iHzL <command>chsh</command> Ѽ <option>-s</option>A
- oiH]wA shell ӤݭnzLrs边C ҦpA
- ]QҥΪ shell אּ <command>bash</command>A
- iHzLUC覡G</para>
-
- <screen>&prompt.user; <userinput>chsh -s /usr/local/bin/bash</userinput></screen>
-
- <note>
- <para>AҨϥΪ shell <emphasis></emphasis> C
- <filename>/etc/shells</filename> YC pGO
- <link linkend="ports">Ports Collection</link> Ӹ shellA
- oӨBJwgFC YOʦwˤF@ shellA
- Nsw˪ shell i]wC</para>
-
- <para>|ҨӻAYʦwˤF <command>bash</command> ñNm
- <filename>/usr/local/bin</filename> UAAٱoG</para>
-
- <screen>&prompt.root; <userinput>echo &quot;/usr/local/bin/bash&quot; &gt;&gt; /etc/shells</userinput></screen>
-
- <para>MAs <command>chsh</command>C</para>
- </note>
- </sect2>
- </sect1>
-
- <sect1 xml:id="editors">
- <title>rs边</title>
- <indexterm><primary>text editors</primary></indexterm>
- <indexterm><primary>editors</primary></indexterm>
-
- <para>b FreeBSD \h]wzLsrɧC
- ]AYxrs边OAnLC
- FreeBSD ] base system^NXؤrs边A
- ~AA]iHzL Ports Collection Ӧw˨Lrs边C</para>
-
- <indexterm>
- <primary><command>ee</command></primary>
- </indexterm>
- <indexterm>
- <primary>editors</primary>
- <secondary><command>ee</command></secondary>
- </indexterm>
- <para>²Ǫrs边s <application>ee</application>A
- NFW easy editorC n}lϥ <application>ee</application>A
- bROCWJ
- <command>ee filename</command>A
- o䪺 <replaceable>filename</replaceable> NAQns誺ɮצW١C
- |ҨӻAns <filename>/etc/rc.conf</filename>ANnJ
- <command>ee /etc/rc.conf</command>C
- Ӧb <command>ee</command> ާ@UA
- Ҧs边\Pާ@|ܦbùWC
- 䤤JŸ(<literal>^</literal>)NLW <keycap>Ctrl</keycap>
- AҥH <literal>^e</literal> NP
- <keycombo action="simul"><keycap>Ctrl</keycap><keycap>e</keycap></keycombo>
- C Yn <application>ee</application>AЫU <keycap>Esc</keycap>
- Aۿ leave editor YiC
- ɦpGɮצקLAs边|AO_nsɡC</para>
-
- <indexterm>
- <primary><command>vi</command></primary>
- </indexterm>
- <indexterm>
- <primary>editors</primary>
- <secondary><command>vi</command></secondary>
- </indexterm>
- <indexterm>
- <primary><command>emacs</command></primary>
- </indexterm>
- <indexterm>
- <primary>editors</primary>
- <secondary><command>emacs</command></secondary>
- </indexterm>
-
- <para>~AFreeBSD ]FXӦnΪrs边AO base system
- <application>vi</application> FreeBSD Ports Collection Ls边A
- p <application>Emacs</application> <application>vim</application>
- (<package>editors/emacs</package>
- <package>editors/vim</package>)C
- oǤrs边ѧj\AO]DzߡC
- MӭYnqƤjqrsu@A
- IɶӾDz߳oǦnΪs边A
- |bᬰz٤UhɶC</para>
- </sect1>
-
- <sect1 xml:id="basics-devices">
- <title>]Ƥγ]Ƹ`I</title>
-
- <para>](device)DnOwNyA
- ]AϺСBLBܥdMLC FreeBSD }L{A
- jhƵwq`఻ܥXӡA]iHd\
- <filename>/var/run/dmesg.boot</filename> }TC</para>
-
- <para>|ҨӻA<filename>acd0</filename>YĤ@x IDE оNA
- <filename>kbd0</filename> hNLC</para>
-
- <para>b &unix; @~tΡA
- j]ƳOzLs device nodes(]Ƹ`I)Sɮרӧ@sA
- ӳoɮ׳ <filename>/dev</filename> ؿC</para>
-
- <sect2>
- <title>إ߳]Ƹ`I</title>
- <para>YnbtΤWإ߷s`IAΪ̬OnsĶYǷsw骺䴩nA
- NnsW]Ƹ`IC</para>
-
- <sect3>
- <title><literal>DEVFS</literal> (DEVice File System)</title>
-
- <para>]ɮרt(κ٬ <literal>DEVFS</literal>) Obɮרt
- namespace kernel ] namespaceC <literal>DEVFS</literal>
- DO@oɮרtΡAӤsWέקodz]Ƹ`IC</para>
-
- <para>Ӹ`аѾ\ &man.devfs.5; C</para>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 xml:id="binary-formats">
- <title>Binary 榡</title>
-
- <para>YnD &os; Oĥ &man.elf.5; 榡AAѷe &unix;
- tΤT<quote>vT̬j</quote>iɬIG</para>
-
- <itemizedlist>
- <listitem>
- <para>&man.a.out.5;</para>
-
- <para>̥jѡB<quote>g</quote> &unix; object ɮ榡C
- It uses a short and compact header with a magic
- number at the beginning that is often used to characterize
- the format (see &man.a.out.5; for more details). It
- contains three loaded segments: .text, .data, and .bss plus
- a symbol table and a string table.</para>
- </listitem>
-
- <listitem>
- <para><acronym>COFF</acronym></para>
-
- <para>The SVR3 object format. The header now comprises a
- section table, so you can have more than just .text, .data,
- and .bss sections.</para>
- </listitem>
-
- <listitem>
- <para>&man.elf.5;</para>
-
- <para>The successor to <acronym>COFF</acronym>, featuring
- multiple sections and 32-bit or 64-bit possible values. One
- major drawback: <acronym>ELF</acronym> was also designed
- with the assumption that there would be only one ABI per
- system architecture. That assumption is actually quite
- incorrect, and not even in the commercial SYSV world (which
- has at least three ABIs: SVR4, Solaris, SCO) does it hold
- true.</para>
-
- <para>FreeBSD tries to work around this problem somewhat by
- providing a utility for <emphasis>branding</emphasis> a
- known <acronym>ELF</acronym> executable with information
- about the ABI it is compliant with. See the manual page for
- &man.brandelf.1; for more information.</para>
- </listitem>
- </itemizedlist>
-
- <para>FreeBSD comes from the <quote>classic</quote> camp and used
- the &man.a.out.5; format, a technology tried and proven through
- many generations of BSD releases, until the beginning of the 3.X
- branch. Though it was possible to build and run native
- <acronym>ELF</acronym> binaries (and kernels) on a FreeBSD
- system for some time before that, FreeBSD initially resisted the
- <quote>push</quote> to switch to <acronym>ELF</acronym> as the
- default format. Why? Well, when the Linux camp made their
- painful transition to <acronym>ELF</acronym>, it was not so much
- to flee the <filename>a.out</filename> executable format as it
- was their inflexible jump-table based shared library mechanism,
- which made the construction of shared libraries very difficult
- for vendors and developers alike. Since the
- <acronym>ELF</acronym> tools available offered a solution to the
- shared library problem and were generally seen as <quote>the way
- forward</quote> anyway, the migration cost was accepted as
- necessary and the transition made. FreeBSD's shared library
- mechanism is based more closely on Sun's
- &sunos; style shared library mechanism
- and, as such, is very easy to use.</para>
-
- <para>So, why are there so many different formats?</para>
-
- <para>Back in the dim, dark past, there was simple hardware. This
- simple hardware supported a simple, small system. <filename>a.out</filename> was
- completely adequate for the job of representing binaries on this
- simple system (a PDP-11). As people ported &unix; from this simple
- system, they retained the <filename>a.out</filename> format because it was sufficient
- for the early ports of &unix; to architectures like the Motorola
- 68k, VAXen, etc.</para>
-
- <para>Then some bright hardware engineer decided that if he could
- force software to do some sleazy tricks, then he would be able
- to shave a few gates off the design and allow his CPU core to
- run faster. While it was made to work with this new kind of
- hardware (known these days as <acronym>RISC</acronym>), <filename>a.out</filename>
- was ill-suited for this hardware, so many formats were developed
- to get to a better performance from this hardware than the
- limited, simple <filename>a.out</filename> format could
- offer. Things like <acronym>COFF</acronym>,
- <acronym>ECOFF</acronym>, and a few obscure others were invented
- and their limitations explored before things seemed to settle on
- <acronym>ELF</acronym>.</para>
-
- <para>In addition, program sizes were getting huge and disks (and
- physical memory) were still relatively small so the concept of a
- shared library was born. The VM system also became more
- sophisticated. While each one of these advancements was done
- using the <filename>a.out</filename> format, its usefulness was
- stretched more and more with each new feature. In addition,
- people wanted to dynamically load things at run time, or to junk
- parts of their program after the init code had run to save in
- core memory and swap space. Languages became more sophisticated
- and people wanted code called before main automatically. Lots of
- hacks were done to the <filename>a.out</filename> format to
- allow all of these things to happen, and they basically worked
- for a time. In time, <filename>a.out</filename> was not up to
- handling all these problems without an ever increasing overhead
- in code and complexity. While <acronym>ELF</acronym> solved many
- of these problems, it would be painful to switch from the system
- that basically worked. So <acronym>ELF</acronym> had to wait
- until it was more painful to remain with
- <filename>a.out</filename> than it was to migrate to
- <acronym>ELF</acronym>.</para>
-
- <para>However, as time passed, the build tools that FreeBSD
- derived their build tools from (the assembler and loader
- especially) evolved in two parallel trees. The FreeBSD tree
- added shared libraries and fixed some bugs. The GNU folks that
- originally wrote these programs rewrote them and added simpler
- support for building cross compilers, plugging in different
- formats at will, and so on. Since many people wanted to build cross
- compilers targeting FreeBSD, they were out of luck since the
- older sources that FreeBSD had for <application>as</application> and <application>ld</application> were not up to the
- task. The new GNU tools chain (<application>binutils</application>) does support cross
- compiling, <acronym>ELF</acronym>, shared libraries, C++
- extensions, etc. In addition, many vendors are releasing
- <acronym>ELF</acronym> binaries, and it is a good thing for
- FreeBSD to run them.</para>
-
- <para><acronym>ELF</acronym> is more expressive than <filename>a.out</filename> and
- allows more extensibility in the base system. The
- <acronym>ELF</acronym> tools are better maintained, and offer
- cross compilation support, which is important to many people.
- <acronym>ELF</acronym> may be a little slower than <filename>a.out</filename>, but
- trying to measure it can be difficult. There are also numerous
- details that are different between the two in how they map
- pages, handle init code, etc. None of these are very important,
- but they are differences. In time support for
- <filename>a.out</filename> will be moved out of the <filename>GENERIC</filename>
- kernel, and eventually removed from the kernel once the need to
- run legacy <filename>a.out</filename> programs is past.</para>
- </sect1>
-
- <sect1 xml:id="basics-more-information">
- <title>hT</title>
-
- <sect2 xml:id="basics-man">
- <title>Manual uW</title>
- <indexterm><primary>manual pages</primary></indexterm>
-
- <para>bϥ FreeBSD ɡA̸ԲӪϥλL man uWC
- XGU{|W²uAHиӵ{򥻥\ѼƥΪkC
- iHzL <command>man</command> OӾ\ŪoǻA
- <command>man</command> Oϥά۷²G</para>
-
- <screen>&prompt.user; <userinput>man command</userinput></screen>
-
- <para><literal>command</literal> BNOQnDOC |ӨҤlA
- YnD <command>ls</command> ԲӥΪkANiHG</para>
-
- <screen>&prompt.user; <userinput>man ls</userinput></screen>
-
- <para>ӦUuW]ʽ褣PAӰϤUCƦr`G</para>
-
- <orderedlist>
- <listitem>
- <para>ϥΪ̫OC</para>
- </listitem>
-
- <listitem>
- <para>tΩIs(System call) ο~NC</para>
- </listitem>
-
- <listitem>
- <para>C y禡wC</para>
- </listitem>
-
- <listitem>
- <para>U]ƪXʵ{C</para>
- </listitem>
-
- <listitem>
- <para>ɮ׮榡C</para>
- </listitem>
-
- <listitem>
- <para>pC{ΨLTֵ{C</para>
- </listitem>
-
- <listitem>
- <para>uBLTC</para>
- </listitem>
-
- <listitem>
- <para>tκ@Bާ@OC</para>
- </listitem>
-
- <listitem>
- <para>Kernel }oγ~C</para>
- </listitem>
- </orderedlist>
-
- <para>DZp|P˥DDP`C |ӨҤlAtΤ|
- <command>chmod</command> OA] <function>chmod()</function>
- tΩIsC boرpA<command>man</command>
- ӭnwҭndߪ`G</para>
-
- <screen>&prompt.user; <userinput>man 1 chmod</userinput></screen>
-
- <para>p@ӴN|d <command>chmod</command> OC
- q`bgɷ|⦳ѦҨYSw` man X]@ּgbAC
- ҥH &man.chmod.1; NO <command>chmod</command> OA
- &man.chmod.2; hOtΩIsC</para>
-
- <para>pGzwgDROW١AuODn˨ϥΪܡANnC
- YDnέӫOɡAӫOH oӮɭԡANiHQ
- <command>man</command> jMr\A
- HbUгjMrCAﶵO <option>-k</option>G
- </para>
-
- <screen>&prompt.user; <userinput>man -k mail</userinput></screen>
-
- <para>p@ӷ|ݨ@靈 <quote>mail</quote> rA
- ƹWӥ\P <command>apropos</command> OO@˪C</para>
-
- <para>ӦɧA|ݨ칳O <filename>/usr/bin</filename>
- \hݰ_ӻᬯOAγ~H un²JG</para>
-
- <screen>&prompt.user; <userinput>cd /usr/bin</userinput>
-&prompt.user; <userinput>man -f *</userinput></screen>
-
- <para>Ϊ̬O</para>
-
- <screen>&prompt.user; <userinput>cd /usr/bin</userinput>
-&prompt.user; <userinput>whatis *</userinput></screen>
-
- <para>o̪OĪGO@˪C</para>
- </sect2>
-
- <sect2 xml:id="basics-info">
- <title>GNU Info ɮ</title>
- <indexterm><primary>Free Software Foundation</primary></indexterm>
-
- <para>FreeBSD \h{uӦ۩ۥѳn|(FSF)C F man
- uW~Aoǵ{ѤFt~@ا㦳uʪ hypertext 榡A
- s <literal>info</literal>C iH <command>info</command>
- OӾ\ŪAΪ̭Y <application>emacs</application> izL
- <application>emacs</application> info Ҧ\ŪC</para>
-
- <para>n &man.info.1; OAuݥG</para>
-
- <screen>&prompt.user; <userinput>info</userinput></screen>
-
- <para> <literal>h</literal> |²满AӭYnֳtd\ާ@覡A
- hЫ <literal>?</literal>C</para>
- </sect2>
- </sect1>
-</chapter>
diff --git a/zh_TW.Big5/books/handbook/desktop/chapter.xml b/zh_TW.Big5/books/handbook/desktop/chapter.xml
deleted file mode 100644
index e4a5eeb3e6..0000000000
--- a/zh_TW.Big5/books/handbook/desktop/chapter.xml
+++ /dev/null
@@ -1,1037 +0,0 @@
-<?xml version="1.0" encoding="big5"?>
-<!--
- The FreeBSD Documentation Project
- $FreeBSD$
- Original revision: 1.72
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="desktop">
- <info><title>ୱε{</title>
- <authorgroup>
- <author><personname><firstname>Christophe</firstname><surname>Juniet</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <sect1 xml:id="desktop-synopsis">
- <title>z</title>
-
- <para>b FreeBSD WiHD`hୱε{A
- OsMrBzn鵥C
- oǵ{jiHzLMӦw˩άOq Ports Collection ۰ʽsĶwˡC
- \hsϥΪ̷|ƱbbL̪ୱtΤoǵ{C
- oN|iDAp󤣥ζOӦh\ҥhwˤ@Ǽୱε{A
- ެOqMάOq Ports Collection wˡC</para>
-
- <para>ݭn`N쪺OGq ports w˵{ɭԡA
- ̬OqlX}lsĶC̷ӧAsĶ ports Mqt(w鵥)A
- i|ܪ@qɶ~৹C
- pGqlXsĶAӻ|ӦhɶܡA
- j ports AƥsĶnMӦwˡC</para>
-
- <para>] FreeBSD 㦳ۮe Linux GiSʡA
- \hb Linux W}oε{bA FreeBSD ୱҰC
- bw˥ Linux ε{eAjPijA\Ū <xref linkend="linuxemu"/>
- Linux ۮeҦoӳ`C
- ӳ\h Linux GiۮeҦnb ports Yq`|
- <quote>linux-</quote> }YC
- AbjMYӯSwnɡAOoIAåBiHϥ &man.whereis.1;
- ӧC bUCA
- ]Abw˥ Linux γn餧eA
- wgƥҥΤF Linux GiۮeҦC</para>
-
- <para>UCؿOoҲ[\ε{G</para>
-
- <itemizedlist>
- <listitem>
- <para>s (O <application>Mozilla</application>,
- <application>Opera</application>,
- <application>Firefox</application>,
- <application>Konqueror</application>)</para>
- </listitem>
-
- <listitem>
- <para>줽n (O
- <application>KOffice</application>,
- <application>AbiWord</application>,
- <application>The GIMP</application>,
- <application>OpenOffice.org</application>)</para>
- </listitem>
-
- <listitem>
- <para>sn (O <application>&acrobat.reader;</application>,
- <application>gv</application>,
- <application>Xpdf</application>,
- <application>GQview</application>)</para>
- </listitem>
-
- <listitem>
- <para>]ȳBzn (O
- <application>GnuCash</application>,
- <application>Gnumeric</application>,
- <application>Abacus</application>)</para>
- </listitem>
- </itemizedlist>
-
- <para>b\ŪoeAA</para>
-
- <itemizedlist>
- <listitem>
- <para>Dpw˨Ln(third-party software)
- (<xref linkend="ports"/>).</para>
- </listitem>
-
- <listitem>
- <para>Dpw Linux n
- (<xref linkend="linuxemu"/>).</para>
- </listitem>
- </itemizedlist>
-
- <para>nDhhCҪTAХ\Ū
- <xref linkend="multimedia"/> hC鳹`C
- pGAQn]wMϥιqllA]ЧA <xref linkend="mail"/>l󳹸`C</para>
- </sect1>
-
- <sect1 xml:id="desktop-browsers">
- <title>s</title>
-
- <indexterm>
- <primary>s</primary>
- <secondary></secondary>
- </indexterm>
-
- <para>b FreeBSD èSww˦nSwsC
- b Ports Collection o\hsiѧAw˨ϥΡC
- pGASɶhsĶҦF
- (bYDZpUoi|Wܪ@qɶ)A
- odz{MiѪwˡC</para>
-
- <para><application>KDE</application> M
- <application>GNOME</application> ୱҳw HTML sC
- аѦ <xref linkend="x11-wm"/> ӤFѧhp]woǧ㪺ୱҨtθTC</para>
-
- <para>pGAbM仴qƪsAAiHq Ports Collection UXءG
- <package>www/dillo</package>,
- <package>www/links</package>,
- <package>www/w3m</package>C</para>
-
- <para>o`гosG</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="4">
- <thead>
- <row>
- <entry>sW</entry>
- <entry>һݪtθ귽</entry>
- <entry>q ports wˮɶ</entry>
- <entry>Dn̪ۨn</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><application>Mozilla</application></entry>
- <entry>h</entry>
- <entry></entry>
- <entry><application>Gtk+</application></entry>
- </row>
-
- <row>
- <entry><application>Opera</application></entry>
- <entry></entry>
- <entry>u</entry>
- <entry>FreeBSD M Linux C
- Linux ݭn Linux GiۮeҲեH
- <application>linux-openmotif</application>.</entry>
- </row>
-
- <row>
- <entry><application>Firefox</application></entry>
- <entry></entry>
- <entry></entry>
- <entry><application>Gtk+</application></entry>
- </row>
-
- <row>
- <entry><application>Konqueror</application></entry>
- <entry></entry>
- <entry></entry>
- <entry><application>KDE</application> 禡w</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <sect2>
- <title>Mozilla</title>
- <indexterm>
- <primary><application>Mozilla</application></primary>
- </indexterm>
-
- <para><application>Mozilla</application>
- O۷{NơBíwBӦ FreeBSD tΤWC
- ]ƦQŦX HTML зǪܤA
- 󴣨ѤFlηsDsժ\Ū\C
- ~pGAnۤvg@ǺܡAٴѤF HTML s边C
- pGO <application>&netscape;</application> ϥΪ̡A
- Ai|{Xo <application>Communicator</application> ܹA
- ̨PˬOϥάۦP¦sC</para>
-
- <para>bt׸CAO CPU tפ֩ 233MHz άOp 64MB O骺WA
- ϥ <application>Mozilla</application> |O󷥫ׯӶO귽ơC
- ҥHbo˪WAAi|Qnϥ <application>Opera</application>
- o˻qŪsAӱUӫ᭱|C</para>
- <!--20060316: psilotum ĶۡGh[@yܡAյqq@ǡC
- uҥHbo˪Wv-->
-
- <para>pGA]άOQsĶ
- <application>Mozilla</application> ܡAFreeBSD
- GNOME ζwgAnFoơC
- unΤUOzLwˮMNFG</para>
-
- <screen>&prompt.root; <userinput>pkg_add -r mozilla</userinput></screen>
-
- <para>pGSMiHϥΡAӧA]ɶMϺЪŶӽsĶ
- <application>Mozilla</application> æw˨AtΤA
- AiHzLUCBJӦwˡG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/www/mozilla</userinput>
-&prompt.root; <userinput>make install clean</userinput></screen>
-
-
- <para><application>Mozilla</application> ݭnϥ
- <systemitem class="username">root</systemitem> vӰ chrome
- UӽTOTlơC
- t~ApGAݭn@B~~{O mouse gesturesA
- ANnϥ <systemitem class="username">root</systemitem> vӦwˡA
- HAw˳oǥ~{C</para>
-
- <para>@AF <application>Mozilla</application>
- wˡAANA]ݭn <systemitem class="username">root</systemitem> vFC
- @AiHUOӱҰ <application>Mozilla</application>G</para>
-
- <screen>&prompt.user; <userinput>mozilla</userinput></screen>
-
- <para>]iHUCOAҰʶlMsD\ŪG</para>
-
- <screen>&prompt.user; <userinput>mozilla -mail</userinput></screen>
- </sect2>
-
- <sect2>
- <title>Firefox</title>
- <indexterm>
- <primary><application>Firefox</application></primary>
- </indexterm>
-
- <para><application>Firefox</application> OH
- <application>Mozilla</application> lX¦s@NsC
- <application>Mozilla</application> O@γn骺XMˡA
- OsBl{Bѫdzn鵥ҲզC
- <application>Firefox</application> hºOsA
- o]O󥦯up뮫GC</para>
-
- <para>iHUCOӦwˡG</para>
-
- <screen>&prompt.root;<userinput>pkg_add -r firefox</userinput></screen>
-
- <para>]iHzL Ports CollectionAHsĶlX覡ӦwˡG</para>
-
- <screen>&prompt.root;<userinput>cd /usr/ports/www/firefox</userinput>
-&prompt.root; <userinput>make install clean</userinput></screen>
- </sect2>
-
- <sect2 xml:id="moz-java-plugin">
- <title>Firefox, Mozilla &java; plugin {</title>
-
- <note>
- <para>`HΤU@`A]zw˦n
- <application>Firefox</application>
- <application>Mozilla</application>C</para>
- </note>
-
- <para>&os; |P Sun Microsystems FvijA
- iH Java Runtime Environment(&jre;)
- Java Developement Kit(&jdk;) &os; binary()C
- &os; binary iHb <link xlink:href="http://www.freebsdfoundation.org/downloads/java.shtml">&os;
- |</link> UC</para>
-
- <para>n <application>Firefox</application>
- <application>Mozilla</application> 䴩 &java; ܡAn
- <package>java/javavmwrapper</package> o portC
- MAh <uri xlink:href="http://www.freebsdfoundation.org/downloads/java.shtml">http://www.freebsdfoundation.org/downloads/java.shtml</uri>
- U <application>Diablo &jre;</application>AåH &man.pkg.add.1;
- OӦwˤC</para>
-
- <para>۱ҰsAb}CJ <literal>about:plugins</literal>
- M <keycap>Enter</keycap> AN|ܥثew˪ plugins MA
- oӴNiHݨ <application>&java;</application> ]CXӡC
- Yݨ쪺ܡAN <systemitem class="username">root</systemitem> bA
- UCOG</para>
-
- <screen>&prompt.root; <userinput>ln -s /usr/local/diablo-jre1.5.0/plugin/i386/ns7/libjavaplugin_oji.so \
- /usr/local/lib/browser_plugins/</userinput></screen>
-
- <para>̫AsYiC</para>
- </sect2>
-
- <sect2 xml:id="moz-flash-plugin">
-
- <title>Firefox, Mozilla &macromedia; &flash; plugin {</title>
-
- <para>&macromedia; &flash; plugin {èS &os; A
- MӥiHzLnh(wrapper)Ӱ Linux plugin {C
- o wrapper Pɤ]䴩 &adobe; &acrobat; H &realplayer; plugin
- C</para>
-
- <para>Uӥh <package>www/linuxpluginwrapper</package>C
- linuxpluginwrapper ݭnˤ@ӫܤj <package>emulators/linux_base</package>portC
- Mھ port ҫܪ@kA
- hTa]wA <filename>/etc/libmap.conf</filename>I
- ]wdɮצ
- <filename>/usr/local/share/examples/linuxpluginwrapper/</filename>
- ؿUC</para>
-
- <para>U@BAhO <package>www/linux-flashplugin7</package>C
- ˦nAAҰsAb}CJ <literal>about:plugins</literal>A
- M <keycap>Enter</keycap> N|ܥثew˪ plugin MC</para>
-
- <para>Y &flash; plugin SX{ܡAjhiO]|F symlink
- sGC Ф <systemitem class="username">root</systemitem> bAUCOG</para>
-
- <screen>&prompt.root; <userinput>ln -s /usr/local/lib/npapi/linux-flashplugin/libflashplayer.so \
- /usr/local/lib/browser_plugins/</userinput>
-&prompt.root; <userinput>ln -s /usr/local/lib/npapi/linux-flashplugin/flashplayer.xpt \
- /usr/local/lib/browser_plugins/</userinput></screen>
-
- <para>̫AsӴNiݨFC</para>
-
- <note>
- <para><application>linuxpluginwrapper</application> ub
- &i386; tά[cUBC</para>
- </note>
-
- </sect2>
-
- <sect2>
- <title>Opera</title>
- <indexterm>
- <primary><application>Opera</application></primary>
- </indexterm>
-
- <para><application>Opera</application> OӨƧ\BŦXзǪsC
- Pɤ]ƤFتlBsD\ŪBIRCBRSS/Atom feeds \ŪC
- ~ <application>Opera</application> OӻqšB
- tפS֪sC
- b ports تGu͡v FreeBSD ٦b Linux
- ҦUC</para>
-
- <para>n <application>Opera</application> FreeBSD sܡA
- ΤUOwˡG</para>
-
- <screen>&prompt.root; <userinput>pkg_add -r opera</userinput></screen>
-
- <para> FTP xèSMA
- OUONq Ports Collection wˡG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/www/opera</userinput>
-&prompt.root; <userinput>make install clean</userinput></screen>
-
- <para>nw <application>Opera</application> Linux ܡA
- бNWҤl <literal>opera</literal>
- <literal>linux-opera</literal>C
- ǮɭԡA Linux OQΪA
- Ou Linux ~{ɭԡC
- bL譱ӻA FreeBSD M Linux \WO@˪C</para>
-
- </sect2>
-
- <sect2>
- <title>Konqueror</title>
- <indexterm>
- <primary><application>Konqueror</application></primary>
- </indexterm>
-
- <para><application>Konqueror</application> O <application>KDE</application>
- ୱtΪ@AO]iHǥѦw
- <package>x11/kdebase3</package>
- b KDE ҥH~ϥΡC
- <application>Konqueror</application> uOӺsA
- LPɤ]Oɮ׺޲zMhCsC</para>
-
- <para><application>Konqueror</application> ]\h~{A
- oǥ~{iHq <package>misc/konq-plugins</package>
- wˡC</para>
-
- <para><application>Konqueror</application> ]䴩 <application>&flash;</application> ~{C
- pw˪аѾ\G<uri xlink:href="http://freebsd.kde.org/howto.php">http://freebsd.kde.org/howto.php</uri>C</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="desktop-productivity">
- <title>줽dzn</title>
-
- <para>}li줽A
- sϥΪ̳q`|hnΪ줽dznάOnW⪺rBzC
- ثe <link linkend="x11-wm">ୱ</link> O
- <application>KDE</application>wgѤF줽nզXMC
- FreeBSD ѤFһݪҦ줽nAୱҤ]ҥ~C</para>
-
- <para>o`[\FUCodznG</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="4">
- <thead>
- <row>
- <entry>nW</entry>
- <entry>һݨtθ귽</entry>
- <entry>q Ports w˪ɶ</entry>
- <entry>Dn̮ۨM</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><application>KOffice</application></entry>
- <entry></entry>
- <entry></entry>
- <entry><application>KDE</application></entry>
- </row>
-
- <row>
- <entry><application>AbiWord</application></entry>
- <entry></entry>
- <entry>u</entry>
- <entry><application>Gtk+</application> άO <application>GNOME</application></entry>
- </row>
-
- <row>
- <entry><application>The Gimp</application></entry>
- <entry></entry>
- <entry></entry>
- <entry><application>Gtk+</application></entry>
- </row>
-
- <row>
- <entry><application>OpenOffice.org</application></entry>
- <entry>h</entry>
- <entry>ܤ[</entry>
- <entry><application>&jdk; 1.4</application>, <application>Mozilla</application></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <sect2>
- <title>KOffice</title>
- <indexterm>
- <primary><application>KOffice</application></primary>
- </indexterm>
- <indexterm>
- <primary>줽nM</primary>
- <secondary><application>KOffice</application></secondary>
- </indexterm>
-
- <para>KDE sbୱҸYѤF@ӥiHb <application>KDE</application>
- ~ϥΪ줽nզXC ]tF|ؼҲաG
- <application>KWord</application> OrBzA
- <application>KSpread</application> Oպ{A
- <application>KPresenter</application> O²{A
- t~ <application>Karbon14</application> AiH͹ϧΤƪC
- <footnote><para>ĶGKarbon14 OVqøϳnAHes KontourA󦭤e٬ KillustratorC
- </para></footnote>
- </para>
-
- <para>bw˳̷s <application>KOffice</application> eA
- ХTwA̷s <application>KDE</application>C</para>
-
- <para>YnήMӦw <application>KOffice</application>A
- Ш̷ӤUOG</para>
-
- <screen>&prompt.root; <userinput>pkg_add -r koffice</userinput></screen>
-
- <para>pGM󤣦sbܡAAiHϥ ports
- collection. Ҧpnw <application>KDE3</application>
- <application>KOffice</application>AШϥΤUCOwˡG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/editors/koffice-kde3</userinput>
-&prompt.root; <userinput>make install clean</userinput></screen>
- </sect2>
-
- <sect2>
- <title>AbiWord</title>
- <indexterm>
- <primary><application>AbiWord</application></primary>
- </indexterm>
-
- <para><application>AbiWord</application>
- O@ӧKOrBznA~[MPı <application>&microsoft; Word</application>C
- AXBzBHBiBƧѿC
- ]D`ֳtA]tF\h\ӥBD`eWC</para>
-
- <para><application>AbiWord</application> iHJοX\hɮ׮榡A
- ]A@ǦMQ榡AҦpLn(Microsoft)q
- <filename>.doc</filename> 榡C</para>
-
- <para><application>AbiWord</application> ]ήMwˡA
- AiHΤUCOӦwˡG</para>
-
- <screen>&prompt.root; <userinput>pkg_add -r abiword</userinput></screen>
-
- <para>pG䤣M󪺸ܡA]iHq Ports Collection sĶwˡC
- Ports Collection ӭnOb̷sAC
- <application>AbiWord</application> iHzLUC覡sĶwˡG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/editors/abiword</userinput>
-&prompt.root; <userinput>make install clean</userinput></screen>
- </sect2>
-
- <sect2>
- <title>The GIMP</title>
- <indexterm>
- <primary><application>The GIMP</application></primary>
- </indexterm>
-
- <para>vsέקӻA<application>GIMP</application>
- OD`ovBznC
- iH@²檺øϳnάO~誺ۤBznC
- 䴩Ʋh~{ΫOZ (script-fu) C
- <application>GIMP</application> iHŪg\hɮ׮榡C
- ]䴩y
- <footnote><para>
- ĶGAzL sane-frontends xsane ӱy</para></footnote>
- MgOC</para>
-
- <para>ĶG<application>GIMP</application> bثeO 2.x ApGAQnw
- 1.x ܡAХ Ports Collection
- <package>graphics/gimp1</package>C
- t~pGAwgϥβߺD Adobe PhotoshopAӥBߺD
- <application>GIMP</application> ܡAA]iHզw
- <package>graphics/gimpshop</package>A
- ϥΤQ Adobe PhotoshopC</para>
-
- <para>AiHϥΤUOwˮMG</para>
-
- <screen>&prompt.root; <userinput>pkg_add -r gimp</userinput></screen>
-
- <para>pGA FTP xSoӮMAAiHϥ
- Ports CollectionC b Ports Collection
- <link xlink:href="http://www.FreeBSD.org/ports/graphics.html">graphics</link>
- ؿU]]tF
- <application>The Gimp Manual</application>(GIMP ϥΤU)C
- Uܽdpw˳oǵ{G</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/graphics/gimp</userinput>
-&prompt.root; <userinput>make install clean</userinput>
-&prompt.root; <userinput>cd /usr/ports/graphics/gimp-manual-pdf</userinput>
-&prompt.root; <userinput>make install clean</userinput></screen>
-
- <para>ĶGt~b Ports Collection ]@ǥ~{iHϥΡA
- ҦpiHBzƦ۾ raw ɮ׮榡 <package>gimp-ufraw</package>C
- </para>
-
- <note><para>GIMP ϥΤU] HTML 榡AAiHb
- <package>graphics/gimp-manual-html</package>
- wˡC</para>
- </note>
- </sect2>
-
- <sect2>
- <title>OpenOffice.org</title>
- <indexterm>
- <primary><application>OpenOffice.org</application></primary>
- </indexterm>
- <indexterm>
- <primary>office suite</primary>
- <secondary><application>OpenOffice.org</application></secondary>
- </indexterm>
-
- <para><application>OpenOffice.org</application> ]tFҦ㪺줽nզXG
- rBzBպB²n٦øϳnC
- FϥΪ̤D`L줽nA
- LٯJMX\hɮ׮榡C
- ]]tFPyϥΪ̤BrˬdMrC</para>
-
- <para><application>OpenOffice.org</application>
- rBzϥ XML ɮ׮榡ӼW[өʤμuʡC
- պ{䴩(macro)\ӥBϥΥ~ӪƮwC
- <application>OpenOffice.org</application> wgQíwA
- åBb &windows;, &solaris;, Linux, FreeBSD
- &macos;&nbsp;X @~tΤWC
- QDh <application>OpenOffice.org</application>
- TiHb
- <link xlink:href="http://www.openoffice.org/">OpenOffice.org </link>
- WdߡCA]iHb <link xlink:href="http://porting.openoffice.org/freebsd/">FreeBSD OpenOffice.org
- ӹζ</link>
- Wd FreeBSD W OpenOffice SwTΪUwsĶnM</para>
-
- <para>nw <application>OpenOffice.org</application>A
- ХΥHU覡ӰG</para>
-
- <screen>&prompt.root; <userinput>pkg_add -r openoffice.org</userinput></screen>
-
- <note>
- <para>Abϥ &os; -RELEASE ɭԡAW@kӦoqC
- nOLAAӬݤ@U &os; <application>OpenOffice.org</application>
- ӹζAåB &man.pkg.add.1; w˦XAMC
- boӯxiHUíwX(release)ζ}oC</para>
- </note>
-
- <para>wgw˧AAunJUON
- <application>OpenOffice.org</application>G</para>
-
- <screen>&prompt.user; <userinput>openoffice.org</userinput></screen>
-
- <para>ĶGݬݧAAɭԻݭnJp openoffice.org-2.0.1
- OALA]iH shell alias άO symbolic link
- ӳBzC</para>
-
- <note>
- <para>bĤ@ҰʪɭԡAOpenOffice |ݨ@ǰDC
- ӥBbAaؿU|۰ʫإ <filename>.openoffice.org2</filename>
- ƧC</para>
- </note>
-
- <para>pGLko <application>OpenOffice.org</application>
- MAAMiHܱq port sĶC
- LA԰ObߡGsĶL{|ݭnjqϺЪŶB۷ӮɡC</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/editors/openoffice.org-2</userinput>
-&prompt.root; <userinput>make install clean</userinput></screen>
-
- <note>
- <para>pGAQnw˥aƪAeONUG</para>
-
- <screen>&prompt.root; <userinput>make LOCALIZED_LANG=Ay install clean</userinput></screen>
-
- <para>A<replaceable>Ay</replaceable>
- Ty ISO-code
- <footnote>
- <para>ĶGOW餤ϥΪ̬ zh-TWC</para>
- </footnote>
- Ҥ䴩yNXMiHb port ؿ̪
- <filename>files/Makefile.localized</filename> ɮפC</para>
- </note>
-
- <para>@FWzBJA
- <application>OpenOffice.org</application> iΥHUOҰʡG</para>
-
- <screen>&prompt.user; <userinput>openoffice.org</userinput></screen>
-
- </sect2>
- </sect1>
-
- <sect1 xml:id="desktop-viewers">
- <title>\</title>
-
- <para>~ӦǤ榡ܱoUӷUyA
- 򥻪tΤ]\|oǮ榡һݪзǾ\C
- bo@`Aڭ̨Ӭݬݫw˳odznC</para>
-
- <para>oi[\FUCn</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="4">
- <thead>
- <row>
- <entry>nW</entry>
- <entry>һݨtθ귽</entry>
- <entry>q Ports wˮɶ</entry>
- <entry>Dn̮ۨM</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><application>&acrobat.reader;</application></entry>
- <entry></entry>
- <entry>u</entry>
- <entry>Linux GiۮeҲ</entry>
- </row>
-
- <row>
- <entry><application>gv</application></entry>
- <entry></entry>
- <entry>u</entry>
- <entry><application>Xaw3d</application></entry>
- </row>
-
- <row>
- <entry><application>Xpdf</application></entry>
- <entry></entry>
- <entry>u</entry>
- <entry><application>FreeType</application></entry>
- </row>
-
- <row>
- <entry><application>GQview</application></entry>
- <entry></entry>
- <entry>u</entry>
- <entry><application>Gtk+</application> άO <application>GNOME</application></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <sect2>
- <title>&acrobat.reader;</title>
- <indexterm>
- <primary><application>Acrobat Reader</application></primary>
- </indexterm>
- <indexterm>
- <primary>PDF</primary>
- <secondary>\</secondary>
- </indexterm>
-
- <para>\hbGɭԳO PDF ɮ׮榡A
- oӮ榡O <quote>i⦡榡(Portable Document Format)</quote>C
- 䤤@ӱ˪\nNO<application>&acrobat.reader;</application>A
- O Adobe qo浹 Linux ϥΪC
- ] FreeBSD ]iH Linux GiɮסA
- ҥH]b FreeBSD WC</para>
-
- <para>nq Ports Collection w
- <application>&acrobat.reader; 7</application>
- unG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/print/acroread7</userinput>
-&prompt.root; <userinput>make install clean</userinput></screen>
-
- <para>]vAҥHѽsĶnMC</para>
-
- </sect2>
-
- <sect2>
- <title>gv</title>
- <indexterm>
- <primary><application>gv</application></primary>
- </indexterm>
- <indexterm>
- <primary>PDF</primary>
- <secondary>viewing</secondary>
- </indexterm>
- <indexterm>
- <primary>PostScript</primary>
- <secondary>\</secondary>
- </indexterm>
-
- <para><application>gv</application>O &postscript; M PDF \C
- غc <application>ghostview</application>¦WA
- L]ϥ <application>Xaw3d</application> 禡wA
- ҥH~[ݰ_Ӥ}GC gv tק֡A²åB\h\A
- pVʡBȱijpBYҡBMϿ(antialias)C
- ӥBXGҦϥγiHqLηƹӧC</para>
-
- <para>ήMӦw <application>gv</application>AϥΤUCOG</para>
-
- <screen>&prompt.root; <userinput>pkg_add -r gv</userinput></screen>
-
- <para>pGAoMAAiHϥ Ports CollectionG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/print/gv</userinput>
-&prompt.root; <userinput>make install clean</userinput></screen>
- </sect2>
-
- <sect2>
- <title>Xpdf</title>
- <indexterm>
- <primary><application>Xpdf</application></primary>
- </indexterm>
- <indexterm>
- <primary>PDF</primary>
- <secondary>\</secondary>
- </indexterm>
-
- <para>pGAQn@Ӥp FreeBSD PDF \nA
- <application>Xpdf</application>OӻqŦӥBIJv\C
- uݭnD`֪귽ӥBQíwC
- uϥμзǪ X rӤݭn <application>&motif;</application>
- άOL X u(toolkit)C</para>
-
- <para>ήMӦw <application>Xpdf</application>AϥΤUCOG</para>
-
- <screen>&prompt.root; <userinput>pkg_add -r xpdf</userinput></screen>
-
- <para>pGM󤣦sbάOAnϥ Ports CollectionA
- ϥΥHUOG </para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/graphics/xpdf</userinput>
-&prompt.root; <userinput>make install clean</userinput></screen>
-
- <para>@FwˡAAiHҰ <application>Xpdf</application>
- åBϥηƹkhϥοC</para>
- </sect2>
-
- <sect2>
- <title>GQview</title>
- <indexterm>
- <primary><application>GQview</application></primary>
- </indexterm>
-
- <para><application>GQview</application> Ov޲znC
- AiHγӾ\ɮסBҰB~s边BYϹw\C
- ]ۿO(slideshow)Τ@ǰ򥻪ɮ׾ާ@\C
- Ai GQview ޲zvï໴PaXƪɮסC
- <application>GQview</application>
- ϥΥù[ݨä䴩ڤơC</para>
-
- <para>pGAQnw <application>GQview</application>MA
- ШϥΤUCOG</para>
-
- <screen>&prompt.root; <userinput>pkg_add -r gqview</userinput></screen>
-
- <para>pGMLkoAάOAwϥ Ports CollectionAunG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/graphics/gqview</userinput>
-&prompt.root; <userinput>make install clean</userinput></screen>
- </sect2>
- </sect1>
-
- <sect1 xml:id="desktop-finance">
- <title>]</title>
-
- <para>pGzѧAQnbA FreeBSD ୱҤW޲zAӤH]ȡA
- o̦@ǥ\jjBϥ²檺ε{iѦwˡC
- oǰ]Ⱥ޲zn餧ǬOۮey檺
- <application>Quicken</application> <application>Excel</application> C</para>
-
- <para>o`[\FUodznG</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="4">
- <thead>
- <row>
- <entry>nW</entry>
- <entry>һݨtθ귽</entry>
- <entry>q Ports w˪ɶ</entry>
- <entry>Dn̮ۨM</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><application>GnuCash</application></entry>
- <entry></entry>
- <entry></entry>
- <entry><application>GNOME</application></entry>
- </row>
-
- <row>
- <entry><application>Gnumeric</application></entry>
- <entry></entry>
- <entry></entry>
- <entry><application>GNOME</application></entry>
- </row>
-
- <row>
- <entry><application>Abacus</application></entry>
- <entry></entry>
- <entry>u</entry>
- <entry><application>Tcl/Tk</application></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <sect2>
- <title>GnuCash</title>
- <indexterm>
- <primary><application>GnuCash</application></primary>
- </indexterm>
-
- <para><application>GnuCash</application> O
- <application>GNOME</application> ζVOG@A
- <application>GNOME</application> DnOѲ׺ݨϥΪ(end-users)
- ˤӱjjୱε{C
- ϥ <application>GnuCash</application>A
- AiHAJΪOBAȦbBάOAѲҨ鵥C
- SʬOı\ऴD`M~C</para>
-
- <para><application>GnuCash</application> ѤF@ӴzUB
- bhŨtΡB\hֳtΦ۰ʧ(auto-completion)ҦC
- ]}@ܼƭӸԲӪC
- <application>GnuCash</application> ]JΦX
- <application>Quicken</application> QIF ɮסC
- ]Bzjڪγqγf榡C</para>
-
- <para>nw <application>GnuCash</application> AtΤA
- unUCBJG</para>
-
- <screen>&prompt.root; <userinput>pkg_add -r gnucash</userinput></screen>
-
- <para>pGoMAAiHϥ Ports Collection:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/finance/gnucash</userinput>
-&prompt.root; <userinput>make install clean</userinput></screen>
- </sect2>
-
- <sect2>
- <title>Gnumeric</title>
- <indexterm>
- <primary><application>Gnumeric</application></primary>
- </indexterm>
- <indexterm>
- <primary>պ</primary>
- <secondary><application>Gnumeric</application></secondary>
- </indexterm>
-
- <para><application>Gnumeric</application> O
- <application>GNOME</application> ୱҤպC
- SIOھxs榡(cell format)Φ۰ʸɻtΡA
- ӤK۰ʦauqXvϥΪ̪JC
- ]J\hɮ׮榡AO
- <application>Excel</application>, <application>Lotus 1-2-3</application>, άO <application>Quattro Pro</application>C
-
- <application>Gnumeric</application> 䴩ϥ
- <package>math/guppi</package> øϳnøϡC
- \hتƦӥB\@몺xs榡AO:
- ƦrBfBBɶΨL榡C</para>
-
- <para>nήMw <application>Gnumeric</application>AunHUOG</para>
-
- <screen>&prompt.root; <userinput>pkg_add -r gnumeric</userinput></screen>
-
- <para>pGM󤣦sbAAiHUBJӨϥ Ports Collection sĶwˡG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/math/gnumeric</userinput>
-&prompt.root; <userinput>make install clean</userinput></screen>
- </sect2>
-
- <sect2>
- <title>Abacus</title>
- <indexterm>
- <primary><application>Abacus</application></primary>
- </indexterm>
- <indexterm>
- <primary>պ</primary>
- <secondary><application>Abacus</application></secondary>
- </indexterm>
-
- <para><application>Abacus</application> OӤpSϥ²檺պC
- ]tF\hتơAbpέpǡB]ȡBƾǤܹΡC
- ]iHXJ <application>Excel</application> ɮ׮榡C
- t~ <application>Abacus</application>]X &postscript; 榡C</para>
-
- <para>qMw <application>Abacus</application> unG</para>
-
- <screen>&prompt.root; <userinput>pkg_add -r abacus</userinput></screen>
-
- <para>pGM󤣯oܡAAiHϥ Ports CollectionA
- åΥHUOG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/deskutils/abacus</userinput>
-&prompt.root; <userinput>make install clean</userinput></screen>
- </sect2>
- </sect1>
-
- <sect1 xml:id="desktop-summary">
- <title>Kn</title>
-
- <para>M FreeBSD O]įíwʦӦb ISP ܬyA
- L]iH@ୱ(desktop)ӨϥΡA
- ä]ϥΦbAWCثeƤdε{
- <link xlink:href="http://www.FreeBSD.org/where.html">M(packages)</link>
-
- <link xlink:href="http://www.FreeBSD.org/ports/index.html">ports</link>,
- iѨϥΡAAiHھڧAݨDyX@ӧୱҡC</para>
-
- <para>UOo[\Ҧୱγn餧ֳt^UG</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="3">
- <thead>
- <row>
- <entry>nW</entry>
- <entry>MW</entry>
- <entry>Ports W</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><application>Mozilla</application></entry>
- <entry><literal>mozilla</literal></entry>
- <entry><package>www/mozilla</package></entry>
- </row>
-
- <row>
- <entry><application>Opera</application></entry>
- <entry><literal>opera</literal></entry>
- <entry><package>www/opera</package></entry>
- </row>
-
- <row>
- <entry><application>Firefox</application></entry>
- <entry><literal>firefox</literal></entry>
- <entry><package>www/firefox</package></entry>
- </row>
-
- <row>
- <entry><application>KOffice</application></entry>
- <entry><literal>koffice-kde3</literal></entry>
- <entry><package>editors/koffice-kde3</package></entry>
- </row>
-
- <row>
- <entry><application>AbiWord</application></entry>
- <entry><literal>abiword</literal></entry>
- <entry><package>editors/abiword</package></entry>
- </row>
-
- <row>
- <entry><application>The GIMP</application></entry>
- <entry><literal>gimp</literal></entry>
- <entry><package>graphics/gimp</package></entry>
- </row>
-
- <row>
- <entry><application>OpenOffice.org</application></entry>
- <entry><literal>openoffice</literal></entry>
- <entry><package>editors/openoffice-1.1</package></entry>
- </row>
-
- <row>
- <entry><application>&acrobat.reader;</application></entry>
- <entry><literal>acroread</literal></entry>
- <entry><package>print/acroread7</package></entry>
- </row>
-
- <row>
- <entry><application>gv</application></entry>
- <entry><literal>gv</literal></entry>
- <entry><package>print/gv</package></entry>
- </row>
-
- <row>
- <entry><application>Xpdf</application></entry>
- <entry><literal>xpdf</literal></entry>
- <entry><package>graphics/xpdf</package></entry>
- </row>
-
- <row>
- <entry><application>GQview</application></entry>
- <entry><literal>gqview</literal></entry>
- <entry><package>graphics/gqview</package></entry>
- </row>
-
- <row>
- <entry><application>GnuCash</application></entry>
- <entry><literal>gnucash</literal></entry>
- <entry><package>finance/gnucash</package></entry>
- </row>
-
- <row>
- <entry><application>Gnumeric</application></entry>
- <entry><literal>gnumeric</literal></entry>
- <entry><package>math/gnumeric</package></entry>
- </row>
-
- <row>
- <entry><application>Abacus</application></entry>
- <entry><literal>abacus</literal></entry>
- <entry><package>deskutils/abacus</package></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect1>
-</chapter>
diff --git a/zh_TW.Big5/books/handbook/geom/chapter.xml b/zh_TW.Big5/books/handbook/geom/chapter.xml
deleted file mode 100644
index 0b031ea666..0000000000
--- a/zh_TW.Big5/books/handbook/geom/chapter.xml
+++ /dev/null
@@ -1,356 +0,0 @@
-<?xml version="1.0" encoding="big5"?>
-<!--
- The FreeBSD Documentation Project
- $FreeBSD$
- Original revision: 1.21
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="GEOM">
- <info><title>GEOM: Modular Disk Transformation Framework</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Written by </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <sect1 xml:id="GEOM-synopsis">
- <title>z</title>
-
- <indexterm>
- <primary>GEOM</primary>
- </indexterm>
- <indexterm>
- <primary>GEOM Disk Framework</primary>
- <see>GEOM</see>
- </indexterm>
-
- <para>[\pb &os; GEOM [cUϥκϺСA
- ]tΨӳ]wXر`Ϊ <acronym role="Redundant Array of Inexpensive DisksAϺа}Ct">RAID</acronym>
- uC|`JQ GEOM pBzh I/OAoTаѦ
- &man.geom.4; ά SEE ALSO C]D <acronym>RAID</acronym>
- ]wnAbo̥u|Qץثe GEOM 䴩 <acronym>RAID</acronym> ҦC
- </para>
-
- <para>ŪoAzNFѡJ</para>
- <itemizedlist>
- <listitem>
- <para>zL GEOM i䴩ǼҦ <acronym>RAID</acronym>C</para>
- </listitem>
-
- <listitem>
- <para>pϥΰ򥻤uӰtmBާ@B@PҦ
- <acronym>RAID</acronym>C</para>
- </listitem>
-
- <listitem>
- <para>pzL GEOM ӧg(mirror)Bs(stripe)B[K(encrypt)
- BݳsϺеC</para>
- </listitem>
-
- <listitem>
- <para> GEOM [cUϺеoͰDApưC</para>
- </listitem>
-
- </itemizedlist>
-
- <para>b}l\ŪoeAzݭnJ</para>
-
-
- <itemizedlist>
- <listitem>
- <para>F &os; pݫݺϺ(<xref linkend="disks"/>) C</para>
- </listitem>
-
- <listitem>
- <para>Dp]wBw˷s &os; ֤
- (<xref linkend="kernelconfig"/>) C</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 xml:id="GEOM-intro">
- <title>GEOM ɽ</title>
-
- <para>GEOM zL privoder(Y <filename>/dev/</filename>
- US˸mɮ) Ӿޱ classes(p Master Boot RecordsB
- <acronym>BSD</acronym> labels ) CGEOM 䴩hسn
- <acronym>RAID</acronym> tmAzL GEOM sɡA
- @~tΩMε{|NѨ GEOM sbC</para>
- </sect1>
-
- <sect1 xml:id="GEOM-striping">
- <info><title>RAID0 - s(striping)</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Written by </contrib></author>
- <author><personname><firstname>Murray</firstname><surname>Stokely</surname></personname></author>
- </authorgroup>
- </info>
-
-
-
- <indexterm>
- <primary>GEOM</primary>
- </indexterm>
- <indexterm>
- <primary>s(Striping)</primary>
- </indexterm>
-
- <para>s(striping) iΨӳshӺϺЦ@jŶC
- ܦhɭԵw鱱iHoơAL GEOM ]ѤFn骩
- <acronym>RAID</acronym>0A]NOs(striping)C</para>
-
- <para>b <acronym>RAID</acronym>0 ̡AƷ|QܦhA
- AgJϺСCҦpngJ 256k ƨ@ϺСAb
- |ӺϺЪ <acronym>RAID</acronym>0 iPɼgJ 64k |ӺϺи̡A
- ]ijT I/O įCpGϥΧhϺбA
- I/O įiAɡC</para>
-
- <para>ѩŪμgɷ|PB\hϺжi I/O BzA]
- <acronym>RAID</acronym>0 CӺϺХjp@ˡC</para>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="geom/striping" align="center"/>
- </imageobject>
-
- <textobject>
- <phrase>Disk Striping Illustration</phrase>
- </textobject>
- </mediaobject>
-
- <procedure>
- <title>Υ榡ƪ ATA ϺШӫإߤs(striping)</title>
-
- <step><para>J <filename>geom_stripe</filename>
- kernel moduleG</para>
-
- <screen>&prompt.root; <userinput>kldload geom_stripe.ko</userinput></screen>
- </step>
-
- <step><para>TwI(mount point)sbC
- pGQΤs(striping)Ŷڥؿ(root partitionAY <filename>/</filename> )A
- hέӼȮɪIAp
- <filename>/mnt</filename>G</para>
-
- <screen>&prompt.root; <userinput>mkdir /mnt</userinput></screen>
- </step>
-
-
-<step><para>T{nΨӤs(striping)˸mW١A۫إ߷ss(striping)C
- ҦpUO|s(striping)ӥϥΡB|ΰϪ <acronym>ATA</acronym>
- Ϻ(<filename>/dev/ad2</filename> M
- <filename>/dev/ad3</filename>) G</para>
- <screen>&prompt.root; <userinput>
- gstripe label -v st0 /dev/ad2 /dev/ad3</userinput></screen>
-
- <screen>&prompt.root; <userinput>gstripe label -v st0 /dev/ad2 /dev/ad3</userinput></screen>
-
-<!--
- <para>A message should be returned explaining that meta data has
- been stored on the devices.
-XXX: What message? Put it inside the screen output above.
--->
- </step>
-
- <step><para>ΤUOӫإߤΰϪ(partition table)G</para>
-
- <screen>&prompt.root; <userinput>bsdlabel -wB /dev/stripe/st0</userinput></screen>
-
- </step>
-
- <step><para>Feإߪ <filename>st0</filename> AoӨBJٷ|b
- <filename>/dev/stripe</filename> UsWӸ˸mG
- <filename>st0a</filename> M <filename>st0c</filename>C
- Q <command>newfs</command> OiHb
- <filename>st0a</filename> إɮרtΡG</para>
-
- <screen>&prompt.root; <userinput>newfs -U /dev/stripe/st0a</userinput></screen>
-
- <para>ùW|@ƦrmӹLAXN|CɪŶwإߡA
- iΨӱϥΤFC</para>
- </step>
- </procedure>
-
- <para>UOiΨӤʱs(striping)ŶG</para>
-
- <screen>&prompt.root; <userinput>mount /dev/stripe/st0a /mnt</userinput></screen>
-
- <para>pGnb}ɦ۰ʱAb <filename>/etc/fstab</filename>
- [JoŶTG</para>
-
- <screen>&prompt.root; <userinput>echo "/dev/stripe/st0a /mnt ufs rw 2 2" \</userinput>
- <userinput>&gt;&gt; /etc/fstab</userinput></screen>
-
- <para> <filename>geom</filename> kernel module btΪlƮɦ۰ʸJA
- ]b <filename>/boot/lodaer.conf</filename> [J@G</para>
-
- <screen>&prompt.root; <userinput>echo 'geom_stripe_load="YES"' &gt;&gt; /boot/loader.conf</userinput></screen>
-
- </sect1>
-
- <sect1 xml:id="GEOM-mirror">
- <title>RAID1 - g(Mirroring)</title>
-
- <indexterm>
- <primary>GEOM</primary>
- </indexterm>
- <indexterm>
- <primary>Ϻg(Disk Mirroring)</primary>
- </indexterm>
-
- <para>\h~έӤHΤg(mirroring) Ӥ_tζiƥC
- g²ӻNOb B ϺФWФ@ A ϺЪơA
- Ϊ C+D ϺЭ A+B ϺЪơC׳]wpA
- ̭nOҦϺЩΤΰ(partition) WƳ|QƻsA
- ib_AȪpU_BƥơAxsƧwC</para>
-
- <para>}leAХTwtΤWӮeqۦPϺСA
- ᭱dҰ]oϺЬO direct access(&man.da.4;)
- <acronym>SCSI</acronym> ϺСC</para>
-
- <para>ڭ̰] &os; w˦bĤ@ӺϺФWABuӤΰ(partition)C
- 䤤@ӬO洫ΰ(swap partitionAjp <acronym>RAM</acronym>
- ⭿)AӳѤUΩڥؿ(Y <filename>/</filename>A
- root file system)CMnbPI(mount point) Xhΰ
- (partition) ]iHAL׷|jTɡA]ʾާ@ &man.bsdlabel.8;
- M &man.fdisk.8; uC</para>
-
- <para>}õtΧlƧA <systemitem class="username">root</systemitem>
- nJC</para>
-
- <para>إ <filename>/dev/mirror/gm</filename> ˸måH
- <filename>/dev/da1</filename> sG</para>
-
- <screen>&prompt.root; <userinput>gmirror label -vnb round-robin gm0 /dev/da1</userinput></screen>
-
- <para>oɨtӷ|^G</para>
- <screen>
-Metadata value stored on /dev/da1.
-Done.</screen>
-
- <para>l GEOMAoʧ@|۰ʸJ
- <filename>/boot/kernel/geom_mirror.ko</filename> kernel moduleG</para>
-
- <screen>&prompt.root; <userinput>gmirror load</userinput></screen>
-
- <note>
- <para>oʧ@ӷ|b <filename>/dev/mirror</filename>
- Uإ <filename>gm0</filename> ˸mI(device node)C</para>
- </note>
-
- <para>boӷsت <filename>gm0</filename> ˸mWwm@몺
- <command>fdisk</command> label M}ϰϡG</para>
-
- <screen>&prompt.root; <userinput>fdisk -vBI /dev/mirror/gm0</userinput></screen>
-
- <para>ۦwm <command>bsdlabel</command> TG</para>
-
- <screen>&prompt.root; <userinput>bsdlabel -wB /dev/mirror/gm0s1</userinput></screen>
-
- <note>
- <para>pGsbh slice Mΰ(partition)A
- OoקWOѼơABt@ӺϺФW slice Mΰ(partition)
- jpۦPC</para>
- </note>
-
- <para> &man.newfs.8; ub <filename>gm0s1a</filename>
- ˸mIإ߹w]ɮרtΡG</para>
-
- <screen>&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1a</userinput></screen>
-
- <para>tη|LX\hTM@jƦrAoO`C
- T{O_{~A۴NiHNoӸ˸m
- <filename>/mnt</filename> I(mount mount)G</para>
-
- <screen>&prompt.root; <userinput>mount /dev/mirror/gm0s1a /mnt</userinput></screen>
-
- <para>۱N쥻}ϺЪƷhsɮרt
- (<filename>/mnt</filename>)CdҬO
- &man.dump.8; M &man.restore.8; AL &man.dd.1; ]iHC</para>
-
- <screen>&prompt.root; <userinput>dump -L -0 -f- / |(cd /mnt &amp;&amp; restore -r -v -f-)</userinput></screen>
-
- <para>WzOɡAunNɮרtαbTmAӴNন\C
- </para>
-
- <para>۽s <filename>/mnt/etc/fstab</filename>
- ɱN swap file 沾εѰ_ӡC
- <footnote>
- <para>Ъ`NAN <filename>fstab</filename> swap file
- Ѱ_ӡAq`ܡGzoΧOkӭ swapCԱаѦ
- <xref linkend="adding-swap-space"/>C</para>
- </footnote>аѦҤUdҡAîھڷsϺЭק䥦ɮרtθTG</para>
-
- <programlisting># Device Mountpoint FStype Options Dump Pass#
-#/dev/da0s2b none swap sw 0 0
-/dev/mirror/gm0s1a / ufs rw 1 1</programlisting>
-
- <para>bثeڥؿηsڥؿإ <filename>boot.conf</filename> ɮסA
- oɮץiHyUzt <acronym>BIOS</acronym> }G</para>
-
- <screen>&prompt.root; <userinput>echo "1:da(1,a)/boot/loader" &gt; /boot.config</userinput></screen>
-
- <screen>&prompt.root; <userinput>echo "1:da(1,a)/boot/loader" &gt; /mnt/boot.config</userinput></screen>
-
- <note>
- <para>bӮڥؿWsWɮ׬OFw_A
- pG]Yǭ]sڥؿLk}Aܤ٥iέ쥻ڥؿC</para>
- </note>
-
- <para>ۦb <filename>/boot/loader.conf</filename> sWG</para>
-
- <screen>&prompt.root; <userinput>echo 'geom_mirror_load="YES"' &gt;&gt; /mnt/boot/loader.conf</userinput></screen>
-
- <para>o| &man.loader.8; b}ɸJ
- <filename>geom_mirror.ko</filename> kernel moduleC</para>
-
- <para>}G</para>
-
- <screen>&prompt.root; <userinput>shutdown -r now</userinput></screen>
-
- <para>pG@QAtӷ|q <filename>gm0s1a</filename> ˸m}A
- UӥX{ <command>login</command> ܵeCpGXFA
- аѾ\U Troubleshooting @`C {biHN
- <filename>da0</filename> ϺХ[J <filename>gm0</filename>
- ˸mG</para>
-
- <screen>&prompt.root; <userinput>gmirror configure -a gm0</userinput>
-&prompt.root; <userinput>gmirror insert gm0 /dev/da0</userinput></screen>
-
- <para>䤤 <option>-a</option> XЧiD &man.gmirror.8;
- ϥΡu۰ʦPB(automatic synchronization)vAҦp۰ʦPBgJϺЪʧ@C
- manual Fp󭫫ءBNϺеAL manual ̪dҬO
- <filename>data</filename> ӤO <filename>gm0</filename>C</para>
-
- <sect2>
- <title>Troubleshooting</title>
-
- <sect3>
- <title>tεLk}</title>
-
- <para>pG}oˡG</para>
-
- <programlisting>ffs_mountroot: can't find rootvp
-Root mount failed: 6
-mountroot&gt;</programlisting>
-
- <para>ХξOW Power s reset sӭ}Aæb} (6)A
- oˤlAtδN|iJ &man.loader.8;
- ͼҦCoɭԡAзӤUOӤʸJһݪ kernel module
- A]NO <filename>geom_mirror.ko</filename>G</para>
-
- <screen>OK? <userinput>load geom_mirror.ko</userinput>
-OK? <userinput>boot</userinput></screen>
-
- <para>pGo˦\FܡAܦ]Yǭ]Lk۰ʸJ kernel moduleC
- бNG</para>
-
- <programlisting>options GEOM_MIRROR</programlisting>
-
- <para>[J֤߳]w(kernel configuration file)Asæwˮ֤ߡC
- oӯѨMoӰDC</para>
- </sect3>
- </sect2>
- </sect1>
-</chapter>
diff --git a/zh_TW.Big5/books/handbook/introduction/chapter.xml b/zh_TW.Big5/books/handbook/introduction/chapter.xml
deleted file mode 100644
index e083aaaa2c..0000000000
--- a/zh_TW.Big5/books/handbook/introduction/chapter.xml
+++ /dev/null
@@ -1,842 +0,0 @@
-<?xml version="1.0" encoding="big5"?>
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
- Original revision: 1.125
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="introduction">
- <info><title>²</title>
- <authorgroup>
- <author><personname><firstname>Jim</firstname><surname>Mock</surname></personname><contrib>Restructured, reorganized, and parts
- rewritten by </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <sect1 xml:id="introduction-synopsis">
- <title>z</title>
-
- <para>D`P±z &os; PIHU`[\ &os;
- pU譱GpvBؼСB}oҦC</para>
-
- <para>ŪoAzNFѡJ</para>
-
- <itemizedlist>
- <listitem>
- <para>&os; PL OS YF</para>
- </listitem>
- <listitem>
- <para>&os; pvyF</para>
- </listitem>
- <listitem>
- <para>&os; pؼСF</para>
- </listitem>
- <listitem>
- <para>&os; open-source }oҦ¦F</para>
- </listitem>
- <listitem>
- <para>MoA٦ <quote>&os;</quote> oWrѨӡC</para>
- </listitem>
- </itemizedlist>
-
- </sect1>
-
- <sect1 xml:id="nutshell">
- <title>Welcome to &os;!</title>
- <indexterm><primary>4.4BSD-Lite</primary></indexterm>
-
- <para>&os; O@ӱq 4.4BSD-Lite lͥXӯbH Intel (x86 and &itanium;),
- AMD64, <trademark>Alpha</trademark>, Sun &ultrasparc;
- ¦qW檺@~tΡCPɡAӨLxu@]bi椤C
- 󥻭pvСAЬ <link linkend="history">&os; vy</link>A
- &os; ̷sСAЬ <link linkend="relnotes">current release
- </link>CY &os; pҰ^m(O{Xw]ơB)A
- Ь <link xlink:href="&url.articles.contributing;/index.html">p &os;
- ^m</link>C</para>
-
- <sect2 xml:id="os-overview">
- <title>&os; వH</title>
-
- <para>&os; ѵA\hi\Coǥ\]AG</para>
-
- <itemizedlist>
- <listitem>
- <indexterm><primary>hu(preemptive multitasking)</primary></indexterm>
-
- <para>ʺAuvվ㪺yhuzTOAYϦbtέtܭpUA
- {業åBε{PϥΪ̤a@ɸ귽C</para>
- </listitem>
-
- <listitem>
- <indexterm><primary>䴩hH@</primary></indexterm>
-
- <para>yhH@(multi-user)zN۳\hHiHPɨϥΤ@ &os; tΨӳBzU۪ưȡC
- tΪwP(pLκϱa)]iHҦϥΪ̾AaɡC
- ]iHwUOϥΪ̩Τ@sϥΪ̪tθ귽AH]A
- HO@tΤPQLרϥΡC</para>
- </listitem>
-
- <listitem>
- <indexterm><primary>TCP/IP \</primary></indexterm>
-
- <para>nΪyTCP/IP \zi䴩\h~ɼзǡApG
- SCTPBDHCPBNFSBNISBPPPBSLIPBIPSecBIPv6 䴩A]NO &os;
- iHeaL@~tγzL@PB@AάO@~Aγ~
- AҦpѻɮצ@(NFS)ιqll(email)AȡA
- άOz~sWں(Internet)ô WWWBFTPB
- (routing)BΨ(firewallBsecurity) ƪAȡC</para>
- </listitem>
-
- <listitem>
- <indexterm><primary>OO@</primary></indexterm>
-
- <para>yOO@(Memory protection)zTO{(άOϥΪ)|ۤzZA
- Yϥ{`B@A|vTL{C</para>
- </listitem>
-
- <listitem>
- <para>&os; Oy32줸(32-bit)z@~t
- (b AlphaB&itanium;B AMD64 &ultrasparc; WhOy64줸(64-bit)z)
- X q@}lKOo˳]pC</para>
- </listitem>
-
- <listitem>
- <indexterm>
- <primary>X Window System</primary>
- <seealso>XFree86</seealso>
- </indexterm>
-
- <para>~ɼзǪyX Window tΡz(X11R7)iHb`Ky VGA ܥd/ùA
- ѤFϧΤƪϥΪ̤(GUI)AåB]AF㪺l{XC</para>
- </listitem>
-
- <listitem>
- <indexterm>
- <primary>binary compatibility</primary>
- <secondary>Linux</secondary>
- </indexterm>
- <indexterm>
- <primary>binary compatibility</primary>
- <secondary>SCO</secondary>
- </indexterm>
- <indexterm>
- <primary>binary compatibility</primary>
- <secondary>SVR4</secondary>
- </indexterm>
- <indexterm>
- <primary>binary compatibility</primary>
- <secondary>BSD/OS</secondary>
- </indexterm>
- <indexterm>
- <primary>binary compatibility</primary>
- <secondary>NetBSD</secondary>
- </indexterm>
- <para>yz\hL@~t(pG LinuxBSCOBSVR4BBSDI M NetBSD)
- iɡC</para>
- </listitem>
-
- <listitem>
- <para>ƥHUpߧYiH檺ε{AodzizL &os;
- yportszΡypackageszn޲zӨoC
- AݭnOߨWBjMһݭnnC</para>
- </listitem>
-
- <listitem>
- <para>~AW|iD`eӪƥHUpε{C
- &os; l{XP\h`ӷ~ &unix; tγۮeA
- ҥHj{uݭnܤ֪ק(ήڥέק)
- ANiHsĶC</para>
- </listitem>
-
- <listitem>
- <indexterm><primary>virtual memory</primary></indexterm>
-
- <para>ݭnɤ~m(demand paged) <emphasis>virtual memory</emphasis>
- <quote>merged VM/buffer cache</quote> ]pA
- oIbtΤΥhjqO骺{ɡAMIJv{C</para>
- </listitem>
-
- <listitem>
- <indexterm>
- <primary>Symmetric Multi-Processing (SMP)</primary>
- </indexterm>
-
- <para>䴩 CPU ٦huBz(SMP)GiH䴩h CPU
- qtΡC</para>
- </listitem>
-
- <listitem>
- <indexterm>
- <primary>compilers</primary>
- <secondary>C</secondary>
- </indexterm>
- <indexterm>
- <primary>compilers</primary>
- <secondary>C++</secondary>
- </indexterm>
- <indexterm>
- <primary>compilers</primary>
- <secondary>FORTRAN</secondary>
- </indexterm>
- <para>ۮe <emphasis>C</emphasis>B<emphasis>C++</emphasis> H
- <emphasis>Fortran</emphasis> ҩML}ouC
- HΨL\hiѶio{y]b ports M packagesC
- </para>
- </listitem>
-
- <listitem>
- <indexterm><primary>source code</primary></indexterm>
-
- <para>Өtγyl{XzA
- oA@~Ҿ̧֦xסC
- JM֦}񪺨tΡAWQSwʳnҬAt\GOH
- </para>
- </listitem>
-
- <listitem>
- <para>sxB״IyuWzC</para>
- </listitem>
-
- <listitem>
- <para><emphasis>MoA٤pI</emphasis></para>
- </listitem>
- </itemizedlist>
-
- <indexterm><primary>4.4BSD-Lite</primary></indexterm>
- <indexterm>
- <primary>Computer Systems Research Group (CSRG)</primary>
- </indexterm>
- <indexterm><primary>U.C. Berkeley</primary></indexterm>
- <para>&os; tΤDO[{jǬfJܤժqtάss
- (Computer Systems Research Group ]NO CSRG) ҵo檺
- 4.4BSD-LiteAHΰ BSD tζ}ou}DzΡC
- F CSRG ҴѪ~誺GA
- FѥiBzutu@A
- &os; p]JFƤdpɥHWӳվA
- Ho̦nIJvHΨtΪíwסC
- \hӷ~WHVOaƱണѮįíwɡA
- &os; wgƳo˪S -- <emphasis>NO{b</emphasis>I
- </para>
-
- <para>&os; BνdLA꧹bAQOWC
- qn骺}out۰ʤơAάOHyìPWѽu쨤תݱF
- oǥ\YiHΰӥΪ Unix ~ӹFA
- 򷥦iϥ &os; ]I
- &os; ]qӦ۩yUsߤΤjǩҶ}oƤdӰ~誺n
- Aodzq`uݭnOܤ֪OΩήڥNOKOC
- M]ӷ~nAӥBX{ƥجOPѼWC</para>
-
- <para>ѩCӤHiHo &os; l{XA
- oӨtΥiHQվӯ쥻LkQ\έpA
- ӹqUtӨo@~tγq`Sko˦aQקC
- HUѤ@ǤH̨ϥ &os; ҤlG</para>
-
- <itemizedlist>
- <listitem>
- <para><emphasis>AȡG</emphasis> &os;
- رjl\ϥA(pU)zQxG</para>
-
- <itemizedlist>
- <listitem>
- <indexterm><primary>FTP servers</primary></indexterm>
-
- <para>ɮצA(FTP servers)</para>
- </listitem>
-
- <listitem>
- <indexterm><primary>web servers</primary></indexterm>
-
- <para>yTA(WWW servers)
- (зǪΧw [SSL] su)</para>
- </listitem>
-
- <listitem>
- <para>IPv4 IPv6 routing</para>
- </listitem>
-
- <listitem>
- <indexterm><primary>firewall</primary></indexterm>
-
- <indexterm><primary>IP masquerading</primary></indexterm>
-
- <para>H NAT (<quote>IP masquerading</quote>)
- gatewaysC</para>
- </listitem>
-
- <listitem>
- <indexterm><primary>electronic mail</primary></indexterm>
-
- <para>qllA(Electronic Mail servers)</para>
- </listitem>
-
- <listitem>
- <indexterm><primary>USENET</primary></indexterm>
-
- <para>sDA(USENET News)
- άOqlGit(BBS)</para>
- </listitem>
-
- <listitem>
- <para>٦h...</para>
- </listitem>
- </itemizedlist>
-
- <para>F &os;AziHeaΫKy 386 PCA
- AvBɯűz| CPU Xeon
- èϥκϺа}C(RAID)Ӻz~BΤWݨDC</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Ш|G</emphasis>
- YzOu쪺ǥ͡AA]Sϥ &os;
- Ǩh@~tΡBpcBκkFC
- t~pGAQQιqӳBz@<emphasis>L</emphasis>
- u@A٦@Ǧp CADB
- ƾǹBHιϧγBzn鵥iHKOaoϥΡC</para>
- </listitem>
-
- <listitem>
- <para><emphasis>sG</emphasis>F㪺l{XA&os;
- Os@~tΤιqǪҡC
- 㦳KOBۥѨoSʪ &os;
- ]ϱo@ӤmaX@pAߪvΨtζ}ʪDA
- ӯۦbyC</para>
- </listitem>
-
- <listitem>
- <indexterm><primary>router</primary></indexterm>
-
- <indexterm><primary>DNS Server</primary></indexterm>
-
- <para><emphasis>G</emphasis>
- ApGݭn routerBName Server (DNS) Φw(Firewall)A
- &os; iHNASΨ쪺 386 486 PC
- ܨΪAAƦܨ㦳Loʥ](packet-filter) \C
- </para>
- </listitem>
-
- <listitem>
- <indexterm>
- <primary>X Window System</primary>
- <secondary>XFree86</secondary>
- </indexterm>
- <indexterm>
- <primary>X Window System</primary>
- <secondary>Accelerated-X</secondary>
- </indexterm>
- <para><emphasis>X u@G</emphasis> &os; O X
- ׺ݾ}AAiHϥΧKO X11 ServerC
- &os; iHR X {׺ݾA
- ]iH楻a X {Ӵju@tC
- pG@xAܡA&os; ƦܥiHgѺ}
- (ݵwСA]NO<quote>diskless</quote>)
- AܦKyB޲zu@C</para>
- </listitem>
-
- <listitem>
- <indexterm><primary>GNU Compiler Collection</primary></indexterm>
-
- <para><emphasis>n}oG</emphasis>
- 򥻦w˪ &os; N]tF㪺{}ouAp GNU C/C++
- sĶΰC</para>
- </listitem>
- </itemizedlist>
-
- <para>AiHgѿN CD-ROMBDVD άOq FTP W^ &os; --
- ]AߧYi檺tΥHΨtΪ{XC
- ԱаѾ\ <xref linkend="mirrors"/> o &os;C</para>
- </sect2>
-
- <sect2>
- <title>֦b &os;H</title>
-
- <indexterm>
- <primary>users</primary>
- <secondary>large sites running &os;</secondary>
- </indexterm>
- <para>\h Internet WjOH &os; @@~tΡAҦpG</para>
-
- <itemizedlist>
- <listitem>
- <indexterm><primary>Yahoo!</primary></indexterm>
-
- <para><link xlink:href="http://www.yahoo.com/">Yahoo!</link></para>
- </listitem>
-
- <listitem>
- <indexterm><primary>Apache</primary></indexterm>
-
- <para><link xlink:href="http://www.apache.org/">Apache</link></para>
- </listitem>
-
- <listitem>
- <indexterm><primary>Blue Mountain Arts</primary></indexterm>
-
- <para><link xlink:href="http://www.bluemountain.com/">Blue Mountain
- Arts</link></para>
- </listitem>
-
- <listitem>
- <indexterm><primary>Pair Networks</primary></indexterm>
-
- <para><link xlink:href="http://www.pair.com/">Pair
- Networks</link></para>
- </listitem>
-
- <listitem>
- <indexterm><primary>Sony Japan</primary></indexterm>
-
- <para><link xlink:href="http://www.sony.co.jp/">Sony
- Japan</link></para>
- </listitem>
-
- <listitem>
- <indexterm><primary>Netcraft</primary></indexterm>
-
- <para><link xlink:href="http://www.netcraft.com/">Netcraft</link>
- </para>
- </listitem>
-
- <listitem>
- <indexterm><primary>Weathernews</primary></indexterm>
-
- <para><link xlink:href="http://www.wni.com/">Weathernews</link>
- </para></listitem>
-
- <listitem>
- <indexterm><primary>Supervalu</primary></indexterm>
-
- <para><link xlink:href="http://www.supervalu.com/">Supervalu</link></para>
- </listitem>
-
- <listitem>
- <indexterm><primary>TELEHOUSE America</primary></indexterm>
-
- <para><link xlink:href="http://www.telehouse.com/">TELEHOUSE
- America</link></para>
- </listitem>
-
- <listitem>
- <indexterm><primary>Sophos Anti-Virus</primary></indexterm>
-
- <para><link xlink:href="http://www.sophos.com/">Sophos
- Anti-Virus</link></para>
- </listitem>
-
- <listitem>
- <indexterm><primary>JMA Wired</primary></indexterm>
-
- <para><link xlink:href="http://www.jmawired.com/">JMA Wired</link></para>
- </listitem>
- </itemizedlist>
-
- <para>Hγ\hLC</para>
- </sect2>
-
- </sect1>
-
- <sect1 xml:id="history">
- <title> &os; p</title>
-
- <para>UO &os; pIA]tvy²BpؼСAHζ}oҦC</para>
-
- <sect2 xml:id="intro-history">
- <info role="firstperson"><title>&os; vy²</title>
- <authorgroup>
- <author><personname><firstname>Jordan</firstname><surname>Hubbard</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <indexterm><primary>386BSD Patchkit</primary></indexterm>
- <indexterm><primary>Hubbard, Jordan</primary></indexterm>
- <indexterm><primary>Williams, Nate</primary></indexterm>
- <indexterm><primary>Grimes, Rod</primary></indexterm>
- <indexterm>
- <primary>&os; Project</primary>
- <secondary>history</secondary>
- </indexterm>
- <para>&os; peQkOb 1993 ~ҧΦA
- O۩@@ yDx 386BSD patchkit(ץu)zpTӨպ@H
- Nate WilliamsARod Grimes M(Jordan Hubbard)C</para>
-
- <indexterm><primary>386BSD</primary></indexterm>
- <para>ڭ̳̪쪺ؼЬOX@ 386BSD Xץ snapshot AHKץɤ@
- patchkit eѨMDCǤHiٰOopW٥s
- <quote>386BSD 0.5</quote> <quote>386BSD Interim</quote> NOoӭ]C</para>
-
- <indexterm><primary>Jolitz, Bill</primary></indexterm>
- <para>386BSD O Bill Jolitz @~tΡAbɴNw@~QסC
- ӭץu (patchkit) 麥eoOHΪAAڭ̵LijaPNn@@ǨƤFA
- èMwѤ@{ɩʪ <quote>bƪ(cleanup)</quote> U BillC
- MӡAѩ Bill Jolitz MMwӭp{iABSTXӪA
- ҥHӭpKM{_MC</para>
-
- <indexterm><primary>Greenman, David</primary></indexterm>
- <indexterm><primary>Walnut Creek CD-ROM</primary></indexterm>
- <para>[ڭ̫KMwbYϨS Bill UAӭpM~UhA
- ̫ڭ̱ĥ David Greenman ɪOMwWrA]NOy&os;zC
- b߰ݤFɪ@ǨϥΪ̷NAN}lMwF̪쪺ؼСA
- ӭp}lI@NnuɡA@NܱoMFC
- ڸ Walnut Creek CD-ROM Q׵o CD-ROM
- oˤlKWHNiHΤ²檺覡o &os;C
- Walnut Creek CD-ROM u٦H CD-ROM ӵo &os;
- QkAPɴѤF@xHΧֳtںWeC
- pGO Walnut Creek CD-ROM XGOūeHoӭ}l٬OqqLDpA
- ܥi &os; |pֳt줵o˪WҡC</para>
-
- <indexterm><primary>4.3BSD-Lite</primary></indexterm>
- <indexterm><primary>Net/2</primary></indexterm>
- <indexterm><primary>U.C. Berkeley</primary></indexterm>
- <indexterm><primary>386BSD</primary></indexterm>
- <indexterm><primary>Free Software Foundation</primary></indexterm>
- <para>Ĥ@iH CD-ROM (κ)o檺 &os;&nbsp;1.0 Ob 1993 ~QGC
- ӪO U.C. Berkeley Hϱa覡o檺
- 4.3BSD-Lite (<quote>Net/2</quote>)Hγ\hӦ۩ 386BSD
- Mۥѳn|nCĤ@oӨٺ⦨\A
- ڭ̤S۩ 1994 ~ 5 oF۷\ &os; 1.1C</para>
-
- <indexterm><primary>Novell</primary></indexterm>
- <indexterm><primary>U.C. Berkeley</primary></indexterm>
- <indexterm><primary>Net/2</primary></indexterm>
- <indexterm><primary>AT&amp;T</primary></indexterm>
- <para>MӦᤣ[At@ӷN~ɦb Novell M U.C. Berkeley
- Berkeley Net/2 ϱakߦa쪺D^TwΦC
- U.C. Berkeley j Net/2 {XOyIӪzBOݩ Novell ]
- -- ƹWOɤ[eq AT&amp;T oC
- Berkeley o쪺O Novell 4.4BSD-Lite y֡zA̫ 4.4BSD-Lite
- שo椧AKAOI欰C
- өҦ{ Net/2 ϥΪ̳QjPij󴫷sAo]AF &os;C
- OAڭ̳QnD 1994 ~ 6 멳eG Net/2
- ~CbeUApQ\bHe@̫@oA]NO
- &os;&nbsp;1.1.5.1C</para>
-
- <para>&os; K}lFo{pysolz}du@ -- qsB㪺
- 4.4BSD-Lite sXC
- o <quote>Lite</quote> O㪺A]
- Berkeley CSRG wgRFjqbإߤ@ӥiH}檺tΩһݭn{X
- (YzkߤWnD)ABӪb Intel xӬOD`㪺C
- 1994 ~ 11 륻p~FoಾA
- PɦbӦ~ 12 멳H CD-ROM HκΦoF &os;&nbsp;2.0C
- MӥbɦI^PWAOINq\C
- H 1995 ~ 6 SoFewˡAn &os;&nbsp;2.0.5C</para>
-
- <para>ڭ̦b 1996 ~ 8 oF &os;&nbsp;2.1.5Ab ISP Mӷ~餤D`yC
- HA 2.1-STABLE 䪺t@ӪBӥ͡ANOb 1997 ~ 2 o &os; 2.1.7.1
- APɤ]O 2.1-STABLE 䪺̫᪩CᦹKiJ@AA
- ȶȴѦwʪ[jMLY~׸ɪ@(RELENG_2_1_0)C</para>
-
- <para>1996 ~ 11 &os;&nbsp;2.2 q}oDb (<quote>-CURRENT</quote>)
- XӦ RELENG_2_2 CĤ@ӧ㪩(2.2.1) 1997 ~ 4 oC
- 2.2 䪺򪩥b 97 ~Lo檺A̫᪩Ob 1998 ~ 11 o檺 2.2.8 C
- Ĥ@ӥ 3.0 b 1998 ~ 10 oAYŧi 2.2 䪺C</para>
-
- <para>1999/01/20 AפAoͤF 4.0-CURRENT H 3.X-STABLE ӤC
- 3.X-STABLE 譱A3.1 o 1999/02/15A3.2 o1999/05/15A3.3 o 1999/09/16A
- 3.4 o 1999/12/20A3.5 o 2000/06/24
- AUӴXѫoGF@Ǫ׸( Kerberos wʤ譱ץ)ANɯŦ 3.5.1
- AoO 3.X ̫@ӵo檩C</para>
-
- <para>b 2000/03/13 SF@ӷsA ]NO 4.X-STABLE
- CoӤ䤧oGF\ho檩J 4.0-RELEASE b 2000 ~ 3 oA
- ӳ̫᪺ 4.11-RELEASE hb 2005 ~ 1 oC4-STABLE 䪺䴩| 2007/01/31
- ADnJIbw譱|}BΤΨLYD׸ɡC</para>
-
- <para>ݤw[ 5.0-RELEASE b 2003/01/19 oCoON}oT~qp@AP
- ]}l[jhCPU(SMPng)䴩Bkernel thread(KSE) 䴩Bɮרtαĥ UFS2 HΤ䴩 snapshot
- A ä䴩 &ultrasparc; M
- <literal>ia64</literal> xB䴩ŪޡB32 bit PCMCIA C 2003 ~ 6 oF 5.1C
- -CURRENT oӵoiDb䪺̫ 5.X Ob 2004 ~ 2 륿o檺 5.2.1-RELEASEAb 5.X
- tCiJ -STABLE (RELENG_5)A-CURRENT Nಾ 6.X tCC</para>
-
- <para>RELENG_5 2004 ~ 8 륿}]AO 5.3-RELEASE
- AO 5-STABLE 䪺Ĥ@ӵo檩C ̫᪺ 5.5-RELEASE Ob
- 2006 ~ 5 o檺Ab RELENG_5 䤣A~C</para>
-
- <para>RELENG_6 2005 ~ 7 }]A 6.X 䪺Ĥ@
- release(6.0-RELEASE) Ob 2005 ~ 11 XC
- ̷s &rel2.current;-RELEASE Ob &rel2.current.date;
- oC MoARELENG_6 ٱN򪺵o檩C</para>
-
- <para>RELENG_7 2007 ~ 10 }]A̷s &rel.current;-RELEASE
- Ob &rel.current.date; oC RELENG_7
- ٱN򪺵o檩C</para>
-
- <para>ثeA}ope~b 8.X-CURRENT (trunk) 䤤iA
- 8.X CD-ROM (MA]iHκ) snapshot iHb <link xlink:href="ftp://current.FreeBSD.org/pub/FreeBSD/snapshots/">FreeBSD snapshot server</link>
- oC</para>
- </sect2>
-
- <sect2 xml:id="goals">
- <info><title>&os; pؼ</title>
- <authorgroup>
- <author><personname><firstname>Jordan</firstname><surname>Hubbard</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <indexterm>
- <primary>&os; Project</primary>
- <secondary>goals</secondary>
- </indexterm>
- <para>&os; pؼЦb󴣨ѥi@Nγ~nӤa󭭨C
- ڭ̤\hH{X (Hέpe) D`jJA
- ]AMN@ǸWvAڭ̨èSManDooUC
- ڭ̻{ڭ̪nyϩR(mission)zOHѵ{XA
- ޥL̥γoǵ{XA ]o˵{XNQsxaϥΡAqӵoȡC
- ڻ{oOۥѳn̰򥻪APɤ]Oڭ̩ҭҾɪ@ӥؼСC</para>
-
- <indexterm>
- <primary>GNU General Public License (GPL)</primary>
- </indexterm>
- <indexterm>
- <primary>GNU Lesser General Public License (LGPL)</primary>
- </indexterm>
- <indexterm><primary>BSD Copyright</primary></indexterm>
- <para>ڭ̵{X𤤡AYzOH GNU GPL Ϊ LGPL
- oGǵ{Xaֳ\[A٦nuOjʪnD}{XӤOOC
- ѩϥ GPL nbӷ~γ~W|W[YzʡA]ApGiHܪܡA
- ڭ̷|wϥέ۹eP BSD vӵoGnC</para>
- </sect2>
-
- <sect2 xml:id="development">
- <info><title>&os; }oҦ</title>
- <authorgroup>
- <author><personname><firstname>Satoshi</firstname><surname>Asami</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <indexterm>
- <primary>&os; Project</primary>
- <secondary>development model</secondary>
- </indexterm>
- <para>&os; }oO@ӫD`}BuʪL{ANq <link xlink:href="&url.articles.contributors;/article.html">^m̦W</link>
- Ҭݨ쪺AOѥ@ɦdWU^m̵oi_ӪC
- &os; }o¦[c\ƥHʭp}o̳zLںPu@C
- ڭ̤]g``ۨǹڭ̪peP쪺s}o̩MsзNA
- Ǧi@BѻPpHuݭnb &a.hackers; sôڭ̡C
- &a.announce; 墨ǧƱFѧڭ̶iתH]O۷ΪC</para>
-
- <para>L׬OW}o̩Ϊ̫ʳζX@AhA &os; pM}oL{|OJ</para>
-
- <variablelist>
- <varlistentry>
- <term>The SVN and CVS repository<anchor xml:id="development-cvs-repository"/></term>
-
- <listitem>
- <indexterm>
- <primary>CVS</primary>
- <secondary>repository</secondary>
- </indexterm>
- <indexterm>
- <primary>Concurrent Versions System</primary>
- <see>CVS</see>
- </indexterm>
- <indexterm>
- <primary>SVN</primary>
- <secondary>repository</secondary>
- </indexterm>
- <indexterm>
- <primary>Subversion</primary>
- <see>SVN</see>
- </indexterm>
- <para>LhƦ~ &os; source tree @OH
- <link xlink:href="http://ximbiot.com/cvs/wiki/">CVS</link>
- (Concurrent Versions System) Ӻ@A
- OӦۥѳnAiΨӰA@˧ &os; NFC
- MӦb 2008 ~ 6 _A &os; tΧ <link xlink:href="http://subversion.tigris.org">SVN</link>(Subversion)C
- oʧ@ڭ̻{OnA] <application>CVS</application>
- Ѫ޳NAɭP source tree Hξvƶq_ֳtXiC
- ]ADn repository ثeOĥ <application>SVN</application>
- A client ݪu㹳O <application>CVSup</application>B
- <application>csup</application> OH¦
- <application>CVS</application> [c¦AiH~򥿱`B@
- &mdash; D] <application>SVN</application> repository
- backport ^ <application>CVS</application> ~iH~ client
- ݬۮeC ثeANu source tree O
- <application>SVN</application> 覡C ӤBB
- Ports o repository ϥ <application>CVS</application>
- 覡C
- ӥDn <link xlink:href="http://www.FreeBSD.org/cgi/cvsweb.cgi">CVS
- repository</link> O[{ Santa Clara YxWA
- MA mirror @ɤWL\hWC
- <application>SVN</application> tree ӥDG
- <link linkend="current">-CURRENT</link> H <link linkend="stable">-STABLE</link> AodziPƻsۤvWC
- ԱаѾ\ <link linkend="synching">sA source tree</link>
- @`C</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>The committers list<anchor xml:id="development-committers"/></term>
-
- <listitem>
- <indexterm><primary>committers</primary></indexterm>
-
- <para>ҿת <firstterm>committers</firstterm>
- O CVS tree <emphasis>write</emphasis> vA
- è̤PvAӦPviק &os; sourceC
- (<quote>committer</quote> o &man.cvs.1;
- <command>commit</command> OAӫOOΨӧsקﴣ浹
- CVS repositoryC)
- Ӵקﵹ committer ˬd̦n覡ANO &man.send-pr.1;
- OC Y PR y{tΤWö{HܡA
- ]iHαHH覡AHH &a.committers; YiC</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>The &os; core team<anchor xml:id="development-core"/></term>
-
- <listitem>
- <indexterm><primary>core team</primary></indexterm>
-
- <para>pG &os; ݦO@aqܡA
- <firstterm>&os; core team</firstterm>
- N۷yƷ|(board of directors)zC core team
- Dn¾dbTOp}n[cAHµۥTVoiC
- ~AܽмBtdn}o̥[J committers CA
- HbYzhɱoHɥRsC
- ثe core team Ob 2008 ~ 7 committers
- ԿHXӪAC~||@|C</para>
-
- <para> core team ٭tdYǯSwdA
- ]NOL̥ɶqTO@ǤltΪíwBįC
- &os; }o̭̥HΦU۳ddAаѾ\ <link xlink:href="&url.articles.contributors;/article.html">^m̦W
- </link>C</para>
-
- <note>
- <para>core team j[J &os; }oOӤuʽӤwA
- åqpo~SAҥHӧ
- <quote>commitment</quote> ~Ѭ
- <quote>guaranteed support</quote> ~C
- eyƷ|ziOAγ\ڭӻG
- L̬O@s@쥻uͬBӤHL즨NA
- ӿܧJ &os; }o妳̤~I</para>
- </note>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>L^m</term>
-
- <listitem>
- <indexterm><primary>contributors</primary></indexterm>
-
- <para>̫@IAoID̤nA
- ̤j}o̹ζNO򬰧ڭ̴Ѧ^XHο~ץϥΪ̦ۤvC
- P &os; D֤߶}o̤ʪDn覡AKOzLq\ &a.hackers;
- Ӷi淾qAo譱iѦҡAаѾ\ <xref linkend="eresources"/> HAѦUP &os;
- l׾(mailing lists)C</para>
-
- <para><citetitle><link xlink:href="&url.articles.contributors;/article.html">&os; ^m̦W
- </link></citetitle> ۷B_A
- un^mN|QCJ䤤A
- nnߧYҼ{^m &os; @Ǧ^XOH</para>
-
- <para>MӡAѭlXëDoӭp^mߤ@覡F
- ٻݭnjaJu@CBAаѾ\ <link xlink:href="&url.base;/index.html">&os; x</link>C</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>²檺Aڭ̪}oҦNO@ըSP߶C
- oض}oҦOH <emphasis>ϥΪ̤K</emphasis> DA
- PL̯ܮea@P@nAӤ|b^m̱ưb~I
- ڭ̪ؼЬOѧtjq@Pʪ
- <link linkend="ports">γn(ports/packages)</link>
- AHKϥΪ̻PwˡBϥΪ@~t XX
- ӳo}oҦ۷ŦX@ؼСC</para>
-
- <para>ڭ̹󨺨ǷQn[J &os; }o̪ݬOG
- ЫOpPeH@˪JAHTO~򦨥\I</para>
- </sect2>
-
- <sect2 xml:id="relnotes">
- <title>̷s &os; o檩</title>
-
- <indexterm><primary>NetBSD</primary></indexterm>
- <indexterm><primary>OpenBSD</primary></indexterm>
- <indexterm><primary>386BSD</primary></indexterm>
- <indexterm><primary>Free Software Foundation</primary></indexterm>
- <indexterm><primary>U.C. Berkeley</primary></indexterm>
- <indexterm>
- <primary>Computer Systems Research Group (CSRG)</primary>
- </indexterm>
- <para>&os; OKOϥΥBal{XH 4.4BSD-Lite
- ¦tΡAiHb
- Intel &i386;, &i486;, &pentium;,
- &pentium;&nbsp;Pro,
- &celeron;,
- &pentium;&nbsp;II,
- &pentium;&nbsp;III,
- &pentium;&nbsp;4 (Ϊ̬ۮe),
- &xeon;, DEC <trademark>Alpha</trademark>
- M Sun &ultrasparc; ¦qW檺@~tΡC
- DnH[{jǤںJQ CSRG spժn鬰¦Aå[JF
- NetBSDBOpenBSDB386BSD HΦۥѳn|@ǪFC</para>
-
- <para>۱q 1994 ~Aڭ̵oGF &os;&nbsp;2.0 AtΪIJvB
- \BíwʳFOH`تɡC
- <!-- XXX is the rest of this paragraph still true ? -->
- ̤jܴNOڭ̱NOPɮרtΪ cache Xb@_C
- ouϱotΪ{ܱon, åBϱo &os;
- tγ̤֪OݨD֨ 5&nbsp;MBC
- 䥦i]A㪺 NIS cilent and server \䴩A
- 䴩 transaction TCPBPPP suBX DHCP 䴩B
- SCSI ltΪiBISDN 䴩AATMBFDDI HΤAӺ (EthernetB]A
- 100&nbsp;Mbit M Gigabit) 䴩AɤF̷s Adaptec
- dXʵ{ﵽAHμƥHdp bug ץC</para>
-
- <para>F̰򥻪tγnA&os; ٴѤFsw諸Mn޲zG
- Ports CollectionC
- 쥻ѥILɡAwWL &os.numports; portsAodå[\q http(WWW)
- ACB{yBs边HαzQ쪺XGҦFC
- 㪺 Ports Collection ݭn &ports.size; wЪŶAF
- port 򥻬[cɮץ~AuxsP port
- n骺lXynܧzC
- p@ӡAڭ̥iHeso portsA]jq֦pª 1.0
- Ports Collection wЪŶݨDC
- nwˤ@ port ܡAuݭniJ port ؿAJ
- <command>make install</command>AoˤltδN|A˦nFC
- znsĶCӵ{l{A
- iq FTP CD-ROM oAҥHzuݷdzƨwЪŶӽsĶAn
- port nC
- XGC@ port wƥsĶn <quote>package</quote>HKwˡA
- pGQqsĶ port HAunέ²O
- (<command>pkg_add</command>)NiHwˡC
- packages M ports Ӹ`AiHѾ\ <xref linkend="ports"/>C</para>
-
- <para>&os; D <filename>/usr/share/doc</filename>
- ؿU\hΪA
- UzwˡBϥ &os;C
- ]iHϥΤU}AHs½\Ww˪UJ</para>
-
- <variablelist>
- <varlistentry>
- <term>&os; ϥΤU</term>
-
- <listitem>
- <para><link xlink:href="file://localhost/usr/share/doc/handbook/index.html"><filename>/usr/share/doc/handbook/index.html</filename></link></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&os; `ݵ</term>
-
- <listitem>
- <para><link xlink:href="file://localhost/usr/share/doc/faq/index.html"><filename>/usr/share/doc/faq/index.html</filename></link></para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>~AibUC}̷s (]OsWc)G<uri xlink:href="http://www.FreeBSD.org/">http://www.FreeBSD.org/</uri>C</para>
- </sect2>
- </sect1>
-</chapter>
diff --git a/zh_TW.Big5/books/handbook/jails/chapter.xml b/zh_TW.Big5/books/handbook/jails/chapter.xml
deleted file mode 100644
index 0ae4ff1526..0000000000
--- a/zh_TW.Big5/books/handbook/jails/chapter.xml
+++ /dev/null
@@ -1,793 +0,0 @@
-<?xml version="1.0" encoding="big5"?>
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
-
- Original revision: 1.15
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="jails">
- <info><title>Jails</title>
- <authorgroup>
- <author><personname><firstname>Matteo</firstname><surname>Riondato</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <indexterm><primary>jails</primary></indexterm>
-
- <sect1 xml:id="jails-synopsis">
- <title>z</title>
-
- <para>N &os; jail AHΦpBΤkC
- Jails ɤ]`Q{O <emphasis>chroot </emphasis>
- [jN~@Atκ޲z̦ӨOD`nΪuA
- ~A@ǰ򥻥ΪkiϥΪ̦ӨA]O۷ΡC</para>
-
- <para>ŪoAzNFѡJ</para>
-
- <itemizedlist>
- <listitem>
- <para>jail OAHΥb &os; WiHo@ΡC</para>
- </listitem>
-
- <listitem>
- <para>psĶBҰʡB jailC</para>
- </listitem>
-
- <listitem>
- <para>jail ޲z򥻷G]Aq jail ΥDC</para>
- </listitem>
- </itemizedlist>
-
- <para>LΪ jail 귽٦G</para>
-
- <itemizedlist>
- <listitem>
- <para>&man.jail.8; uWC oO <command>jail</command>
- 㻡 &mdash; &os; ҰʡBB &os; jail
- ޲zuC</para>
- </listitem>
-
- <listitem>
- <para>l׾(mailing lists)«Hɮ](archives)C
- &a.mailman.lists; ҴѪ &a.questions; ΨLl׾ª«H
- Aw]A@ jail θơC q`AjM«HΪ̦b
- &a.questions.name; WoݡA]۷ġC</para>
- </listitem>
- </itemizedlist>
-
- </sect1>
-
- <sect1 xml:id="jails-terms">
- <title>Jail Ny</title>
-
- <para>Uez &os; tΪ jail A
- HΥ̻P &os; Lۤ@YA
- HUCXNϥΪNyG</para>
-
- <variablelist>
- <varlistentry>
- <term>&man.chroot.2; (O)</term>
- <listitem>
- <para>&os; system call @A@ά process
- Ψl process үBΪڥؿ (<filename>/</filename>
- dir)C</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&man.chroot.2; ()</term>
- <listitem>
- <para>b <quote>chroot</quote> B檺 process ҡC
- o]AFɮרtΪiBiΪ UIDBGIDBdΨL IPC
- 귽C</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&man.jail.8; (command)</term>
- <listitem>
- <para>\{b jail ҤU檺tκ޲zuC</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>host (tΡBprocessBb)</term>
- <listitem>
- <para>jail ҪtΡC host tΥiHϥΥiΪw귽A
- ï౱ jail Ҥ~ processC host tλP jail ̤jtOb
- Gb host tΤ superuser processes äb jail
- Ҩ˳BB@ﭭC</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>hosted (tΡBprocessBb)</term>
- <listitem>
- <para>iθ귽 &os; jail  processBbBΨL]Ƹ귽
- C</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect1>
-
- <sect1 xml:id="jails-intro">
- <title>IG</title>
-
- <para>ѩtκ޲zOxScu@A]H̶}o\hnΤuA
- H޲zu@[²滴PC oǧﵽq`OtίH²檺覡wˡB
- ]wB@AӦǧﵽؼЫhOtΦwT]wAϨuo쥻γ~A
- ӫDJwIC</para>
-
- <para>&os; tΩҴѪ@إΩjƦwuNO <emphasis>jail</emphasis>
- C Jail O &a.phk; &os;&nbsp;4.X }lɤJAӦb &os;&nbsp;5.X
- \hj}ӶjAjjFltΡAثeb}oB
- HiΩʡBįPwC</para>
-
- <sect2 xml:id="jails-what">
- <title> Jail</title>
-
- <para>BSD-like @~tΦ 4.2BSD _Y &man.chroot.2;C
- &man.chroot.8; iΨܧ@ process ڥؿmA
- Ǧإ߻PtΤ۹jwҡC B chrooted Ҫ
- process |Lks@~ɮשθ귽C ѩ󦹦]A
- GYϧ̧}YӳB chroot Ҫ serviceA]}ӨtΡC
- &man.chroot.8; 󨺨ǤӻݭnuʩνSŪ²ΦӨ۷nΡC
- t~AbޤJ chroot L{Ago{\hik chroot Ҫ覡A
- ޳oǰDbs &os; kernel wץAܩa &man.chroot.2;
- DΩjƦwzQѨMסC ]A
- եo@sltΨӸѨMoǰDC</para>
-
- <para>oNOn}o <emphasis>jail</emphasis> ̥Dn]C</para>
-
- <para>Jail bUؤ覡iXAiDz &man.chroot.2; ҪC
- bDzΪ &man.chroot.2; ҤAu process ɮרtΪsA
- Өtθ귽L(ҦptαbB椤 processBlt)hO
- chroot process P host tΪL process @_@ɡC
- Jail HyơzXioҫAuɮרtΪsA٩
- tαbB&os; kernel ltΤΨLtθ귽ơC
- o jail ҦsӷLձAаѾ\ <xref linkend="jails-tuning"/>C</para>
-
- <para>jail 㦳UC|SG</para>
-
- <itemizedlist>
- <listitem>
- <para>ؿl(directory subtree) &mdash; ]NOiJ jail _IC
- @iJ jail Aprocess NAQ\ subtree H~C
- &amp;Dzη|vT &man.chroot.2; ̪]pwDAN|AvT
- &os; jailC</para>
- </listitem>
-
- <listitem>
- <para>DW(hostname) &mdash; Ω jail hostnameC ѩ
- jail DnΩAȡA]YU jail ҦW١A
- tκ޲zu@²Ʒ|۷ġC</para>
- </listitem>
-
- <listitem>
- <para><acronym>IP</acronym> address &mdash; OΨӵ jail ϥΡA
- åBb jail ͩRgLkܧC q` jail IP address
- O{d alias addressAoäOC</para>
- </listitem>
-
- <listitem>
- <para>O(Command) &mdash; dzƦb jail 檺|C oOO۹
- jail ҪڥؿA jail ҪPAӦҮtC</para>
- </listitem>
- </itemizedlist>
-
- <para>FWz~Ajail ]i֦ۤvb <systemitem class="username">root</systemitem>
- bC MAo̪<systemitem class="username">root</systemitem> vO| jail ҤC
- åBq host tΪרӬݡAjail <systemitem class="username">root</systemitem>
- ëDLҤ઺bC ~ jail <systemitem class="username">root</systemitem>
- ä &man.jail.8; ҥH~@ʾާ@C
- <systemitem class="username">root</systemitem> OPANy᪺
- <xref linkend="jails-tuning"/> ФC</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="jails-build">
- <title>إߩM Jail</title>
-
- <para>Ǩtκ޲z̧ jail UCءG<quote>complete()</quote>
- jail &mdash; q`]A㪺 &os; tΡFt@ثh
- <quote>service(A)</quote> jail &mdash;
- Mu]Y@inίSv{ serviceC ouO@طWϤ
- AävTpإ jail L{C ܩpإ jail b &man.jail.8;
- ԲӪG</para>
-
- <screen>&prompt.root; <userinput>setenv D /here/is/the/jail</userinput>
-&prompt.root; <userinput>mkdir -p $D</userinput> <co xml:id="jailpath"/>
-&prompt.root; <userinput>cd /usr/src</userinput>
-&prompt.root; <userinput>make world DESTDIR=$D</userinput> <co xml:id="jailworld"/>
-&prompt.root; <userinput>cd etc/</userinput> <footnote><para>&os; 6.0(t)
-NݳoBJC</para></footnote>
-&prompt.root; <userinput>make distribution DESTDIR=$D</userinput> <co xml:id="jaildistrib"/>
-&prompt.root; <userinput>mount -t devfs $D/dev</userinput> <co xml:id="jaildevfs"/></screen>
-
- <calloutlist>
- <callout arearefs="jailpath">
- <para>NO jail ӮaC Ӹ|Ob host tΤ jail
- mC ߺDOb <filename>/usr/jail/jailname</filename>A
- <replaceable>jailname</replaceable> д jail hostname
- HKOC q` <filename>/usr</filename>
- |ŶӦs jail ɮרtΡA <quote>complete</quote> jail
- ӨAq`]AF &os; w]w base system ҦɮתɡC</para>
- </callout>
-
- <callout arearefs="jailworld">
- <para>ӫON|b jail ؿw˩һݪ binaryBlibraryBmanual
- C oǬOHDzΪ &os; 覡 &mdash; YsĶҦɮסA
- ۦA˨تaC</para>
- </callout>
-
- <callout arearefs="jaildistrib">
- <para>ϥ <buildtarget>distribution</buildtarget> o
- <application>make</application> target Ӹ˩Ҧ|Ψ쪺]wɡC
- ²ӻӰʧ@NO <filename>/usr/src/etc/</filename> ƻs jail Ҥ
- <filename>/etc</filename>A]NO
- <filename>$D/etc/</filename>C</para>
- </callout>
-
- <callout arearefs="jaildevfs">
- <para> jail ҦӨA&man.devfs.8; ɮרtΪëDA
- t@譱AXGҦε{|ݭnsܤ֤@ӳ](device)A
- oDnMӵ{تөwC jail үs]ƫD`nA
- ]T]wA|̹ jail iXC ܩpzL
- &man.devfs.8; ӱWhAiHѾ\ &man.devfs.8;
- &man.devfs.conf.5; C</para>
- </callout>
- </calloutlist>
-
- <para>˦n jail ANiH &man.jail.8; uC &man.jail.8;
- ݭn|ѼơAoǰѼƦb <xref linkend="jails-what"/> йLC
- Fo|ӰѼƤ~A٥iHwLѼơAOHSwbb jail
- processC <option><replaceable>command</replaceable></option>
- ѼƨM jail өwF <emphasis>virtual system(t)
- </emphasis>AN <filename>/etc/rc</filename>A
- ]|u &os; tαҰʩһݪާ@C <emphasis>service(A)
- </emphasis> jail ӨA檺OMNb jail 檺 service
- ε{өwC</para>
-
- <para>Jail q`nbtζ}ɱҰʡA] &os; <filename>rc</filename>
- Ѥ@ǫKQ覡²ƳoǤu@G</para>
-
- <procedure>
- <step>
- <para>}ɭnҰʪ jail Mn[ &man.rc.conf.5; ]wɡG</para>
-
- <programlisting>jail_enable="YES" # Y] NO hܤ۰ʱҰ jail
-jail_list="<replaceable>www</replaceable>" # Y\h jail hХHťչj}Ӽg</programlisting>
- </step>
-
- <step>
- <para>C@b <varname>jail_list</varname> ҦCX jailA
- ]nb &man.rc.conf.5; X۹]wG</para>
-
- <programlisting>jail_<replaceable>www</replaceable>_rootdir="/usr/jail/www" # jail ڥؿ
-jail_<replaceable>www</replaceable>_hostname="<replaceable>www</replaceable>.example.org" # jail hostname
-jail_<replaceable>www</replaceable>_ip="192.168.0.10" # jail IP address
-jail_<replaceable>www</replaceable>_devfs_enable="YES" # b jail mount devfs
-jail_<replaceable>www</replaceable>_devfs_ruleset="<replaceable>www_ruleset</replaceable>" # jail ҥΪ devfs Wh</programlisting>
-
- <para>b &man.rc.conf.5; ҹw] jail Ұʳ]w|]
- <filename>/etc/rc</filename> jail scriptA]NO|] jail
- O㪺tΡC Yn service jail Ahnt~wҰʫOA
- kO]w
- <varname>jail_<replaceable>jailname</replaceable>_exec_start</varname>
- ]wC</para>
-
- <note>
- <para>YDҦiΪﶵMAаѾ\ &man.rc.conf.5; C</para>
- </note>
- </step>
- </procedure>
-
- <para>]iHzLʰ <filename>/etc/rc.d/jail</filename> script
- ӱҰʩΰ <filename>rc.conf</filename> ҳ]w jailG</para>
-
- <screen>&prompt.root; <userinput>/etc/rc.d/jail start www</userinput>
-&prompt.root; <userinput>/etc/rc.d/jail stop www</userinput></screen>
-
- <para>ثe|Lkӫܰba &man.jail.8;C
- D]`ΨtΪOAثe|b jail ϥΡC ثe jail
- ̨Ϊ覡AOb jail UCOAΪ jail ~zL &man.jexec.8;
- UCOG</para>
-
- <screen>&prompt.root; <userinput>sh /etc/rc.shutdown</userinput></screen>
-
- <para>ԱаѾ\ &man.jail.8; C</para>
- </sect1>
-
- <sect1 xml:id="jails-tuning">
- <title>LջP޲z</title>
-
- <para>iH jail ]w\hPﶵA &os; host tλP jail
- HUؤP覡զXftAHŦXhΥγ~C `nЪOG</para>
-
- <itemizedlist>
- <listitem>
- <para>ΥHL jail 欰PwﶵC</para>
- </listitem>
-
- <listitem>
- <para>izL &os; Ports Collection w˪ jail ޲z{A
- ftoǵ{iHF@ jail-based ѨMסC</para>
- </listitem>
- </itemizedlist>
-
- <sect2 xml:id="jails-tuning-utilities">
- <title>&os; ҴѪ jail tuning u</title>
-
- <para> jail ]wLաA򥻤WOzL]w &man.sysctl.8; ܼƨӧC
- tδѤ@ sysctl SlAﶵbӤl𤺡A]NO
- &os; kernel <varname>security.jail.*</varname> lC
- UhOP jail Dn sysctl ]wιw]ȡAoǦWٳ۷ezѡA
- pi@BTAаѾ\ &man.jail.8; P &man.sysctl.8; G</para>
-
- <itemizedlist>
- <listitem>
- <para><varname>security.jail.set_hostname_allowed:
- 1</varname></para>
- </listitem>
-
- <listitem>
- <para><varname>security.jail.socket_unixiproute_only:
- 1</varname></para>
- </listitem>
-
- <listitem>
- <para><varname>security.jail.sysvipc_allowed:
- 0</varname></para>
- </listitem>
-
- <listitem>
- <para><varname>security.jail.enforce_statfs:
- 2</varname></para>
- </listitem>
-
- <listitem>
- <para><varname>security.jail.allow_raw_sockets:
- 0</varname></para>
- </listitem>
-
- <listitem>
- <para><varname>security.jail.chflags_allowed:
- 0</varname></para>
- </listitem>
-
- <listitem>
- <para><varname>security.jail.jailed: 0</varname></para>
- </listitem>
- </itemizedlist>
-
- <para>tκ޲z̥ib <emphasis>host system</emphasis>
- zLקodz]wȨӼW[B Jail <systemitem class="username">root</systemitem>
- bw]C Ъ`NGǭOAb &man.jail.8; Ҫ
- <systemitem class="username">root</systemitem> ౾ΨɮרtΡC ~礣JB
- &man.devfs.8; WhB]wWhAΰLݭק kernel
- ƪ޲z@~AҦp]w kernel <varname>securelevel</varname>
- ȡC</para>
-
- <para>&os; base system @ǰ򥻤uAiΨӬd\ثeϥΤ jailB
- ñW(attach) jail H޲zOC &man.jls.8; &man.jexec.8;
- ݩ &os; base system @AiΨӰ@²u@G</para>
-
- <itemizedlist>
- <listitem>
- <para>CXbϥΪ jail Ψ۹ jail identifier
- (<acronym>JID</acronym>)B<acronym>IP</acronym> addressB
- hostnameB|C</para>
- </listitem>
-
- <listitem>
- <para>W(Attach)bB@ jailAæb䤤OHi޲zu@C
- oIb <systemitem class="username">root</systemitem> Qb jail ɬ۷ΡA
- &man.jexec.8; ]iΦb jail Ұ shell HKi޲zA
- pG</para>
-
- <screen>&prompt.root; <userinput>jexec 1 tcsh</userinput></screen>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2 xml:id="jails-tuning-admintools">
- <title>&os; Ports Collection ҴѪ޲zu</title>
-
- <para>bѦh third-party ҴѪ jail ޲zuA<package>sysutils/jailutils</package> O̧]̦nΪC
- ӮMOѤ@tC &man.jail.8; ޲zpuҲզC ԱаѾ\
- C</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="jails-application">
- <title>Jail </title>
-
- <sect2 xml:id="jails-service-jails">
- <info><title>Service Jails</title>
- <authorgroup>
- <author><personname><firstname>Daniel</firstname><surname>Gerzo</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <para>`DnH &a.simon; g <uri xlink:href="http://simon.nitro.dk/service-jails.html">http://simon.nitro.dk/service-jails.html</uri> DA[W
- Ken Tom <email>locals@gmail.com</email> ҧs峹C
- `Цp]w &os; H &man.jail.8; \ӼW[B~whC
- o]ztζ]O RELENG_6_0 ΧsA
- åB糧ezѡC</para>
-
- <sect3 xml:id="jails-service-jails-design">
- <title>Design</title>
-
- <para>Jail DnD@bpisBɯũM޲zC
- ѩC jail OqYssĶA@ jail ӨA
- ɯŤ]\٤OYDA]sBɯŨä|ӳ·СC
- @ jail ӨAɯŤȷ|ӶOӦhɶAì۷\FC</para>
-
- <warning>
- <para>odz]weOz &os; ϥΡB\BΤW۷gA
- YU]wzӻӹLAijzӦҼ{θ²tΡAO
- <package>sysutils/ezjail</package>A䴣ѧ²檺
- &os; jail ޲z覡C</para>
- </warning>
-
- <para>򥻪QkObP jail qHw覡Ӧ@θ귽
- &mdash; ĥΰŪ &man.mount.nullfs.8; Aɯŧ²A
- çU service 줣P jail @k|[iC ~A
- ]ѹpW[BRBɯ jail ²K覡C</para>
-
- <note>
- <para>service `Ҥl]AG
- <acronym>HTTP</acronym> serverB<acronym>DNS</acronym>
- serverB<acronym>SMTP</acronym> server C</para>
- </note>
-
- <para>`Ъ]wتbG</para>
-
- <itemizedlist>
- <listitem>
- <para>إ²BezѪ jail [cC ]NO
- <emphasis></emphasis>C jail 槹㪺 installworld
- C</para>
- </listitem>
- <listitem>
- <para> jail sWB²C</para>
- </listitem>
- <listitem>
- <para> jail sBɯŧPC</para>
- </listitem>
- <listitem>
- <para>iH]ۦ楴y &os; C</para>
- </listitem>
- <listitem>
- <para>w󰾰glDAi୰CQ𳴪iC</para>
- </listitem>
- <listitem>
- <para>q`٪ŶP inodeC</para>
- </listitem>
- </itemizedlist>
-
- <para>pPeҴ쪺Ao]pDnOaŪDnҪ
- (]NOjaҼ <application>nullfs</application>)C
- jailAåBC jail ӥiŪBg]ơAo]ƥiHOW߹wСB
- BΰϡBΥH vnode ݪ &man.md.4; ]ơC bҷA
- ڭ̱ĥΥiŪg <application>nullfs</application> C</para>
-
- <para>UhɮרtΪtmG</para>
-
- <itemizedlist>
- <listitem>
- <para>C jail | <filename>/home/j</filename> U䤤@ӥؿC</para>
- </listitem>
- <listitem>
- <para><filename>/home/j/mroot</filename> hOC
- jail @ΪҪAùҦ jail ӨOŪC</para>
- </listitem>
- <listitem>
- <para>C jail b <filename>/home/j</filename>
- U@Ӭ۹ťؿC</para>
- </listitem>
- <listitem>
- <para>C jail | <filename>/s</filename> ؿA
- ӥؿ|stΪiŪgC</para>
- </listitem>
- <listitem>
- <para>C jail |b <filename>/home/j/skel</filename> ؿإߦݪiŪgŶ
- C</para>
- </listitem>
- <listitem>
- <para>C jailspace (U jail iŪg) ئb <filename>/home/js</filename>&gt;C</para>
- </listitem>
- </itemizedlist>
-
- <note>
- <para>o䰲]Ҧ jail b
- <filename>/home</filename> ΰϡC MA
- ]iH̦ۨݨDAUӪҤlA
- ]nOoק۹aC</para>
- </note>
- <!-- Insert an image or drawing here to illustrate the example. -->
- </sect3>
-
- <sect3 xml:id="jails-service-jails-template">
- <title>إ߼Ҫ</title>
-
- <para>`NvBЦpإ jail nΪŪDҪC</para>
-
- <para>ij &os; tΤɯŨ̷s -RELEASE Aܩp󰵽аѾ\
- Handbook
- <link xlink:href="&url.books.handbook;/makeworld.html">`</link>C
- sANni buildworld {ǡA~٭n <package>sysutils/cpdup</package> MC
- ڭ̱N &man.portsnap.8; ӤU &os; Ports CollectionA
- b Handbook <link xlink:href="&url.books.handbook;/portsnap.html">Portsnap `</link>
- СAǪ̥iHݬݡC</para>
-
- <procedure>
- <step>
- <para>Aإ߰Ūؿc jail &os; binaryA
- ۨ &os; source tree ؿAæw jail ҪG</para>
-
- <screen>&prompt.root; <userinput>mkdir -p /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; source tree @ˡA] &os; Ports Collection
- @ jail ϥΡAH <application>mergemaster</application>
- G</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>إߥiŪg[G</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> Ӹ˺|]wɡC
- UӧR <application>mergemaster</application>
- ҫإߪhlؿG</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>{biŪgɮרtΥH symlink 覡sŪɮרtΡC
- нT{ symbolic link O_Ts <filename>s/</filename> ؿAYؿإߤ覡A
- ΫVmAi|ɭPw˥ѡC</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>̫hOsW <filename>/home/j/skel/etc/make.conf</filename>
- AöJHUeG</para>
-
- <programlisting>WRKDIRPREFIX?= /s/portbuild</programlisting>
-
-
- <para>n]w <literal>WRKDIRPREFIX</literal> ~iHU jail
- oHQsĶ &os; portsCаO ports ؿOݰŪɮרtΡC
- ӷftۭq <literal>WRKDIRPREFIX</literal> ~iHU jail
- biŪgŶisĶC</para>
- </step>
- </procedure>
- </sect3>
-
- <sect3 xml:id="jails-service-jails-creating">
- <title>إ Jail</title>
-
- <para>{bwg㪺 &os; jail ҪAiHb
- <filename>/etc/rc.conf</filename> ]wC
- UoҤlhܽdpإ 3 jailG<quote>NS</quote>B
- <quote>MAIL</quote>B<quote>WWW</quote>C</para>
-
- <procedure>
- <step>
- <para>b <filename>/etc/fstab</filename> [WUC]wA
- HKtΦ۰ʱU jail һݪŪҪPŪgŶG</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 N|b}ɰ &man.fsck.8;
- ˬdFӤΰϪ dump number Хܬ 0 h|Q &man.dump.8;
- ҳƥC
- ڭ̨äƱ
- <application>fsck</application> ˬd
- <application>nullfs</application> AΪ
- <application>dump</application> ƥ jail Ū nullfs C
- o]NOWz <filename>fstab</filename>
- C]w᭱欰 <quote>0&nbsp;0</quote>C</para>
- </note>
- </step>
- <step>
- <para>b <filename>/etc/rc.conf</filename> ]w jailG</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="/usr/home/j/ns"
-jail_ns_devfs_enable="YES"
-jail_mail_hostname="mail.example.org"
-jail_mail_ip="192.168.3.18"
-jail_mail_rootdir="/usr/home/j/mail"
-jail_mail_devfs_enable="YES"
-jail_www_hostname="www.example.org"
-jail_www_ip="62.123.43.14"
-jail_www_rootdir="/usr/home/j/www"
-jail_www_devfs_enable="YES"</programlisting>
-
- <warning>
- <para>ҥHn
- <varname>jail_<replaceable>name</replaceable>_rootdir</varname>
- q <filename>/home</filename> אּ <filename>/usr/home</filename> ]b &os;
- w]w˪ <filename>/home</filename> ؿuOV <filename>/usr/home</filename> symbolic linkC
- <varname>jail_<replaceable>name</replaceable>_rootdir</varname>
- ܼƶ <emphasis>ؿ</emphasis> ӫD symbolic linkA
- _h jail |ڵҰʡC iH &man.realpath.1;
- ӨMwܼơC ԱаѾ\ &os;-SA-07:01.jail wqiC</para>
- </warning>
- </step>
- <step>
- <para>C jail إߥŪɮרtαIG</para>
-
- <screen>&prompt.root; <userinput>mkdir /home/j/ns /home/j/mail /home/j/www</userinput></screen>
- </step>
- <step>
- <para>C jail w˥iŪgҪC Ъ`Noɭn <package>sysutils/cpdup</package>
- ATOCӥؿTƻsC</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>p@ӴNw jail ҫإߡAiHdzƦnnΤFC
- ХU jail ҶɮרtΡAA
- <filename>/etc/rc.d/jail</filename> script ӱҰʡG</para>
-
- <screen>&prompt.root; <userinput>mount -a</userinput>
-&prompt.root; <userinput>/etc/rc.d/jail start</userinput></screen>
- </step>
- </procedure>
-
- <para>{b jail ӴN|ҰʤFC YnˬdO_`ҰʡAiH
- &man.jls.8; OӬݡAӫO浲GUG</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>ɴNiHnJU jail ÷sWbP]w service nΪ daemon
- C W <literal>JID</literal> NbB@ jail sC
- iΤUCOHb <literal>JID</literal> s 3 jail
- ޲zu@G</para>
-
- <screen>&prompt.root; <userinput>jexec 3 tcsh</userinput></screen>
- </sect3>
-
- <sect3 xml:id="jails-service-jails-upgrading">
- <title>ɯ</title>
-
- <para>ɥѩwDΪ jail nηs\Aӻݭn &os;
- tΤɯŨsC oئw˳]p覡J jail ɯܱo[eC
- jail ]iH service ɶ(downtime)̧CA] jail
- uݦb̫~ݭn}C ~AU@sDܡA
- ]ѻP^ª\C</para>
-
- <procedure>
- <step>
- <para>OӤ@覡Ӥɯ host systemAAsW{ɪŪҪ
- <filename>/home/j/mroot2</filename>G</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>P˦aAb <buildtarget>installworld</buildtarget>
- ɷ|إߤ@ǥΤ۪ؿAЧoǬ屼G</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>sإߨDtΪiŪgŶ symlinkG</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>{biH jailG</para>
-
- <screen>&prompt.root; <userinput>/etc/rc.d/jail stop</userinput></screen>
- </step>
- <step>
- <para>ɮרtΡG</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>iŪgŶ(<filename>/s</filename>)
- ObŪɮרtΩUAGnC</para>
- </note>
- </step>
- <step>
- <para>ªŪtηhAsC p@ӡA
- iPɫOdetΪƥAHƸU@ɯūᦳDi^_C
- o䪺RW覡ķsŪɮרtΪإ߮ɶA~ &os;
- Ports Collection hsɮרtΡAH`ٵwЪŶP inode
- G</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>{bsŪҪdzƦnFAuѤUsHαҰ jailG</para>
-
- <screen>&prompt.root; <userinput>mount -a</userinput>
-&prompt.root; <userinput>/etc/rc.d/jail start</userinput></screen>
- </step>
- </procedure>
-
- <para>̫H &man.jls.8; ˬd jail O_`ҰʡC
- OѤFnbU jail mergemasterA٦]wɥH
- rc.d scripts nsC</para>
- </sect3>
- </sect2>
- </sect1>
-</chapter>
diff --git a/zh_TW.Big5/books/handbook/ports/chapter.xml b/zh_TW.Big5/books/handbook/ports/chapter.xml
deleted file mode 100644
index 57acfa461e..0000000000
--- a/zh_TW.Big5/books/handbook/ports/chapter.xml
+++ /dev/null
@@ -1,1300 +0,0 @@
-<?xml version="1.0" encoding="big5"?>
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
- Original revision: 1.273
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="ports">
- <title>nM޲zgGPackages Ports </title>
-
- <sect1 xml:id="ports-synopsis">
- <title>z</title>
-
- <indexterm><primary>ports</primary></indexterm>
- <indexterm><primary>packages</primary></indexterm>
- <para> FreeBSD b base system w[FܦhtΤuC
- MӡAbȹBΤWAziऴݭnwB~nC
- FreeBSD ѤF 2 ئwε{M޲ztΡJPorts Collection
- (H soucre ӽsĶBw) M package(wsĶn binary )C
- Wz覡AL׭nέ@ءAiHѹO CDROM
- κWӦw˷Q˪̷snC</para>
-
- <para>ŪoAzNFѡG</para>
-
- <itemizedlist>
- <listitem>
- <para>pH packages Ӧw˳nC</para>
- </listitem>
- <listitem>
- <para>pH ports Ӧw˳nC</para>
- </listitem>
- <listitem>
- <para>ww˪ packages ports np󲾰C</para>
- </listitem>
- <listitem>
- <para>p(override) ports collection ҨϥΪw]ȡC</para>
- </listitem>
- <listitem>
- <para>pbM޲ztΤAXQ˪nC</para>
- </listitem>
- <listitem>
- <para>pɯŤww˪nC</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 xml:id="ports-overview">
- <title>w˳n骺Uؤ覡</title>
-
- <para>q`nb &unix; tΤWw˳nɡAXӨBJn@G</para>
-
- <procedure>
- <step>
- <para>UӳnY(tarball)AiOlXάO binary ɡC
- </para>
- </step>
-
- <step>
- <para>Ѷ}YɡC(q`OH
- &man.compress.1; , &man.gzip.1; &man.bzip2.1; Y)</para>
- </step>
-
- <step>
- <para>\ŪɡAHFѦpwˡC(q`ɦWO
- <filename>INSTALL</filename> <filename>README</filename>
- AΦb <filename>doc/</filename> ؿU@Ǥ)</para>
- </step>
-
- <step>
- <para>pGҤUOlXAinק
- <filename>Makefile</filename> άO
- <command>./configure</command> script
- AۦAsĶӳnC</para>
- </step>
-
- <step>
- <para>̫զAջPwˡC</para>
- </step>
- </procedure>
-
- <para>pG@QܡANo²C
- pGbw˫DM]p() FreeBSD nɥXDA
- iݭnק@U{XA~ॿ`ϥΡC</para>
-
- <para>MAڭ̥iHb FreeBSD WϥΤWzDzΤ覡Ӧw˳nA
- OAڭ٦²檺ܡC
- FreeBSD ѤFج٨ƪn޲zG packages M portsC
- Nbgog峹ɭԡA
- wgWL &os.numports; port niHϥΡC</para>
-
- <para>ҿת FreeBSD package NOOHε{sĶB]C
- package |]Aε{ҦɡB]wɡB󵥡C
- ӤUwФW package izL FreeBSD M޲zOӶi޲zApG
- &man.pkg.add.1;B&man.pkg.delete.1;B&man.pkg.info.1; OC
- ҥHAu²楴ӫONiPw˷sε{FC</para>
-
- <para> FreeBSD port hOΤ@ɮסAӦ۰ʳBzε{wˬy{C</para>
-
- <para>аOGpGۤvӽsĶܡAݭnܦhާ@BJ
- (UBBpatchBsĶBw)C
- port OAhO[\ҦݭnoǤu@ƨBJA
- ҥHuݥ@²檺OAǭl{XN|۰ʤUBB
- patchBsĶAܦw˧C</para>
-
- <para>ƹWAports ٥iHΨӲ packagesAHKLHiH
- <command>pkg_add</command> ӦwˡA
- άOy|Ш쪺LM޲zOC</para>
-
- <para> packages H ports ̳O@˷|{
- <emphasis>dependencies(nۨY)</emphasis>C
- ]GzQwˬY{Ḁۨt@Ӥw˪禡w(library)A
- Ӧb FreeBSD port H package o{HθӨ禡wFC
- ҥHL׬O <command>pkg_add</command> OΪ port 覡Ӹ˸ӵ{A
- o(packageBport)|ˬdS˸Ө禡wA
- YSN|۰ʥ˸Ө禡wFC</para>
-
- <para>oا޳NܬۦAzi|n_ FreeBSD |˥Xoا޳NөOC
- Apackages M ports ̦U۪BA
- ϥέ@اMzۤvߦnC</para>
-
- <itemizedlist>
- <title>Package nBbG</title>
-
- <listitem>
- <para>PˬOYL package PlX tarball ۤA
- e̳q`|̤phFC</para>
- </listitem>
-
- <listitem>
- <para>package äݦAisĶC
- jε{p <application>Mozilla</application>B
- <application>KDE</application>B
- <application>GNOME</application> ӨAoIo۷nA
- רOϥγt׽wCC</para>
- </listitem>
-
- <listitem>
- <para>ݭnAѦpb FreeBSD WsĶn骺Ӹ`L{A
- Yiϥ packageC</para>
- </listitem>
- </itemizedlist>
-
- <itemizedlist>
- <title>Ports nBbG</title>
-
- <listitem>
- <para>F package bjhƨtΤWQA
- q`bsĶɷ|ϥΤOuﶵC MӡA
- zL port w˪ܡAhiwSw(pG Pentium 4 Athlon CPU)
- ӽվﶵAHŦXݨDC</para>
- </listitem>
-
- <listitem>
- <para>ǵ{bsĶɡA|@ǿﶵiHܡC
- |ҨӻA<application>Apache</application>
- iH]w@j諸sĶﶵC YzL port Ӧw˪ܡA
- |uʦhFAiHۤvӤϥιw]sĶﶵC</para>
-
- <para>bYDZpAP˪{PsĶﶵAh|P packageC
- pG
- <application>Ghostscript</application> |]O_n X11 serverA
- ӹ <filename>ghostscript</filename> H
- <filename>ghostscript-nox11</filename> o packageC
- pվ package OiߪA
- Yӵ{@ӥHWΨؤPsĶﶵɡA
- o package NSkFC</para>
- </listitem>
-
- <listitem>
- <para>Ydzn骺TH binary 覡GA
- Ϊ̻HlX覡G~iC</para>
- </listitem>
-
- <listitem>
- <para>ǤHäH binary MA]Lıoܤ֦lXA
- (zפW)NiHۤv˾\AôMO_bDC</para>
- </listitem>
-
- <listitem>
- <para>Ynn[WۤvL patchA
- NnlX~hW patch ץC</para>
- </listitem>
-
- <listitem>
- <para>ǤHwlXbA
- ҥHL̵LɴNiHۤv\ŪBpBɥ
- (MnŦXlXvWw)lXC</para>
- </listitem>
- </itemizedlist>
-
- <para>YQ`N port sʺAܡAiHq\
- &a.ports; H &a.ports-bugs;C</para>
-
- <warning>
- <para>bw˳neA̦n <uri xlink:href="http://vuxml.freebsd.org/">http://vuxml.freebsd.org/</uri> O_ӳn骺w|}qC
- </para>
-
- <para>~A]iH <package>ports-mgmt/portaudit</package>A|۰ˬdҦw˪
- nO_ww|}At~Aٷ|b˳n骺sĶL{eˬdC
- ]iHbˤFYdzn餧A <command>portaudit -F -a</command>
- ӧ@jwˡC</para>
- </warning>
-
- <para>UӱNЦpb FreeBSD ϥ package port ӦwˡB޲z
- third-party nC</para>
- </sect1>
-
- <sect1 xml:id="ports-finding-applications">
- <title>MQ˪n</title>
-
- <para>bw˥n餧eAAFѧAQn򪺳nA
- HθӳnsW١C</para>
-
- <para>FreeBSD Wi˪nM椣_bW[A
- LAڭ̫ܼyXؤ覡iHӧAQ˪nG</para>
-
- <itemizedlist>
- <listitem>
- <para>FreeBSD WsWcnMAb
- <link xlink:href="&url.base;/ports/index.html">http://www.FreeBSD.org/ports/
- </link>C
- U ports Ҩ̨ʽӤOAJiHzLnW٨ӷjM
- (pGDWr)A
- ]iHbCXҦiΪnC</para>
- </listitem>
-
- <listitem>
- <indexterm><primary>FreshPorts</primary></indexterm>
-
- <para> Dan Langille Һ@ FreshPorts A}b <uri xlink:href="http://www.FreshPorts.org/">http://www.FreshPorts.org/</uri>C
- FreshPorts |_l port tree UܤơA
- ]iHwY port HCJ <quote>lܦW(watch)</quote> A
- nɯŮɡAN|o email C</para>
- </listitem>
-
- <listitem>
- <indexterm><primary>FreshMeat</primary></indexterm>
-
- <para>pGDQ˪nW١AizLO FreshMeat (<uri xlink:href="http://www.freshmeat.net/">http://www.freshmeat.net/</uri>) oӧA
- pGFAiH^ FreeBSD hݤ@Uoε{O_wgQ
- port ihFC</para>
- </listitem>
-
- <listitem>
- <para>YD port TW١ADbӤؿAiH
- &man.whereis.1; OӧXӡC un <command>whereis
- file</command> YiA
- <replaceable>file</replaceable> aЧאּQ˪nW١C
- YӳnAN|iDAANUoˡG</para>
-
- <screen>&prompt.root; <userinput>whereis lsof</userinput>
-lsof: /usr/ports/sysutils/lsof</screen>
-
- <para>p@ӡAN|D <command>lsof</command> (tΤu{) Ob
- <filename>/usr/ports/sysutils/lsof</filename> ؿC</para></listitem>
-
- <listitem>
- <para>~A]iH &man.echo.1; PX port O porte tree
- BC |ҨӻG</para>
-
- <screen>&prompt.root; <userinput>echo /usr/ports/*/*lsof*</userinput>
-/usr/ports/sysutils/lsof</screen>
-
- <para>Ъ`NAo]| <filename>/usr/ports/distfiles</filename> ؿŦXɦWɮסC</para>
- </listitem>
-
- <listitem>
- <para>٦t@ۡANO Ports Collection تjMC
- nΪɭԡAХ <filename>/usr/ports</filename> ؿC
- MA <command>make search name={W</command>
- A䤤 <replaceable>{W</replaceable> ЧאּQ䪺nW١C
- |ҨӻAYn䪺O <command>lsof</command> ܡANOG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make search name=lsof</userinput>
-Port: lsof-4.56.4
-Path: /usr/ports/sysutils/lsof
-Info: Lists information about open files (similar to fstat(1))
-Maint: obrien@FreeBSD.org
-Index: sysutils
-B-deps:
-R-deps: </screen>
-
- <para>oǷjMGAn`NO <quote>Path:</quote> oA
- ]o|iDAiHb portC
- ӷjMGLA]P port w˸LYAҥHo̴NFC</para>
-
- <para>YnjMAiH <command>make
- search key=string</command>A䤤
- <replaceable>string</replaceable> ЧאּQjMrC
- p@ӷ| port W١Bn²(comments)Bnԭz(descriptions)
- HγnۨY(dependencies)̭O_ŦXrA
- ~AMnW٪ܡA]iHӧ䦳ŦXrDD portC</para>
-
- <para>oؤ覡AjMrO case-insensitive(Ϥjpg)C
- pAjM <quote>LSOF</quote> P <quote>lsof</quote>
- ̵G|O@˪C</para>
- </listitem>
-
- </itemizedlist>
- </sect1>
-
- <sect1 xml:id="packages-using">
- <info><title>ϥ Packages ޲z</title>
- <authorgroup>
- <author><personname><firstname>Chern</firstname><surname>Lee</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
-
- </info>
-
-
-
- <sect2>
- <title>Package wˤ覡</title>
- <indexterm>
- <primary>packages</primary>
- <secondary>installing</secondary>
- </indexterm>
-
- <indexterm>
- <primary><command>pkg_add</command></primary>
- </indexterm>
- <para>iH &man.pkg.add.1; qWΪ̳zLӦw˥@
- FreeBSD packageC</para>
-
- <example>
- <title>ʤUBw Package</title>
-
- <screen>&prompt.root; <userinput>ftp -a ftp2.FreeBSD.org</userinput>
-Connected to ftp2.FreeBSD.org.
-220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready.
-331 Guest login ok, send your email address as password.
-230-
-230- This machine is in Vienna, VA, USA, hosted by Verio.
-230- Questions? E-mail freebsd@vienna.verio.net.
-230-
-230-
-230 Guest login ok, access restrictions apply.
-Remote system type is UNIX.
-Using binary mode to transfer files.
-<prompt>ftp&gt;</prompt> <userinput>cd /pub/FreeBSD/ports/packages/sysutils/</userinput>
-250 CWD command successful.
-<prompt>ftp&gt;</prompt> <userinput>get lsof-4.56.4.tgz</userinput>
-local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz
-200 PORT command successful.
-150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes).
-100% |**************************************************| 92375 00:00 ETA
-226 Transfer complete.
-92375 bytes received in 5.60 seconds (16.11 KB/s)
-<prompt>ftp&gt;</prompt> <userinput>exit</userinput>
-&prompt.root; <userinput>pkg_add lsof-4.56.4.tgz</userinput></screen>
- </example>
-
- <para>YS package ӷ(O FreeBSD )ܡA
- ijϥ &man.pkg.add.1; ɡA[W <option>-r</option>
- ﶵӧPw packageCp@ӡAN|۰ʧP_T package 榡B
- HΩҷft@~t release A
- M|ۤvq FTP ^Bwˬ۹ packageC
- </para>
-
- <indexterm>
- <primary><command>pkg_add</command></primary></indexterm>
- <screen>&prompt.root; <userinput>pkg_add -r lsof</userinput></screen>
-
- <para>WoҤl|۰ʤUT package æwˡC
- YQﴫΨL &os; Packages Mirror ANn]w
- <envar>PACKAGESITE</envar> ܼơA
- p@Ӥ~|Nw]]wC &man.pkg.add.1;
- | &man.fetch.3; OӤUɮסA &man.fetch.3;
- h|ϥάܼƪ]wA
- OG
- <envar>FTP_PASSIVE_MODE</envar>B<envar>FTP_PROXY</envar> H
- <envar>FTP_PASSWORD</envar>C pGAҳB firewall
- ᭱AΪ̻ݭn FTP/HTTP proxy ܡANݭn]wC
- ]wӸ`аѾ\ &man.fetch.3;C
- Ъ`NGWһҤlOg <literal>lsof</literal> ӫD
- <literal>lsof-4.56.4</literal>C ϥλݧ\ɡA
- package N[WhFC
- &man.pkg.add.1; |۰ʤUӳn骺̷s^ӦwˡC</para>
-
- <note>
- <para>YΪO &os.current; &os.stable; ܡA&man.pkg.add.1;
- |۰ʤUӳn̷s^ӡC
- YΪOݩ -RELEASE AL|^ݩ release WҽsĶ
- packageC
- ]iH <envar>PACKAGESITE</envar> ܼơAHܤU覡C
- |ҨӻApGO &os;&nbsp;5.4-RELEASE ܡA &man.pkg.add.1;
- w]|q
- <literal>ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.4-release/Latest/</literal>
- ӧ packageCYnj &man.pkg.add.1; U &os;&nbsp;5-STABLE
- ҥΪ packageAN <envar>PACKAGESITE</envar> ]
- <literal>ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5-stable/Latest/</literal>
- YiC
- </para>
- </note>
-
- <para>Package ɦ <filename>.tgz</filename> H
- <filename>.tbz</filename> خ榡C
- odzizL <uri xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/">ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/</uri>
- AΪ FreeBSD ФoC
- Ci 4 ˪ FreeBSD (H PowerPak ])|b
- <filename>/packages</filename> ؿ packageC
- ̭ؿ[c <filename>/usr/ports</filename> ؿ[cC
- CӤUۦMݥؿABC package |b
- <filename>All</filename> ؿC
- </para>
-
- <para>package ؿ[cP port @PF̦@Pc package/port
- tξC</para>
-
- </sect2>
-
- <sect2>
- <title>޲z Packages</title>
-
- <indexterm>
- <primary>packages</primary>
- <secondary>managing</secondary>
- </indexterm>
- <para>&man.pkg.info.1; iΨӦCXҦww˪nBn²C</para>
-
- <indexterm>
- <primary><command>pkg_info</command></primary>
- </indexterm>
- <screen>&prompt.root; <userinput>pkg_info</userinput>
-cvsup-16.1 A general network file distribution system optimized for CV
-docbook-1.2 Meta-port for the different versions of the DocBook DTD
-...</screen>
- <para>&man.pkg.version.1; hOCXҦww˪n骩C
- |ܤw˪HΥثeW port tree tC
- </para>
- <indexterm>
- <primary><command>pkg_version</command></primary>
- </indexterm>
- <screen>&prompt.root; <userinput>pkg_version</userinput>
-cvsup =
-docbook =
-...</screen>
-
- <para>ĤG檺ŸܡGww˪n骩PثeW port tree
- tC</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Ÿ</entry>
- <entry>NNq</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>=</entry> <entry>w˪PثeW port tree
- OP@C
- </entry>
- </row>
-
- <row><entry>&lt;</entry>
- <entry>PثeW port tree ۤ_ӡAw˪¡C</entry>
- </row>
-
- <row><entry>&gt;</entry><entry>PثeW port tree ۤ_ӡA
- w˪sC(iOثeW port tree |sC)</entry></row>
-
- <row><entry>?</entry><entry>w˪nb ports ޤLơC
- (q`iOA|ҨӻGww˪ port wq Ports Collection
- ΧWFC)
- </entry></row>
-
- <row><entry>*</entry><entry>ӳnPɦ\hC</entry></row>
-
- </tbody>
- </tgroup>
- </informaltable>
- </sect2>
-
- <sect2>
- <title>ww˪ Package</title>
- <indexterm>
- <primary><command>pkg_delete</command></primary>
- </indexterm>
- <indexterm>
- <primary>packages</primary>
- <secondary>deleting</secondary>
- </indexterm>
- <para>Ynw˪nAЦhQ &man.pkg.delete.1; uApG
- </para>
-
- <screen>&prompt.root; <userinput>pkg_delete xchat-1.7.1</userinput></screen>
-
- <para>Ъ`N &man.pkg.delete.1; nW㪺nW٥HΪA
- YuJ <replaceable>xchat</replaceable> NA
- <replaceable>xchat-1.7.1</replaceable> ~iC MӡAڭ̥iH
- &man.pkg.version.1; PXw˪Ҧn骩AΪ̥H wildcard
- (UΦr) 覡G</para>
-
- <screen>&prompt.root; <userinput>pkg_delete xchat\*</userinput></screen>
-
- <para>HWҤlӨAN|ҦH <literal>xchat</literal>
- }YnC</para>
- </sect2>
-
- <sect2>
- <title>LӸ`</title>
- <para>Ҧw˪ package T|s <filename>/var/db/pkg</filename>
- ؿAbӥؿUiHOw˪nɮײMθӳn²ɮסC
- </para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="ports-using">
- <title>ϥ Ports ޲z</title>
-
- <para>Uڭ̷|Цpϥ Ports Collection ӦwˡBn骺򥻥ΪkC
- ܩLiΪ <command>make</command> ԲӥΪkPҳ]wAiѾ\
- &man.ports.7;C</para>
-
- <sect2 xml:id="ports-tree">
- <title>Oow Ports Collection</title>
-
- <para>bw˥@ ports eAˤW
- Ports Collection XX DnO <filename>/usr/ports</filename> @
- <filename>Makefiles</filename>, patches HΤ@dzn²ɩҲզC
- </para>
-
- <para>b FreeBSD ɡAYѤFb <application>sysinstall</application>
- Ŀn Ports Collection ܡA
- SYAiHӤUC覡Ӧw ports collectionG</para>
-
- <procedure>
- <title>CVSup 覡</title>
-
- <para>ϥ <application>CVSup</application> OwˡBs Ports
- Collection ֳtk@C
- YQA <application>CVSup</application> ΪkܡAаѾ\ <link linkend="cvsup">ϥ CVSup</link>C</para>
-
- <note>
- <para><application>csup</application> OH C y
- <application>CVSup</application> n骺gAb &os; 6.2
- Τ᪩YbtΤC iHΨtΩҪ
- <application>csup</application> YiLBJ@ʧ@A
- ñN <command>cvsup</command> BA
- אּ <command>csup</command> YiC ~A &os; 6.2
- eAhi <package>net/csup</package>
- Ϊ package Өϥ <application>csup</application>C</para>
- </note>
-
- <para>Ĥ@] <application>CVSup</application> eAХT{
- <filename>/usr/ports</filename>
- ObI YAwgˤF Ports Collection ASۦ[WL patch
- ɡA <application>CVSup</application>
- ä|RAۦ[W patch ɡAo˥i|ɭPnwˬYdznɡA
- o patch ѩνsĶѡC</para>
-
- <step>
- <para>w <package>net/cvsup-without-gui</package>
- packageG</para>
-
- <screen>&prompt.root; <userinput>pkg_add -r cvsup-without-gui</userinput></screen>
-
- <para>Ӹ`ΪkаѾ\ <link linkend="cvsup-install">w CVSup</link>(<xref linkend="cvsup-install"/>)C</para>
- </step>
-
- <step>
- <para> <command>cvsup</command>G</para>
-
- <screen>&prompt.root; <userinput>cvsup -L 2 -h cvsup.tw.FreeBSD.org /usr/share/examples/cvsup/ports-supfile</userinput></screen>
-
- <para>Ч
- <replaceable>cvsup.tw.FreeBSD.org</replaceable> Ч令A
- () <application>CVSup</application> DC
- oiHѾ\㪺 <link linkend="cvsup-mirrors">CVSup mirror
- </link> C(<xref linkend="cvsup-mirrors"/>)C</para>
-
- <note>
- <para>YQΦۤv]
- <filename>ports-supfile</filename>ApA
- QCoOӫwҨϥΪ
- <application>CVSup</application> DC</para>
-
- <procedure>
- <step>
- <para>oرpUAХH <systemitem class="username">root</systemitem> v
- <filename>/usr/share/examples/cvsup/ports-supfile</filename>
- ƻsLmAp
- <filename>/root</filename> Ϊ̦ۤvbaؿC</para>
- </step>
-
- <step>
- <para>קs <filename>ports-supfile</filename> ɡC</para>
- </step>
-
- <step>
- <para>
- <replaceable>CHANGE_THIS.FreeBSD.org</replaceable>
- אּA() <application>CVSup</application> DC
- oiHѾ\㪺 <link linkend="cvsup-mirrors">CVSup
- Mirrors</link> (<xref linkend="cvsup-mirrors"/>) C</para>
- </step>
-
- <step>
- <para>MN}lHUCO] <command>cvsup</command>G
- </para>
-
- <screen>&prompt.root; <userinput>cvsup -L 2 /root/ports-supfile</userinput></screen>
- </step>
- </procedure>
- </note>
- </step>
-
- <step>
- <para> &man.cvsup.1; AN|}ls Ports CollectionC
- Loʧ@uOyszäOyɯšzA|w˪n魫ssĶBɯšC</para>
- </step>
- </procedure>
-
- <procedure>
- <title>Portsnap 覡</title>
-
- <para>&man.portsnap.8; ]Os Ports Collection 覡@C
- &os;&nbsp;6.0 _}l Portsnap AӸªtΡAhizL
- <package>ports-mgmt/portsnap</package> port ӦwˡG
- </para>
-
- <screen>&prompt.root; <userinput>pkg_add -r portsnap</userinput></screen>
-
- <para><application>Portsnap</application> Ӹ`\AаѾ\
- <link linkend="portsnap">Portsnap ϥνg</link>C</para>
-
- <step>
- <para>Y <filename>/usr/ports</filename> ؿsbܡA
- Nإߤ@UaG</para>
-
- <screen>&prompt.root; <userinput>mkdir /usr/ports</userinput></screen>
- </step>
-
- <step>
- <para>UӡAUY Ports Collection wsɨ
- <filename>/var/db/portsnap</filename> ؿC
- UAn_uP_iHC</para>
-
- <screen>&prompt.root; <userinput>portsnap fetch</userinput></screen>
- </step>
-
- <step>
- <para>YOĤ@] <application>Portsnap</application> ܡA
- hݭn <filename>/usr/ports</filename>G
- </para>
-
- <screen>&prompt.root; <userinput>portsnap extract</userinput></screen>
-
- <para>Yw <filename>/usr/ports</filename> ӥBuOQsӤwA
- NӤU@G</para>
-
- <screen>&prompt.root; <userinput>portsnap update</userinput></screen>
- </step>
-
- </procedure>
-
- <procedure>
- <title>Sysinstall 覡</title>
-
- <para>o覡n <application>sysinstall</application>
- zLw˨ӷӸ Ports CollectionC
- Ъ`NGҦw˪ Ports Collection uO release
- oGɪӤwAӫD̷sC
- YW(Internet)ܡAШϥΤWz覡@|nC</para>
-
- <step>
- <para>H <systemitem class="username">root</systemitem> v
- <command>sysinstall</command>
- (b &os; 5.2 ehO <command>/stand/sysinstall</command>)
- A覡pUG</para>
-
- <screen>&prompt.root; <userinput>sysinstall</userinput></screen>
- </step>
-
- <step>
- <para>ХHV䲾ʿܶءA
- <guimenuitem>Configure</guimenuitem>AM
- <keycap>Enter</keycap> C</para>
- </step>
-
- <step>
- <para>
- <guimenuitem>Distributions</guimenuitem>AM
- <keycap>Enter</keycap> C</para>
- </step>
-
- <step>
- <para> <guimenuitem>ports</guimenuitem>AM
- <keycap>Space</keycap> C</para>
- </step>
-
- <step>
- <para> <guimenuitem>Exit</guimenuitem>AM
- <keycap>Enter</keycap> C</para>
- </step>
-
- <step>
- <para>ܭnΪw˨ӷApGCDROM()BFTP 覡C</para>
- </step>
-
- <step>
- <para> <guimenuitem>Exit</guimenuitem>AM
- <keycap>Enter</keycap> C</para>
- </step>
-
- <step>
- <para>U <keycap>X</keycap> Ni}
- <application>sysinstall</application> {C</para>
- </step>
- </procedure>
- </sect2>
-
- <sect2 xml:id="ports-skeleton">
- <title>Ports wˤ覡</title>
-
- <indexterm>
- <primary>ports</primary>
- <secondary>installing</secondary>
- </indexterm>
- <para> Ports CollectionAnOG
- <quote>skeleton</quote>C
- ²Aport skeleton NOnpb FreeBSD
- QsĶBw˪̰ɮײզXC
- C port skeleton 򥻤W|G</para>
-
- <itemizedlist>
- <listitem>
- <para><filename>Makefile</filename> ɡC
- o <filename>Makefile</filename> e\hA
- OΨӫwnpsĶAHθӸ˦btΪBC</para>
- </listitem>
-
- <listitem>
- <para><filename>distinfo</filename> ɡC
- sĶӳnһݤUɮסBchecksum(ϥ &man.md5.1;
- &man.sha256.1; ɮ)|OboɡA
- HTOҤUɮ׬OTL~C</para>
- </listitem>
-
- <listitem>
- <para><filename>files</filename> ؿC oؿ񪺬On饿`sĶB
- w˪ patch ɡC
- Patches ɰ򥻤WO@ǤpɮסAðwSwɮרӰקA
- ӥBO¤rɮ榡A
- 򥻤Weq`|O <quote>Remove line 10(R 10 )</quote>
-
- <quote>Change line 26 to this ...( 26 אּ...)</quote>
- C
- o Patches q`]٬ <quote>diffs</quote>
- A]O &man.diff.1; {ҲͪC</para>
-
- <para>~Aؿ]i|@ǨUsĶ port ɮסC</para>
- </listitem>
-
- <listitem>
- <para><filename>pkg-descr</filename> ɡAeOԲӪn餶СA
- q`|gohC</para>
- </listitem>
-
- <listitem>
- <para><filename>pkg-plist</filename> ɡA port
- |w˪ҦɮײMC
- ]OiDtΦb port ɡAݭnRɮסC</para>
- </listitem>
- </itemizedlist>
-
- <para> port ٷ|LɮסAO <filename>pkg-message</filename> ɡC
- port tΦb@DZpɡA|γoɮסC
- pGQDoɮתhӸ`γ~AH port @ΪkAаѾ\ <link xlink:href="&url.books.porters-handbook;/index.html">FreeBSD Porter's
- Handbook</link>C</para>
-
- <para>port gOiDtΦpsĶ source code OA
- äOu source codeC
- source code iHqЩκ(Internet)ӨoA
- ӳn}o̥i| source code HUخ榡ӵoGC
- q`OH tar H gzip o̤u@_YɮסA
- ]iOHLuYAήڥSYC
- ӳn骺 source code L׬OH@YɫAAڭ̳٤
- <quote>distfile</quote>C
- UNШئw &os; port 覡C</para>
-
- <note>
- <para>nw port ܡAаȥ <systemitem class="username">root</systemitem> C
- </para>
- </note>
-
- <warning>
- <para>bw˥ port eAаȥT{s Ports Collection ̷sA
- ~˾\ <uri xlink:href="http://vuxml.freebsd.org/">http://vuxml.freebsd.org/</uri> ˬdҭn˪ port
- O_w|}ijDݭn`NC</para>
-
- <para><application>portaudit</application> |bw˥ port eA
- ۰ˬdO_ww|}CoӤub Ports Collection
- (<package>ports-mgmt/portaudit</package>)C
- bw port eAiH] <command>portaudit -F</command> OA
- p@ӴN|̷sw|}Ʈw^ӮֹC
- CѪtΩww˷|۰ʧsƮwAç@w]֡C
- ԱаѾ\ &man.portaudit.1; H &man.periodic.8; uWC</para>
- </warning>
-
- <para>Ports Collection |]AOi`suC
- pGSܡAݤʧһݪ distfile ɽƻs
- <filename>/usr/ports/distfiles</filename> ~C</para>
-
- <para>}lާ@eAniJw˪ port ؿG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/sysutils/lsof</userinput></screen>
-
- <para>@iJ <filename>lsof</filename> ؿANiHݨo port
- skeleton cC
- UӡANOsĶA]NO <quote>build</quote> o portC
- u²J <command>make</command> OANiPsĶC
- AӥiHݨUTG</para>
-
- <screen>&prompt.root; <userinput>make</userinput>
-&gt;&gt; lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
-&gt;&gt; Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/.
-===&gt; Extracting for lsof-4.57
-...
-[extraction output snipped]
-...
-&gt;&gt; Checksum OK for lsof_4.57D.freebsd.tar.gz.
-===&gt; Patching for lsof-4.57
-===&gt; Applying FreeBSD patches for lsof-4.57
-===&gt; Configuring for lsof-4.57
-...
-[configure output snipped]
-...
-===&gt; Building for lsof-4.57
-...
-[compilation output snipped]
-...
-&prompt.root;</screen>
-
- <para>Ъ`NGsĶAN|^촣ܦC(prompt)CUӴNOw˸
- port FAn˪ܡAuݦb쥻 <command>make</command>
- O᭱A[W@ӦrYiA
- ӦrNO <command>install</command>G</para>
-
- <screen>&prompt.root; <userinput>make install</userinput>
-===&gt; Installing for lsof-4.57
-...
-[installation output snipped]
-...
-===&gt; Generating temporary packing list
-===&gt; Compressing manual pages for lsof-4.57
-===&gt; Registering installation for lsof-4.57
-===&gt; SECURITY NOTE:
- This port has installed the following binaries which execute with
- increased privileges.
-&prompt.root;</screen>
-
- <para>@^촣ܦC(prompt)ANiH˪{FC
- t~A] <command>lsof</command> o{ɷ|B~vA
- ҥH|X{wĵiCbsĶBw port ɭԡA
- ЯdNX{ĵiC</para>
-
- <para>~AijRsĶΪu@ؿ(w]O <filename>work</filename>)A
- oؿbsĶL{ҥΨ쪺@{ɮסA
- oɮפuwЪŶAӥB]i|b port ɯŷsɡA
- ynxZC</para>
-
- <screen>&prompt.root; <userinput>make clean</userinput>
-===&gt; Cleaning for lsof-4.57
-&prompt.root;</screen>
-
- <note>
- <para> <command>make install clean</command> NiH@f𧹦һ
- <command>make</command>B<command>make install</command>B
- <command>make clean</command> oTӨBJFC</para>
- </note>
-
- <note>
- <para> shell |̾ <envar>PATH</envar> ܼƪ|A
- ⨺Ǹ| cache _ӡAӥ[tjMɡC
- pGAΪOo shellAb˧ port ݭn
- <command>rehash</command> OA~s˪ɡA
- <command>rehash</command> OiHb <command>tcsh</command>
- shell WϥΡAYO <command>sh</command> ܡAhO
- <command>hash -r</command>C
- ԱаѾ\AҨϥΪ shell C</para>
- </note>
-
- <para>ǥѩҿ third-party ҵo檺 DVD-ROM ~AO
- <link xlink:href="http://www.freebsdmall.com/">FreeBSD
- Mall</link> ҵo檺 FreeBSD Toolkit |]A distfiles ɮסA
- oɮץiΨӷft Ports CollectionC
- DVD-ROM b <filename>/cdrom</filename>C
- YϥΨLIܡAnOo]w <varname>CD_MOUNTPTS</varname>
- ܼƬ۹IC p@ӡAФWYһݪ distfiles
- N|۰ʨϥΥЪɮסC</para>
-
- <note>
- <para>Ъ`NAּ port ä\zLШӵoGɮסC
- i઺]GݥU~UδGɮסAΨL]C
- pGQw˦bФWSW portANݳsW~~iwˡC
- </para>
- </note>
-
- <para>ports tαĥ &man.fetch.1; ӤUɮסA
- \hiվ㪺ܼơA]AG
- <envar>FTP_PASSIVE_MODE</envar>B<envar>FTP_PROXY</envar>B
- <envar>FTP_PASSWORD</envar>C pGOB󦳨ҡA
- Ϊ̻ݭnϥ FTP/HTTP proxyANݭn]woܼơC
- ϥβӸ`аѾ\ &man.fetch.3; C</para>
-
- <para>YLkHɤ@WܡAiHQ
- <command>make fetch</command>C
- unb port ̤Wh|(<filename>/usr/ports</filename>)
- oOAҦݭnΨ쪺ɮ׳|UC
- oO]iHbUhؿϥΡAҦpG
- <filename>/usr/ports/net</filename>C
- Ъ`NAY port ̪ۨ library Ϊ̨L port ܡA
- <emphasis>ä|</emphasis>ۤ@_ULҬ̪ۨɮסC
- YQ@UҦ̪ۨ port ҦɮסAOѼƽЧ
- <buildtarget>fetch-recursive</buildtarget> ӫD
- <buildtarget>fetch</buildtarget>C</para>
-
- <note><para>iHbYOγ̤Wh| <command>make</command>
- OӽsĶҦ portAΪ̥HWz <command>make
- fetch</command> OӤUҦɮסC
- MӡAoˬO۷MIA] port æsC
- ]t@رpA port i|HۦPɦWA
- OڤWoOPeɮסC</para></note>
-
- <para>bYǨupAiݥ[W <varname>MASTER_SITES</varname>
- (ɮתlUB)~UIAHUһݪɮסC
- iHΤUCOAӧw] <varname>MASTER_SITES</varname>
- UIG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/directory</userinput>
-&prompt.root; <userinput>make MASTER_SITE_OVERRIDE= \
-ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch</userinput></screen>
-
- <para>WoҤlAO <varname>MASTER_SITES</varname> ]
- <systemitem class="fqdomainname">ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/</systemitem>
- UIC</para>
-
- <note><para> port \(έnD)zowsĶﶵA
- HҥΡBθӳn餤D\BwﶵHΨLiۭqﶵC
- 㦳Nʪ]AF
- <package>www/mozilla</package>B<package>security/gpgme</package>B<package>mail/sylpheed-claws</package>C
- YoﶵɡAq`bsĶɷ|X{ܰTC</para></note>
-
- <sect3>
- <title>(Override)w] Ports ؿ</title>
-
- <para>ɭԡA|o{ϥΨLؿ@ portBdistfiles
- ؿi۷(ƦܬO)AiH]w
- <varname>PORTSDIR</varname> <varname>PREFIX</varname>
- ܼƥHקw] port ؿC|ҡG</para>
-
- <screen>&prompt.root; <userinput>make PORTSDIR=/usr/home/example/ports install</userinput></screen>
-
- <para>HW|b
- <filename>/usr/home/example/ports</filename> isĶA
- çҦɮצw˨ <filename>/usr/local</filename> C</para>
-
- <screen>&prompt.root; <userinput>make PREFIX=/usr/home/example/local install</userinput></screen>
-
- <para>h|b <filename>/usr/ports</filename> ؿsĶA
- çҦɮצw˨
- <filename>/usr/home/example/local</filename> C</para>
-
- <para>MoA</para>
-
- <screen>&prompt.root; <userinput>make PORTSDIR=../ports PREFIX=../local install</userinput></screen>
-
- <para>h|Pɥ]tس]w(٦ܦhܤƥHPLkbgA
- zӤwgjFa)C</para>
-
- <para>~AoܼƤ]H@ܼƨӳ]wC
- Ш̱zҨϥΪ shell hѾ\AHAѦp]wC</para>
- </sect3>
-
- <sect3>
- <title>Bz <command>imake</command></title>
-
- <para> port |ϥ <command>imake</command>(X Window tΪ@)
- Lk`B <varname>PREFIX</varname> ܼơA
- ̷|ɮ׳w˨ <filename>/usr/X11R6</filename> ؿC
- P˦aA]@ Perl port | <varname>PREFIX</varname>
- çɮצw˨ Perl ؿ[cC o ports respect
- <varname>PREFIX</varname> O۷xAƦܬOi઺ơC</para>
-
- </sect3>
-
- <sect3>
- <title>s]w Ports ﶵ</title>
-
- <para>bsĶY port ɷ|X{e(ncurses-based)A
- iHΨӿܦw˿ﶵC q`˦n port AKӷ|ݭn[B
- B@Ƿw˪ﶵC YݭnܡA
- ]\h覡iHվoǿﶵC 䤤@ؤ覡KO port ؿA
- å <command>make</command> <buildtarget>config</buildtarget>
- YiA^ﶵeh@վC t~٥i <command>make</command>
- <buildtarget>showconfig</buildtarget> Hܸ port wˮɩҥΪﶵC
- ]iH <command>make</command> <buildtarget>rmconfig</buildtarget>
- ӧҦﶵ^l]wC oǿﶵLʧ@iѾ\ &man.ports.7;
- ԲӻC</para>
- </sect3>
- </sect2>
-
- <sect2 xml:id="ports-removing">
- <title>ww˪ Ports</title>
-
- <indexterm>
- <primary>ports</primary>
- <secondary>removing</secondary>
- </indexterm>
- <para>{bzwgDpw portAӶ}lQAѦp󲾰C
- pˤF@ port ~NѨ˿ port FC
- bAڭ̱NeҤlҸ˪ port
- (SJӪ`NܡAڭ̦A@UNO <command>lsof</command>)C
- 򲾰 package ɬ۷(b <link linkend="packages-using">Packages section</link> )AOϥ
- &man.pkg.delete.1; OG</para>
-
- <screen>&prompt.root; <userinput>pkg_delete lsof-4.57</userinput></screen>
-
- </sect2>
-
- <sect2 xml:id="ports-upgrading">
- <title>ɯŤww˪ Ports</title>
-
- <indexterm>
- <primary>ports</primary>
- <secondary>upgrading</secondary>
- </indexterm>
- <para>A &man.pkg.version.1; OӦCXثe Ports Collection
- ѤFǥiɯŪ port G</para>
-
- <screen>&prompt.root; <userinput>pkg_version -v</userinput></screen>
-
- <sect3 xml:id="ports-file-updating">
- <title><filename>/usr/ports/UPDATING</filename></title>
-
- <para>Cs Ports Collection AаȥOobɯ port eA
- ݬ <filename>/usr/ports/UPDATING</filename>A
- o̷|gɯŤ譱UDApGɮ׮榡ܡBܧ]wɦmB
- PªۮeDAHΫѨMBJC</para>
-
- <para>Y <filename>UPDATING</filename> ePAݨ쪺L󦳨ǤP
- B۽ĪܡA
- ХH <filename>UPDATING</filename> ǡC</para>
- </sect3>
-
- <sect3 xml:id="portupgrade">
- <title>H Portupgrade ӤɯŤww˪ Ports</title>
-
- <indexterm>
- <primary>portupgrade</primary>
- </indexterm>
-
- <para><application>portupgrade</application> iHPɯŤw˪nC
- Ӥuiq <package>ports-mgmt/portupgrade</package>
- port wˡA
- wˤ覡NpPL port @ˡA <command>make install clean
- </command> ONiHFG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/ports-mgmt/portupgrade</userinput>
-&prompt.root; <userinput>make install clean</userinput></screen>
-
- <para>̦nH <command>pkgdb -F</command> ӱˤw˪ ports
- ƮwO_~AíץDaC
- bCɯŤeA̦nw@U <command>pkgdb -F</command>
- ʧ@|C</para>
-
- <para>] <command>portupgrade -a</command> ܡA
- <application>portupgrade</application> |ɯŨtΤWҦw˪L
- portsC Y <option>-i</option> hbɯŨC port L{A
- |nDT{ʧ@O_ŦXһݡC</para>
-
- <screen>&prompt.root; <userinput>portupgrade -ai</userinput></screen>
-
- <para>YuQɯŬYSw{ӫDAiH
- <command>portupgrade pkgname</command>
- ӰwC YQn <application>portupgrade</application>
- uɯŬY port Ҭ̪ۨMAhХ <option>-R</option>
- ѼƧYiC</para>
-
- <screen>&prompt.root; <userinput>portupgrade -R firefox</userinput></screen>
-
- <para>Yn package ӫD port ӦwˡAhݫw
- <option>-P</option> ~iHC YwoﶵAh
- <application>portupgrade</application> |jM
- <envar>PKG_PATH</envar> ܼƩҫwؿA
- Y䤣hzLӤUwˡC
- YSiΪ package ܡAh
- <application>portupgrade</application> |ϥ port 覡wˡC
- YQpSܦϥ port 覡wˡAh <option>-PP</option>
- YijקKϥ port 覡wˡC</para>
-
- <screen>&prompt.root; <userinput>portupgrade -PP gnome2</userinput></screen>
-
- <para>YuQU distfiles(Ϊ̭Yw <option>-P</option> ܡAhO
- package)ӤQsĶΦwɮסAiHϥ <option>-F</option>C
- ԱаѾ\ &man.portupgrade.1; C</para>
- </sect3>
-
- <sect3 xml:id="portmanager">
- <title>H Portmanager ӤɯŤww˪ Ports</title>
-
- <indexterm>
- <primary>portmanager</primary>
- </indexterm>
-
- <para><application>Portmanager</application>
- ]iHΨӻPɯŤw˪nC Ӥuiq <package>ports-mgmt/portmanager</package> port wˡG</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/ports-mgmt/portmanager</userinput>
-&prompt.root; <userinput>make install clean</userinput></screen>
-
- <para>Ҧw˪nAiHPUCOӤɯšG</para>
-
- <screen>&prompt.root; <userinput>portmanager -u</userinput></screen>
-
- <para>~AϥΰѼƥiHאּ <option>-ui</option>Ap@
- <application>Portmanager</application> bɯŤ@ǦSﶵn
- AN|߰ݸӦpɯšC <application>Portmanager</application>
- ]iHΨӸ˷s portCPH`Ϊ
- <command>make install clean</command> OPBbG
- |ɯŧAn˪ port Ҭ̪ۨҦ portsAM~}lsĶB
- w˭n˪ portC</para>
-
- <screen>&prompt.root; <userinput>portmanager x11/gnome2</userinput></screen>
-
- <para>Yn˪ port nۨYDɡA]iH
- <application>Portmanager</application> ϥ̭kyC
- <application>Portmanager</application> ѨM̰ۨDA port
- ]|ssĶAH]TۨYC</para>
-
- <screen>&prompt.root; <userinput>portmanager graphics/gimp -f</userinput></screen>
-
- <para>lBΪkAаѾ\ &man.portmanager.1; C</para>
- </sect3>
- </sect2>
-
- <sect2 xml:id="ports-disk-space">
- <title>Ports PwЪŶ</title>
-
- <indexterm>
- <primary>ports</primary>
- <secondary>disk-space</secondary>
- </indexterm>
- <para>]ϥ Ports Collection 𦭥i|ΥwЪŶA
- ҥHb˧nAOonH <command>make clean
- </command> OӲM{ɪ <filename>work
- </filename> ؿC
- ~AiHΤUCOӲM Ports Collection {ɥؿG</para>
-
- <screen>&prompt.root; <userinput>portsclean -C</userinput></screen>
-
- <para>ports Τ[FAzi|b
- <filename>distfiles</filename>
- ؿ|ֿn۳\hlXɮסC iHʧRoɮסA
- Ϊ̥ΤUCOӲMҦ port ϥΪɡG</para>
-
- <screen>&prompt.root; <userinput>portsclean -D</userinput></screen>
-
- <para>Ϊ̭nMҦw˪ port AϥΪɡG</para>
-
- <screen>&prompt.root; <userinput>portsclean -DD</userinput></screen>
-
- <note>
- <para><command>portsclean</command> ouDO
- <application>portupgrade</application> M󪺤@C</para>
- </note>
-
- <para>nѤFǤwgwˡAAݭnΨ쪺 portsC
- <package>ports-mgmt/pkg_cutleaves</package>
- portAOi۰ʧo\઺nuC</para>
- </sect2>
-
- </sect1>
-
- <sect1 xml:id="ports-nextsteps">
- <title>wˤA`NƶܡH</title>
-
- <para>q`Aw˧nAڭ̥iH\ŪҪ@ǤAλݭns]wɡA
- ӽTOoӳnබQB@AΦb}ɭԱҰ(pGO daemon )
- C</para>
-
- <para>Pn|P]wBJCޫˡApG˦nFnA
- ODU@B쪺ɭԡA iHոլݳoǤpޥG</para>
-
- <itemizedlist>
- <listitem>
- <para> &man.pkg.info.1; AoOiHܡGzLM޲zt
- (Packages/Ports)ˤFdznBɮ׸˦bC|ҨӻAYˤF
- FooPackage ( 1.0.0)AUoOG</para>
-
- <screen>&prompt.root; <userinput>pkg_info -L foopackage-1.0.0 | less</userinput></screen>
-
- <para>N|ܳonҦw˪ɮײMC ЯSO`Nb
- <filename>man/</filename> ؿOɡB
- <filename>etc/</filename> ؿO]wɡB
- <filename>doc/</filename> ؿOC</para>
-
- <para>YTww˪M󪩥AiHUCOӬdG</para>
-
- <screen>&prompt.root; <userinput>pkg_info | grep -i foopackage</userinput></screen>
-
- <para>HWN|jMҦw˪MACXŦX
- <replaceable>foopackage</replaceable> MW١C
- Цۦ̻ݨDAק <replaceable>foopackage</replaceable>
- Q䪺MW١C</para>
- </listitem>
-
- <listitem>
- <para>@T{ӵ{uWwˡANiH &man.man.1; ½\C
- P˦aAYӵ{ѪܡA]iHѦҳ]wɼ˥AHΨLC
- </para>
- </listitem>
-
- <listitem>
- <para>Yӵ{xܡA٥iHzLӧB`ݵ(FAQ)C
- YD}AХΤUCOG</para>
-
- <screen>&prompt.root; <userinput>pkg_info foopackage-1.0.0</userinput></screen>
-
- <para>Yӵ{xܡAh|@ <literal>WWW:</literal>
- }YX{Ao|CXӵ{x}(URL)C</para>
- </listitem>
-
- <listitem>
- <para>Port Yb}ɴN|Ұ(N Internet
- D)Aq`|w script
- <filename>/usr/local/etc/rc.d</filename> ؿC
- ziH˾\o script TP_AέYݭnA]iHקBWC
- ԱаѾ\ <link linkend="configtuning-starting-services">Ұ Services</link>C
- </para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 xml:id="ports-broken">
- <title>pBz걼(Broken) PortsH</title>
-
- <para>pGo{Y port LkQwˡBB@A XؤkiHոլݡG</para>
-
- <orderedlist>
- <listitem>
- <para>q <link xlink:href="&url.base;/support.html#gnats">Problem Report
- Ʈw</link> _ݬݡAwwgHeiΪ patch WhoA
- γ\NiHQѨMDC</para>
- </listitem>
-
- <listitem>
- <para>V port maintainer MDUGХ
- <command>make maintainer</command> ½\
- <filename>Makefile</filename> Hd maintainer
- email addressCOoHH maintainer ɡAn port
- W١B(άO <filename>Makefile</filename>
- <literal>&dollar;FreeBSD:</literal> @W)
- Hά~TC</para>
-
- <note>
- <para> port OѱM@ maintainer tdAӬOzL <link xlink:href="&url.articles.mailing-list-faq;/article.html">mailing
- list</link> MDQסC\h(D)p email 榡q`O
- <email role="nolink">freebsd-listW@FreeBSD.org</email>
- CoݮɡAаOoyfreebsd-listW١zאּQת
- mailing list W١C</para>
-
- <para>ר port maintainer O
- <email role="nolink">freebsd-ports@FreeBSD.org</email>
- ɡAƹWwgSH port maintainer FC
- ]Y port ץΨL޳N䴩ܡAQ׳|b
- freebsd-ports l׾¤WX{C
- AFApGxӳn̡A@ port maintainer
- ܡAڭ̤]wz[JC</para>
- </note>
-
- <para>Y port maintainer S^бzHA hiH &man.send-pr.1;
- ӴDi PRC(аѾ\ <link xlink:href="&url.articles.problem-reports;/article.html">Writing
- FreeBSD Problem Reports</link>)C</para>
- </listitem>
-
- <listitem>
- <para>ոլݭץa! <link xlink:href="&url.books.porters-handbook;/index.html">Porter's
- Handbook</link> ]AF <quote>Ports</quote>
- [cӸ`AoǮѤeUzצnD port
- Ʀܴۤv portT</para>
- </listitem>
-
- <listitem>
- <para>q FTP IUsĶn packageC
- package collection ̤W寸Ob <systemitem class="fqdomainname">ftp.FreeBSD.org</systemitem> W <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/">packages
- ؿ</link>AаOoˬdO_w <link xlink:href="http://mirrorlist.FreeBSD.org/">local mirror</link>
- I q`pUo package iHϥΡA
- ӥBӤۦsĶ֤@ǡC
- &man.pkg.add.1; YiQw package C</para>
- </listitem>
- </orderedlist>
- </sect1>
-
-</chapter>
diff --git a/zh_TW.Big5/htdocs/about.xml b/zh_TW.Big5/htdocs/about.xml
deleted file mode 100644
index 1d568f9838..0000000000
--- a/zh_TW.Big5/htdocs/about.xml
+++ /dev/null
@@ -1,99 +0,0 @@
-<?xml version="1.0" encoding="big5"?>
-<!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN"
-"http://www.FreeBSD.org/XML/doc/share/xml/xhtml10-freebsd.dtd" [
-<!ENTITY title " FreeBSD">
-]>
-
-<!-- The FreeBSD Traditional Chinese Documentation Project -->
-<!-- Original Revision: 1.11 -->
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <title>&title;</title>
-
- <cvs:keyword xmlns:cvs="http://www.FreeBSD.org/XML/CVS">$FreeBSD$</cvs:keyword>
- </head>
-
- <body class="navinclude.about">
-
- <h2>FreeBSD O?</h2>
-
- <p>FreeBSD O@إi@~tΡAi䴩 x86
- ۮe(]A Pentium&reg; M Athlon&trade;)Bamd64
- ۮe(]A Opteron&trade;BAthlon&trade;64 M EM64T)B
- ARMBIA-64BPC-98H UltraSPARC&reg;
- [cqC䷽۩ BSD ww[{jǧBJQն}o
- &unix; AOѨӦۥ@ɦUa <a
- href="&enbase;/doc/en_US.ISO8859-1/articles/contributors/staff-committers.html">
- @</a> @P}oM@C FreeBSD P[cqtδѤFP{ת䴩A
- ԱаѾ\ <a href="&base;/platforms/index.html">tΥx</a> o@C</p>
-
- <h2>iS</h2>
-
- <p>FreeBSD ѤFBʯBwHάۮeʵh譱
- <a href="&base;/features.html">iS</a>A
- oǯSʧYϬObuqӷ~@~tΤ禳ҤʡC</p>
-
- <h2>u Internet ѨM</h2>
-
- <p>FreeBSD OzQ
- <a href="&base;/internet.html">Internet M Intranet</a>
- AȾCYϬObWtUAMĦaϥΰOA
- PɹB檺ƥHdpΤi{Ѩ}nɶC</p>
-
- <h2>Bjqiѿܪ</h2>
-
- <p>FreeBSD V~AtXGӰt PC wA
- FreeBSD iNӷ~ &unix;
- u@ΨtΡCt~AFreeBSD ټsx\hୱ
- MU Server <a href="&base;/applications.html">ε{</a>A
- ϥܦnŦXzUػݨDC</p>
-
- <h2>w</h2>
-
- <p>FreeBSD qLhشCiwˡA]AqСB
- DVDBnСBϱaH MS-DOS&reg; ϵA
- pGzsuAzƦܥiH <i></i>
- qL anonymous FTPAΪ NFS Server Ӹ FreeBSDC
- zuݫӧڭ̬zdzƪ <a
- href="&enbase;/doc/zh_TW.Big5/books/handbook/install.html">
- w˫</a> ާ@NiHFC</p>
-
- <h2>FreeBSD O <i>free</i> </h2>
-
- <a href="&base;/copyright/daemon.html"><img src="&enbase;/gifs/dae_up3.gif"
- alt="The BSD Daemon"
- height="81" width="72"
- align="right"
- border="0"/></a>
-
- <p>zγ\{puq@~tΥwݭnOjʶRA
- FreeBSD oqo檩쥦 source code
- <a href="&base;/copyright/index.html">KO</a> ѡI
- pGz@NʶRΤU@U FreeBSD үazߡA
- iHq <a href="&enbase;/doc/zh_TW.Big5/books/handbook/mirrors.html">o</a>
- FѧhTC</p>
-
- <h2>U FreeBSD</h2>
-
- <p>U FreeBSD äO@xƱC zݭnA
- NOX FreeBSD ݭniaAñNz
- (gL߽sgMzL) izL send-pr o^ FreeBSD pA
- Ϊ̪⥦浹z{Ѫ FreeBSD committerC
- ڭw]AqN@~AD source code biC
- ~Az٥iHzL <a
- href="&enbase;/doc/zh_CN.GB2312/articles/contributing/index.html">
- U FreeBSD</a>og峹FѧhTC</p>
-
- <p>YϱzO}oHA]MiHqLL~|U FreeBSDC
- <a href="http://www.FreeBSDFoundation.org">FreeBSD |</a>
- OӫDQ´A䮽ڥiHKҵ|C
- nFѧh FreeBSD |HA
- ЩM <a
- href="mailto:board&#64;FreeBSDFoundation.org">board&#64;FreeBSDFoundation.org</a>
- pôAέPHG
- The FreeBSD Foundation, 7321 Brockway Dr.
- Boulder, CO 80303, USA.</p>
-
- </body>
-</html>
diff --git a/zh_TW.Big5/htdocs/applications.xml b/zh_TW.Big5/htdocs/applications.xml
deleted file mode 100644
index 98f59f838a..0000000000
--- a/zh_TW.Big5/htdocs/applications.xml
+++ /dev/null
@@ -1,129 +0,0 @@
-<?xml version="1.0" encoding="big5"?>
-<!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN"
-"http://www.FreeBSD.org/XML/doc/share/xml/xhtml10-freebsd.dtd" [
-<!ENTITY title " FreeBSD ">
-]>
-
-<!-- The FreeBSD Traditional Chinese Project -->
-<!-- Original revision: 1.33 -->
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <title>&title;</title>
-
- <cvs:keyword xmlns:cvs="http://www.FreeBSD.org/XML/CVS">$FreeBSD$</cvs:keyword>
- </head>
-
- <body class="navinclude.about">
-
- <h2>P FreeBSD La</h2>
-
- <p>FreeBSD XGBz &unix;
- u@ү৹ȡAӥB٥]AziSQLG</p>
-
- <h2>FreeBSD OӯuѤF㪺lX}tΡC</h2>
-
- <p>SH|hö}t <b>O</b>
- {NpΪeC MӡA@Ӱӷ~ocѪѨMסA
- 񴣨ѤF]A kernel HΥtΪAȡB
- {B޲zulX@~tΧ󬰶}OH ziHק FreeBSD
- 󳡤AӾAӤHB´BqݭnC</p>
-
- <p>ѩĥΤFeP <a
- href="&base;/copyright/freebsd-license.html">v</a>A
- ziHXG󭭨aN FreeBSD @BNKO <i>ΰӷ~</i>
- Ϊ¦C</p>
-
- <h2>FreeBSD BWUتγnC</h2>
-
- <p>ѩ FreeBSD ~ UNIX зǤ@ 4.4BSDA
- bWsĶMB{pϴxC ~AFreeBSD ٴѤF]t״Iε{
- <a href="&base;/where.html">packages collection</a> H <a
- href="&enbase;/ports/index.html">ports collection</a>A
- ΥHVΤᴣѹwsĶnAHΫKۦcتUnA
- Hqୱ~ServerغػݨDC ~A FreeBSD sg <a
- href="&enbase;/commercial/software.html">ӷ~</a>
- ]bPѼWC</p>
-
- <p>HUO@Ǩ嫬 FreeBSD ҡG</p>
-
- <ul>
- <li><b>Internet AȡC </b>\h Internet Aȴѷ~(ISP)
- FreeBSD B WWWB Usenet newsB FTPB EmailAHΨLAȪzQxC
- hiHߧYJϥΪnAҦp <a
- href="http://www.apache.org/">Apache</a> web ServerAH <a href="http://proftpd.org/">ProFTPD</a>
- FTP&nbsp;ServerAϱocذӷ~ΪϤߪ ISP ܱopϴxC
- MAtX FreeBSD LPۤ <a
- href="&base;/internet.html">lt</a>AzΤNɨ찪tB
- iaAȡC</li>
-
- <li><b>X Window u@C </b>qKy X terminal
- 찪ɪ X ܾAFreeBSD blC KO X n (<a
- href="http://x.org/">X.Org</a>&trade;) HtδѡC
- t~A<a href="http://www.nvidia.com/">nVidia</a>
- ]ѤFΩL̪ʯϧεw骺 native Xʵ{A
- å[JF~ɼзǪ <a href="http://www.opengroup.org/motif/">Motif</a>&reg;
- M <a href="http://www.opengl.org/">OpenGL</a>&reg;
- Ʈw䴩C <a
- href="http://www.kde.org">KDE</a> M <a
- href="http://www.gnome.org">GNOME</a> ୱҡA
- ѤF䴩AôѤF줽M󪺥\A
- HΥ\󬰱jj <a
- href="http://www.openoffice.org/">OpenOffice.Org</a> M
- <a href="http://www.softmaker.de/tml_en.htm">TextMaker</a>
- ~C</li>
-
- <li><b>C</b> L׬OLoʥ]BroutingBname serviceA
- FreeBSD @x PC Internet B
- qllDALAAPC/NFS ServerA
- ƦܴѦUU˪LAȡC</li>
-
- <li><b>n}oC</b> FreeBSD ѤF@M}ouA
- o䤤]AF GNU C/C++ sĶM(debugger)C
- |ҦӨAz٥iHϥ &java; Tcl/Tk
- AHΤ@ǧ`}oyp Icon Ӷi}oC
- ~AFreeBSD ٴѤFcةMϥΪU shared librariesC
- ziHqhy檺jjrs边AҦp
- XEmacs M vim ܦۤvwӨϥΡC</li>
-
- <li><b>ĮC</b> u UNIX u@AOΪ Internet
- ĮOC FreeBSD <a
- href="http://www.mozilla.org/products/firefox/">Firefox</a>
- M <a href="http://www.opera.com/">Opera</a>A
- Yª web ΤᴣѤFD`uqܡC WĮA
- oۤvA\Ū Usenet newsB oqllA
- iHqLzୱW FreeBSD tΨӻP{C</li>
-
- <li><b>Ш|MsC</b> ѩ󴣨ѤF㪺lXAFreeBSD
- O@ӫD`uqsxC @~tΩΨL Computer Science
- 쪺ǥͩMsHAqo@}ӥB״ItΤqC</li>
-
- <li><b>٦hC </b>ġBʧ@CB
- MIS&nbsp;ƮwBıƬǬsBT|ijB
- ѫ(IRC)Bax۰ʤơBhΤDB
- qliOt(BBS)BϧαyAHΧhLΡA
- wgb FreeBSD W}ᵲGC</li>
- </ul>
-
- <h2>FreeBSD OHzݭnӦ@~tΡC</h2>
-
- <p> FreeBSD OۥѳnAPɤ]O@ <i>ѥΤ䴩
- </i> nC zu²aNDAzLqllo <a
- href="mailto:freebsd-questions@FreeBSD.org">freebsd-questions@FreeBSD.org</a>
- l׾¡ANiHVƦʦW}oHMh FreeBSD ΤᴣݡC</p>
-
- <p>FreeBSD ٦@ӥ]A@ɦUa}oHζAL̦b_aץtΤDA
- W[sSʥHμgC 䴩swM\@O}oL{nA
- Ӷ}oζbo@L{A@D`i|vTtíwʪDC
- FreeBSD RΪ̤]]tΪʯMíwʦӷPۻC</p>
-
- <h2>Ma̻ . . .</h2>
-
- <p><i>FreeBSD [ڭ̪] t`OblA
- ӥBg`HߡCoV FreeBSD }oζPqI</i></p>
-
- <div align="right"><p>---Mark Hittinger, WinNet
- Communications, Inc. ޲z</p></div>
-
- </body>
-</html>
diff --git a/zh_TW.Big5/htdocs/docs/webresources.xml b/zh_TW.Big5/htdocs/docs/webresources.xml
deleted file mode 100644
index 054396b482..0000000000
--- a/zh_TW.Big5/htdocs/docs/webresources.xml
+++ /dev/null
@@ -1,111 +0,0 @@
-<?xml version="1.0" encoding="big5"?>
-<!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN"
-"http://www.FreeBSD.org/XML/doc/share/xml/xhtml10-freebsd.dtd" [
-<!ENTITY title "귽">
-]>
-
-<!--
- The FreeBSD Traditional Chinese Documentation Project
- Original Revision 1.7
--->
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>&title;</title>
-
- <cvs:keyword xmlns:cvs="http://www.FreeBSD.org/XML/CVS">$FreeBSD$</cvs:keyword>
- </head>
-
- <body class="navinclude.docs">
-
- <h2>s</h2>
-
- <ul>
- <li>
- <p><a href="http://dmoz.org/Computers/Software/Operating_Systems/Unix/BSD/FreeBSD/">Open
- Directory p</a> CX@藍 FreeBSD sA
- ]A@ǦUs
- <a href="http://dmoz.org/Computers/Software/Operating_Systems/Unix/BSD/FreeBSD/Prominent_Users/">WΤ</a>C</p></li>
- </ul>
-
- <h2>{ͬ...</h2>
-
- <h3><a name="press" href="../news/press.html">FreeBSD </a></h3>
-
- <p>FreeBSD ɡC</p>
-
- <h2>Newsgroups</h2>
-
- <p>HUO FreeBSD ϥΪ̸`ѻPQװϡG</p>
-
- <ul>
- <li>
- <p><a
- href="news:comp.unix.bsd.freebsd.announce">comp.unix.bsd.freebsd.announce</a>
- (ި)</p>
- </li>
-
- <li>
- <p><a
- href="news:comp.unix.bsd.freebsd.misc">comp.unix.bsd.freebsd.misc</a></p>
- </li>
-
- <li>
- <p><a
- href="news:comp.unix.bsd.misc">comp.unix.bsd.misc</a></p>
- </li>
- </ul>
-
- <h2>B~귽</h2>
-
- <h3><a href="http://fxr.watson.org/">The
- Source Code</a></h3>
-
- <p>YQlXӬݪܡAo䦳{ FreeBSD <em>kernel</em>
- lXC oO Robert Watson һs@C</p>
-
- <h3><a href="http://www.daemonnews.org/">Daemon News</a></h3>
-
- <p>BSD sDsY</p>
-
- <p>N FreeBSDACg峹OӤuҴѪC
- ӭpؼдNOڧӦBSD sDsYA
- ä]ѵoG󥿽ZBsDӷ޹DC</p>
-
- <h3><a name="diary" href="http://www.freebsddiary.org/">The FreeBSD
- Diary</a></h3>
-
- <p>The FreeBSD Diary \hǪ̥Ū how-to u}A
- ӯڧӦ step-by-step (pwˡB]wU port
- n)׶aC</p>
-
- <h3><a href="http://www.OnLamp.com/bsd/">The O'Reilly Network BSD
- Dev Center</a></h3>
-
- <p>The BSD Dev Center FreeBSD MA
- ۭUޥHΤW⻡C</p>
-
- <h3><a href="http://www.BSDForums.org">BSDForums.org</a></h3>
-
- <p>BSDForums.org DQװϥH FreeBSD ΦU BSD sDB
- sC</p>
-
- <h3><a href="http://www.bsdguides.org">BSD Guides</a></h3>
-
- <p>BSDGuides.org \h BSD W⻡C</p>
-
- <h2>L</h2>
-
- <p><a href="http://docs.FreeBSD.org/44doc/">4.4BSD Documents</a>: DO
- 4.4BSD HTML A]iHbCx FreeBSD W <a
- href="file://localhost/usr/share/doc">/usr/share/doc</a> ؿs(
- Y doc M󪺸)C</p>
-
- <p><a href="http://docs.FreeBSD.org/info/">Info Documents</a>: DO
- Info HTML A]iHbCx FreeBSD W <a
- href="file://localhost/usr/share/info">/usr/share/info</a> ؿs(
- Y info M󪺸)C</p>
-
-
-</body>
-</html>
diff --git a/zh_TW.Big5/htdocs/send-pr.xml b/zh_TW.Big5/htdocs/send-pr.xml
deleted file mode 100644
index 7432f653d7..0000000000
--- a/zh_TW.Big5/htdocs/send-pr.xml
+++ /dev/null
@@ -1,162 +0,0 @@
-<?xml version="1.0" encoding="big5"?>
-<!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN"
-"http://www.FreeBSD.org/XML/doc/share/xml/xhtml10-freebsd.dtd" [
-<!ENTITY title " FreeBSD Di(problem report)">
-<!ENTITY copyright "This gnats pr-submission mechanism Copyright &copy; 1996
- The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.">
-<!ENTITY bugbusters "bugbusters@FreeBSD.org">
-]>
-
-<!-- The FreeBSD Traditional Chinese Documentation Project -->
-<!-- Original Revision 1.58 -->
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <title>&title;</title>
-
- <cvs:keyword xmlns:cvs="http://www.FreeBSD.org/XML/CVS">$FreeBSD$</cvs:keyword>
- </head>
-
- <body class="navinclude.support">
-
- <!-- Copyright (c) 1996 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED. -->
-
- <img src="&enbase;/gifs/bug.jpg" alt="Bugs" align="right" border="0" width="200" height="233"/>
-
- <p>P±zOɶڭ̤F FreeBSD ҦsbDC</p>
-
- <p>zLoӪAziHb source codeBBD^C
- pGzbw FreeBSD ɹJDAΪ̷QXy
- <b></b> ΡzΡyFreeBSD O_P <b>Y˳n</b> @_ϥΡzA
- Цb׾´XDC ѩDUpPAаѾ\
- <a href="support.html">䴩</a>C</p>
-
- <p>bgoӪ椧eAЪǮɶ\Ū
- <a href="&enbase;/doc/en_US.ISO8859-1/articles/problem-reports/article.html">
- p󼶼g FreeBSD Di</a> ƫedzơC oNz٤UɶA
- þi୰CoPDUɪѾvC bDieˬdO_
- <a href="&cgibase;/query-pr-summary.cgi?query">wgHLP˪i</a> Ϊ̦b
- <a href="&enbase;/doc/zh_TW.Big5/books/faq/">FAQ</a> O_wgҰOC</p>
-
- <p>кɥiԲӦagҭnDơC SO`NA
- zҶg "Environment" () oqOD@xҡC</p>
-
- <p><b>`N</b>G ѩ web ʳAzҰƻsBKWN|}a Tab MŮA
- ]o@ web 椣ӥΨӥHƻsBKW覡NXC</p>
-
- <p>ݭn`NOADzTA FreeBSD Project ܰʡA
- NQ{OH FreeBSD ۦPvѪC ~A
- zҨϥΨӴDiqlla}ANqL web ɭѩ󲳡A
- ]zϥΦĪUlLoC</p>
-
- <p>pGz patch ɮסAЪ`Nڭ̥u¤r(text/*) H shar
- oخ榡A]zseXTɮC
- pGzsou@ɦDA²檺kOɮקWA
- ϨH '.txt' C</p>
-
- <p>̫ANOϥγo@ɡAznݿѥΪϧΡA
- oOڭ̥ΥHo@tζiݥΪ@IC ڭ̫D`Ѥoo˰A
- oذkOLkקKC pGzѩ]LkݨϤA
- бڭ̳yzKpNAñNzDiA
- oe <a href="mailto:&bugbusters;">bugbusters ζ</a>
- N椺eeJDlܨtΡC</p>
-
- <p><b>`N</b>G bU '' eA<b>OoAxszҿJe</b>C
- pGzs|Ϥ cache _ӡAΪ̱zFWL 45 ӶgA
- hbWݨNiOLɪϤA
- iӾɭPtΩڵz檺eC HzsPA
- zi|boرpU <b>򥢩Ҷ񪺤e</b>C
- оqקKX{oرpC</p>
-
- <form action="http://www.FreeBSD.org/cgi/dosendpr.cgi" method="post"
- enctype="multipart/form-data">
- <input type="hidden" name="submitterid" value="current-users"/>
- <input type="hidden" name="confidential" value="no"/>
-
- <label for="email">zqlla}</label>G<br/>
- <input type="text" name="email" id="email" size="40"/>
-
- <br/><br/><label for="originator">zWr</label>G<br/>
- <input type="text" name="originator" id="originator" size="40"/>
-
- <br/><br/><label for="organization">ݹΤq</label>G<br/>
- <input type="text" name="organization" id="organization" size="40"/>
-
- <br/><br/><label for="synopsis">DpnyzG</label> <br/>
- <input type="text" name="synopsis" id="synopsis" size="60"/>
-
- <br/><br/><label for="category"></label>G<select name="category" id="category">
- <option> advocacy</option>
- <option> alpha</option>
- <option> amd64</option>
- <option> bin</option>
- <option> conf</option>
- <option> docs</option>
- <option> gnu</option>
- <option> i386</option>
- <option> ia64</option>
- <option> java</option>
- <option> kern</option>
- <option selected="selected"> misc</option>
- <option> ports</option>
- <option> powerpc</option>
- <option> sparc64</option>
- <option> standards</option>
- <option> threads</option>
- <option> usb</option>
- <option> www</option>
- </select>
-
- <br/><br/><label for="severity">Y{</label>G<select name="severity" id="severity">
- <option> non-critical</option>
- <option> serious</option>
- <option> critical</option>
- </select>
-
- <br/><br/><label for="priority">u</label>G<select name="priority" id="priority">
- <option> low</option>
- <option> medium</option>
- <option> high</option>
- </select>
-
- <br/><br/><label for="class">G</label> <select name="class" id="class">
- <option> sw-bug</option>
- <option> doc-bug</option>
- <option> change-request</option>
- <option> update</option>
- <option> maintainer-update</option>
- </select>
-
- <br/><br/><label for="release">zϥΪO FreeBSD </label>G<br/>
- <input type="text" name="release" id="release" size="40"/>
-
- <br/><br/><label for="environment"> (DxW "uname -a" G)</label>G
- <br/>
- <textarea name="environment" id="environment" rows="3" cols="80"></textarea><br/><br/>
-
- <label for="description">yz</label>G<br/>
- <textarea name="description" id="description" rows="20" cols="80"></textarea><br/><br/>
-
- <label for="howtorepeat">p󭫲{D</label>G<br/>
- <textarea name="howtorepeat" id="howtorepeat" rows="10" cols="80"></textarea><br/><br/>
-
- <label for="fix">(pGAD)pץD</label>G<br/>
- <textarea name="fix" id="fix" rows="20" cols="80"></textarea><br/><br/>
-
- <label for="patch">M/ patch ɮ (̤j 100KB)</label>:
- <input type="file" name="patch" id="patch" maxlength="102400"
- accept="text/*"/><br/>
-
- <label for="code-confirm">̫AпJUϤrA
- HzOHG<br/><br/>
- <img src="http://www.FreeBSD.org/cgi/confirm-code.cgi?db=sendpr"
- alt="HrF pGzLkݹϤAеoel &bugbusters;"
- border="0" height="24"/></label>
- <input type="text" name="code-confirm" id="code-confirm" size="8"/><br/><br/>
-
- <input type="submit" value=""/>
- <input type="reset" value=""/>
- </form>
-
- </body>
-</html>
diff --git a/zh_TW.Big5/htdocs/support.xml b/zh_TW.Big5/htdocs/support.xml
deleted file mode 100644
index 785e560ca2..0000000000
--- a/zh_TW.Big5/htdocs/support.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="big5"?>
-<!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN"
-"http://www.FreeBSD.org/XML/doc/share/xml/xhtml10-freebsd.dtd" [
-<!ENTITY title "FreeBSD 䴩">
-]>
-
-<!-- The FreeBSD Traditional Chinese Documentation Project -->
-<!-- Original Revision 1.352 -->
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <title>&title;</title>
-
- <cvs:keyword xmlns:cvs="http://www.FreeBSD.org/XML/CVS">$FreeBSD$</cvs:keyword>
- </head>
-
- <body class="navinclude.support">
-
- <p>FreeBSD ֦ƲhsMӷ~䴩AiѨΤܡC
- <a href="&base;/community.html">s</a> A
- ]ШΤiq FreeBSD sA
- ]Ah <a href="&base;/community/mailinglists.html">l׾</a>
- ұo쪺䴩C</p>
-
- <p>\h <a href="&base;/commercial/">t</a>
- ]ѤF]Aӷ~~B AȡA HUݫtߦb FreeBSD
- ӷ~AȡC</p>
-
- <h2>ϬMD</h2>
-
- <p>zb FreeBSD o{F bugH Ϊ̵o{󤤦sbĺ|H
- о\Ūڭ̪ <a href="&enbase;/support/bugreports.html">Di</a>
- èϥ <a href="&enbase;/send-pr.html">Di</a>
- ӴiC</p>
-
- <p>z]iHb <a href="&enbase;/cgi/query-pr-summary.cgi">ݥѨMDi</a>
- <a href="&base;/cgi/query-pr-summary.cgi?query">jDi</a>C</p>
-
- </body>
-</html>
diff --git a/zh_TW.Big5/share/xml/authors.ent b/zh_TW.Big5/share/xml/authors.ent
deleted file mode 100644
index 2b63ac0ff5..0000000000
--- a/zh_TW.Big5/share/xml/authors.ent
+++ /dev/null
@@ -1,94 +0,0 @@
-<?xml version="1.0" encoding="big5"?>
-<!--
- The FreeBSD Documentation Project
- The FreeBSD Traditional Chinese Documentation Project
-
- $FreeBSD$
-
- Names and email address of contributing authors and CVS committers.
- Entity names for committers should be the same as their login names on
- freefall.FreeBSD.org.
-
- Use these entities when referencing people.
-
- Please keep this list in alphabetical order by entity names.
-
- IMPORTANT: If you delete names from this file you *must* ensure that
- all references to them have been removed from the handbook's
- translations. If they haven't then you *will* break the
- builds for the other languages, and we will poke fun of you
- in public.
--->
-
-<!--
- Chinese Names delphij is aware of. Please contact delphij@FreeBSD.org
- if you know more.
--->
-
-<!ENTITY a.avatar " <email xmlns='http://docbook.org/ns/docbook'>avatar@FreeBSD.org</email>">
-
-<!ENTITY a.bmah "E <email xmlns='http://docbook.org/ns/docbook'>bmah@FreeBSD.org</email>">
-
-<!ENTITY a.chinsan "Cs <email xmlns='http://docbook.org/ns/docbook'>chinsan@FreeBSD.org</email>">
-
-<!ENTITY a.clive "LF <email xmlns='http://docbook.org/ns/docbook'>clive@FreeBSD.org</email>">
-
-<!ENTITY a.clsung "F <email xmlns='http://docbook.org/ns/docbook'>clsung@FreeBSD.org</email>">
-
-<!ENTITY a.davidxu "}hW <email xmlns='http://docbook.org/ns/docbook'>davidxu@FreeBSD.org</email>">
-
-<!ENTITY a.delphij " <email xmlns='http://docbook.org/ns/docbook'>delphij@FreeBSD.org</email>">
-
-<!ENTITY a.dryice "B <email xmlns='http://docbook.org/ns/docbook'>dryice@FreeBSD.org</email>">
-
-<!ENTITY a.foxfair "Jx <email xmlns='http://docbook.org/ns/docbook'>foxfair@FreeBSD.org</email>">
-
-<!ENTITY a.hsu "}ӳ <email xmlns='http://docbook.org/ns/docbook'>hsu@FreeBSD.org</email>">
-
-<!ENTITY a.ijliao "^ <email xmlns='http://docbook.org/ns/docbook'>ijliao@FreeBSD.org</email>">
-
-<!ENTITY a.kaiw " <email xmlns='http://docbook.org/ns/docbook'>kaiw@FreeBSD.org</email>">
-
-<!ENTITY a.keichii "dq <email xmlns='http://docbook.org/ns/docbook'>keichii@FreeBSD.org</email>">
-
-<!ENTITY a.kevlo "ù®a <email xmlns='http://docbook.org/ns/docbook'>kevlo@FreeBSD.org</email>">
-
-<!ENTITY a.leeym "۩ <email xmlns='http://docbook.org/ns/docbook'>leeym@FreeBSD.org</email>">
-
-<!ENTITY a.loader "ֱd <email xmlns='http://docbook.org/ns/docbook'>loader@FreeBSD.org</email>">
-
-<!ENTITY a.luoqi " <email xmlns='http://docbook.org/ns/docbook'>luoqi@FreeBSD.org</email>">
-
-<!ENTITY a.lwhsu "\ߤ <email xmlns='http://docbook.org/ns/docbook'>lwhsu@FreeBSD.org</email>">
-
-<!ENTITY a.nemoliu "B <email xmlns='http://docbook.org/ns/docbook'>nemoliu@FreeBSD.org</email>">
-
-<!ENTITY a.pat "h <email xmlns='http://docbook.org/ns/docbook'>pat@FreeBSD.org</email>">
-
-<!ENTITY a.rafan "Sa <email xmlns='http://docbook.org/ns/docbook'>rafan@FreeBSD.org</email>">
-
-<!ENTITY a.sephe "() <email xmlns='http://docbook.org/ns/docbook'>sephe@FreeBSD.org</email>">
-<!--
- ѩ Big5 õLӦrAuoH rȥNC
- ӦrgkаѾ\ http://www.zdic.net/zd/zi/ZdicE7Zdic8FZdic89.htm
- http://www.cns11643.gov.tw/web/show_font.jsp?page_n=3&number=11642
--->
-
-<!ENTITY a.vanilla "}T <email xmlns='http://docbook.org/ns/docbook'>vanilla@FreeBSD.org</email>">
-
-
-<!--
- Names and email address of Traditional Chinese local contributing authors
--->
-
-<!ENTITY a.tw.cwlin "L޳ <email xmlns='http://docbook.org/ns/docbook'>cwlin0416@gmail.com</email>">
-
-<!ENTITY a.tw.gaod "q <email xmlns='http://docbook.org/ns/docbook'>gaod.chen@gmail.com</email>">
-
-<!ENTITY a.tw.psilotum "LFD <email xmlns='http://docbook.org/ns/docbook'>b89605222@ntu.edu.tw</email>">
-
-<!ENTITY a.tw.tzhuan "l <email xmlns='http://docbook.org/ns/docbook'>tzhuan@gmail.com</email>">
-
-<!ENTITY a.tw.whsyu "}E <email xmlns='http://docbook.org/ns/docbook'>whsyu@arbor.ee.ntu.edu.tw</email>">
-
-<!ENTITY a.tw.yzlin "LyF <email xmlns='http://docbook.org/ns/docbook'>yzlin1985@gmail.com</email>">
diff --git a/zh_TW.Big5/share/xml/header.l10n.ent b/zh_TW.Big5/share/xml/header.l10n.ent
deleted file mode 100644
index 63d29ddfcb..0000000000
--- a/zh_TW.Big5/share/xml/header.l10n.ent
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="big5"?>
-<!-- $FreeBSD$ -->
-
-<!-- The FreeBSD Traditional Chinese Documentation Project -->
-<!-- Original revision: www/share/xml/header.ent,v 1.6 -->
-
-
-<!ENTITY copyright '<span xmlns="http://www.w3.org/1999/xhtml"><a href="&base;/search/index-site.html">Site Map</a> |
- <a href="&base;/copyright/">Legal Notices</a> | &copy; 1995-2007 The FreeBSD Project.
- OdҦvQC</span>'>
-<!ENTITY author '<a href="&base;/index.html"></a> &nbsp; | &nbsp; <a href="&base;/mailto.html">p</a> &nbsp; | &nbsp; <a href="&base;/copyright/index.html">v</a> &nbsp; | &nbsp; &copyright;'>
-<!ENTITY home '<a href="&base;/index.html"><img src="&enbase;/gifs/home.gif"
- alt="FreeBSD " border="0" align="right" width="101" height="33"></a>'>
-
-<!ENTITY header2.word.search 'jM'>
-<!ENTITY header2.word.donate ''>
-<!ENTITY header2.word.contact 'p'>
-
-<!ENTITY stylesheet '&base;/layout/css/fixed.css'>
-<!ENTITY stylesheetlarge '&base;/layout/css/fixed_large.css'>
-<!ENTITY nav ''>
-
-<!ENTITY header2.topnav '
- <div xmlns="http://www.w3.org/1999/xhtml" id="topnav">
- <ul id="topnavlist">
- <li><a href="&base;/" title=""></a></li>
- <li><a href="&base;/about.html" title=""></a></li>
- <li><a href="&base;/where.html" title="o FreeBSD">o FreeBSD</a></li>
- <li><a href="&base;/docs.html" title=""></a></li>
- <li><a href="&base;/community.html" title="s">s</a></li>
- <li><a href="&enbase;/projects/index.html" title="}o">}o</a></li>
- <li><a href="&base;/support.html" title="䴩">䴩</a></li>
- <li><a href="http://www.freebsdfoundation.org/" title="FreeBSD |">|</a></li>
- </ul>
- </div> <!-- TOPNAV -->
-'>
-
-<!-- macro for webbuild paper -->
-<!ENTITY webbuild '
-<p xmlns="http://www.w3.org/1999/xhtml">ЦpʳzL CVS repository sA
-HΦpsĶ FreeBSD C</p>'>
diff --git a/zh_TW.Big5/share/xml/navibar.l10n.ent b/zh_TW.Big5/share/xml/navibar.l10n.ent
deleted file mode 100644
index c0b7692d98..0000000000
--- a/zh_TW.Big5/share/xml/navibar.l10n.ent
+++ /dev/null
@@ -1,167 +0,0 @@
-<?xml version="1.0" encoding="big5"?>
-<!-- $FreeBSD$
-
- The FreeBSD Traditional Chinese Project
- Original Revision: 1.11
--->
-
-<!ENTITY nav.about '
-<div xmlns="http://www.w3.org/1999/xhtml" id="sidenav">
-<h2 class="blockhide">Section Navigation</h2>
-<ul>
-<li><a href="&base;/about.html"></a></li>
-<li><a href="&base;/features.html">S</a></li>
-<li><a href="&base;/applications.html">ε{</a></li>
-<li><a href="&base;/internet.html">Internet</a></li>
-<li><a href="&base;/advocacy/"></a></li>
-<li><a href="&enbase;/marketing/"></a></li>
-<li><a href="&base;/news/newsflash.html">sD</a></li>
-<li><a href="&enbase;/events/events.html"></a></li>
-<li><a href="&base;/news/press.html">C</a></li>
-<li><a href="&base;/art.html"></a></li>
-<li><a href="&base;/logo.html">Logo</a></li>
-<li><a href="&base;/donations/"></a></li>
-<li><a href="&base;/copyright/">k߶</a></li>
-</ul>
-</div> <!-- sidenav -->
-'>
-
-<!ENTITY nav.community '
-<div xmlns="http://www.w3.org/1999/xhtml" id="sidenav">
-<h2 class="blockhide">Section Navigation</h2>
-<ul>
-<li><a href="&base;/community.html">s</a></li>
-<li><a href="&enbase;/community/mailinglists.html">l׾</a></li>
-<li><a href="&enbase;/community/irc.html">IRC</a></li>
-<li><a href="&enbase;/community/newsgroups.html">newsgroup</a></li>
-<li><a href="&enbase;/usergroups.html">RΪ̲´</a></li>
-<li><a href="&enbase;/community/webresources.html">Web 귽</a></li>
-</ul>
-</div> <!-- sidenav -->
-'>
-
-<!ENTITY nav.developers '
-<div xmlns="http://www.w3.org/1999/xhtml" id="sidenav">
-<h2 class="blockhide">Section Navigation</h2>
-<ul>
-<li><a href="&enbase;/projects/index.html">}o</a></li>
-<li><a href="&enbase;/doc/zh_TW.Big5/books/developers-handbook">}oU</a></li>
-<li><a href="&enbase;/doc/zh_TW.Big5/books/porters-handbook">Porter U</a></li>
-<li><a href="&enbase;/developers/cvs.html">CVS NXw</a></li>
-<li><a href="&enbase;/releng/index.html">Release Engineering</a></li>
-<li><a href="&base;/platforms/">x</a>
- <ul>
- <li><a href="&base;/platforms/alpha.html">alpha</a></li>
- <li><a href="&base;/platforms/amd64.html">amd64</a></li>
- <li><a href="&base;/platforms/arm.html">ARM</a></li>
- <li><a href="&base;/platforms/i386.html">i386</a></li>
- <li><a href="&base;/platforms/ia64/index.html">ia64</a></li>
- <li><a href="&base;/platforms/mips.html">MIPS</a></li>
- <li><a href="&base;/platforms/pc98.html">pc98</a></li>
- <li><a href="&base;/platforms/ppc.html">ppc</a></li>
- <li><a href="&base;/platforms/sparc.html">sparc64</a></li>
- <li><a href="&base;/platforms/xbox.html">xbox</a></li>
- </ul>
-</li>
-<li><a href="&base;/projects/ideas/">sIlp</a></li>
-<li><a href="&enbase;/doc/zh_TW.Big5/articles/contributing/index.html"> FreeBSD U</a></li>
-</ul>
-</div> <!-- sidenav -->
-'>
-
-<!ENTITY nav.docs '
-<div xmlns="http://www.w3.org/1999/xhtml" id="sidenav">
-<h2 class="blockhide">Section Navigation</h2>
-<ul>
-<li><a href="&base;/docs.html"></a></li>
-<li><a href="&enbase;/doc/zh_TW.Big5/books/faq/">FAQ</a></li>
-<li><a href="&enbase;/doc/zh_TW.Big5/books/handbook/">ϥΤU</a></li>
-<li><a href="&cgibase;/man.cgi">Manual d\</a></li>
-<li><a href="&base;/docs/books.html">峹</a></li>
-<li><a href="&enbase;/marketing/"></a></li>
-<li><a href="&enbase;/publish.html">ѥ</a></li>
-<li><a href="&base;/docs/webresources.html">Web 귽</a></li>
-<li><a href="&enbase;/projects/newbies.html">sW</a></li>
-<li><a href="&enbase;/docproj/">FreeBSD p</a></li>
-</ul>
-</div> <!-- sidenav -->
-'>
-
-<![ %beta.testing; [
-<!ENTITY beta.listitem '
- <li xmlns="http://www.w3.org/1999/xhtml"><a href="&enbase;/&u.betarel.schedule;">YNoG: &betarel.current;</a></li>
-'>
-]]>
-<!ENTITY beta.listitem ''>
-
-<![ %beta2.testing; [
-<!ENTITY beta2.listitem '
- <li xmlns="http://www.w3.org/1999/xhtml"><a href="&u.betarel2.schedule;">YNoG: &betarel2.current;</a></li>
-'>
-]]>
-<!ENTITY beta2.listitem ''>
-
-<!ENTITY nav.download '
-<div xmlns="http://www.w3.org/1999/xhtml" id="sidenav">
-<h2 class="blockhide">Section Navigation</h2>
-<ul>
-<li><a href="&base;/where.html">o FreeBSD</a></li>
-<li><a href="&enbase;/releases/">oT</a>
- <ul>
- <li><a href="&enbase;/&u.rel.announce;">Production Release: &rel.current;</a></li>
- <li><a href="&enbase;/&u.rel2.announce;">Production Release(¦): &rel2.current;</a></li>
- <li><a href="&enbase;/snapshots/">Snapshot Releases</a></li>
- &beta.listitem;
- &beta2.listitem;
- </ul>
-</li>
-<li><a href="&enbase;/ports/">Ӫε{(ports)</a></li>
-</ul>
-</div> <!-- sidenav -->
-'>
-
-<!ENTITY nav.ports '
-<div xmlns="http://www.w3.org/1999/xhtml" id="sidenav">
-<h2 class="blockhide">Section Navigation</h2>
-<ul>
-<li><a href="&enbase;/ports/index.html"> ports</a></li>
-<li><a href="&enbase;/ports/installing.html">w</a></li>
-<li><a href="&enbase;/ports/updating.html">s</a></li>
-<li><a href="&enbase;/ports/searching.html">jM</a></li>
-<li>&nbsp;&nbsp;&nbsp;&nbsp;ؿ
- <ul>
- <li><a href="&enbase;/ports/categories-alpha.html">r</a></li>
- <li><a href="&enbase;/ports/categories-grouped.html">޿</a></li>
- </ul>
-</li>
-<li><a href="&enbase;/ports/master-index.html"> Ports</a></li>
-<li><a href="&enbase;/ports/references.html">hT</a></li>
-</ul>
-</div> <!-- sidenav -->
-'>
-
-<!ENTITY nav.support '
-<div xmlns="http://www.w3.org/1999/xhtml" id="sidenav">
-<h2 class="blockhide">Section Navigation</h2>
-<ul>
-<li><a href="&enbase;/support.html">䴩</a></li>
-<li><a href="&enbase;/commercial/">ӷ~~</a>
- <ul>
- <li><a href="&enbase;/commercial/software_bycat.html">n</a></li>
- <li><a href="&enbase;/commercial/hardware.html">w</a></li>
- <li><a href="&enbase;/commercial/consult_bycat.html">t</a></li>
- <li><a href="&enbase;/commercial/isp.html">Internet A</a></li>
- <li><a href="&enbase;/commercial/misc.html">䥦</a></li>
- </ul>
-</li>
-<li><a href="&base;/security/">wT</a></li>
-<li><a href="&enbase;/support/bugreports.html">Bug i</a>
- <ul>
- <li><a href="&base;/send-pr.html">Di</a></li>
- </ul>
-</li>
-<li><a href="&enbase;/support/webresources.html">Web 귽</a></li>
-</ul>
-</div> <!-- sidenav -->
-'>
-
diff --git a/zh_TW.Big5/share/xml/news.xml b/zh_TW.Big5/share/xml/news.xml
deleted file mode 100644
index 4f1f11ce53..0000000000
--- a/zh_TW.Big5/share/xml/news.xml
+++ /dev/null
@@ -1,2579 +0,0 @@
-<?xml version="1.0" encoding="big5" ?>
-<!DOCTYPE news PUBLIC "-//FreeBSD//DTD FreeBSD XML Database for News//EN"
- "http://www.FreeBSD.org/XML/www/share/xml/news.dtd">
-
-<!-- Simple schema for FreeBSD Project news.
-
- Divide time in to <year>, <month>, and <day> elements, each of which
- has a <name>.
-
- each <day> element contains one or more <event> elements.
-
- Each <event> contains an optional <title>, and then a <p>. <p> elements
- can contain <a> anchors. Within the "href" attribute of the anchor
- &base; or &enbase; will be replaced with the base URI necessary to reach
- the FreeBSD document root, and should always be used to start URLs at
- www.FreeBSD.org or one of the mirrors.
-
- Use the <title> element if the <p> content is lengthy. When generating
- synopses of this information (e.g., for syndication using RDF files),
- the contents of <title> will be preferred over <p>.
-
- The FreeBSD Traditional Chinese Documentation Project
- Original Revision: 1.40
- From: www/share/xml/news.xml
--->
-
-<news>
- <cvs:keyword xmlns:cvs="http://www.FreeBSD.org/XML/CVS">
- $FreeBSD$
- </cvs:keyword>
-
- <year>
- <name>2006</name>
- <month>
- <name>12</name>
-
- <day>
- <name>27</name>
- <event>
- <p>New committer: <a href="mailto:jls@freebsd.org">Jordan Sissel</a>
- (src)</p>
- </event>
-
- <event>
- <title>FreeBSD 6.2-RC2 Available</title>
-
- <p>FreeBSD 6.2 ĤGӭԿoG{w <a
- href="http://lists.freebsd.org/pipermail/freebsd-stable/2006-December/031742.html">oG</a>C
- Ω Tier-1 x ISO MɮסAwiHzLh
- <a href="http://www.FreeBSD.org/doc/zh_TW.Big5/books/handbook/mirrors-ftp.html">
- FreeBSD 蹳I</a> oC</p>
- </event>
- </day>
-
- <day>
- <name>26</name>
- <event>
- <p>sW committerG<a href="mailto:dryice@FreeBSD.org">B</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>22</name>
- <event>
- <p>sW committerG<a href="mailto:nox@FreeBSD.org">Juergen Lock</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>10</name>
- <event>
- <title> FreeBSD }oH Joseph Koshy Podcast X</title>
-
- <p>b̷s@ <a href="http://bsdtalk.blogspot.com/">bsdtalk</a>
- podcast AWill Backman N FreeBSD }oH Joseph Koshy
- b libElf WҰu@iFX͡C o podcast iHzL
- <a
- href="http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk087.mp3">
- http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk087.mp3</a> ťC</p>
- </event>
- </day>
-
- <day>
- <name>7</name>
- <event>
- <title> FreeBSD }oH Kip Macy Podcast X</title>
-
- <p>b̷s@ <a href="http://bsdtalk.blogspot.com/">bsdtalk</a>
- podcast AWill Backman N FreeBSD/sun4v
- ӶiiA FreeBSD }oH Joseph Koshy iFijXC o podcast iHzL
- <a
- href="http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk086.mp3">
- http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk086.mp3</a> ťC</p>
- </event>
- </day>
-
- <day>
- <name>5</name>
- <event>
- <p>sW committerG<a href="mailto:nivit@FreeBSD.org">Nicola Vitale</a>
- (ports)</p>
- </event>
-
- <event>
- <p>sW committerG<a href="mailto:gabor@FreeBSD.org">G&aacute;bor K&ouml;vesd&aacute;n</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>1</name>
- <event>
- <title> FreeBSD }oH Tom McLaughlin Podcast X</title>
-
- <p>b̷s@ <a href="http://bsdtalk.blogspot.com/">bsdtalk</a>
- podcast AWill Backman N BSD# pM FreeBSD W Mono
- FreeBSD }oH Tom McLaughlin iFijXC o podcast iHzL
- <a
- href="http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk085.mp3">
- http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk085.mp3</a> ťC</p>
- </event>
- </day>
- </month>
-
- <month>
- <name>11</name>
-
- <day>
- <name>29</name>
- <event>
- <p>sW committerG<a href="mailto:lx@FreeBSD.org">David Thiel</a>
- (ports)</p>
- </event>
-
- <event>
- <title> FreeBSD release engineerE Podcast X</title>
-
- <p>b̷s@ <a href="http://bsdtalk.blogspot.com/">bsdtalk</a>
- podcast AWill Backman NNnoG FreeBSD 6.2 release engineerE (Bruce
- Mah) iFijXC o podcast iHzL
- <a
- href="http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk084.mp3">
- http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk084.mp3</a> ť</p>
- </event>
- </day>
-
- <day>
- <name>17</name>
- <event>
- <title>FreeBSD 6.2-RC1 oGF</title>
-
- <p>FreeBSD 6.2 Ĥ@ӭԿoG{w <a
- href="http://lists.freebsd.org/pipermail/freebsd-stable/2006-November/030811.html">oG</a>C
- Ω Tier-1 x ISO MɮסAwizLh
- <a href="http://www.FreeBSD.org/doc/zh_TW.Big5/books/handbook/mirrors-ftp.html">
- FreeBSD 蹳I</a> oC</p>
- </event>
- </day>
-
- <day>
- <name>16</name>
- <event>
- <title>FreeBSD |uҮ</title>
-
- <p><a
- href="http://www.freebsdfoundation.org/">FreeBSD |</a>
- b| <a
- href="http://www.freebsdfoundation.org/donate/">uҮ</a>C
- ҮNbܤj{פWvT~|wC</p>
- </event>
- </day>
-
- <day>
- <name>14</name>
- <event>
- <title>FreeBSD.org tηh</title>
-
- <p>p 11 13 (P@) i檺 FreeBSD.org tηhu@]GC
- ثe̷spOӥvɶ 11 17 (P) i榹u@C</p>
- </event>
- </day>
-
- <day>
- <name>12</name>
- <event>
- <title>FreeBSD/sun4v w / Live CD oGF</title>
-
- <p>b Sun UltraSparc-T1 [cW FreeBSD Ӥu@ثewgoFqʪiiA
- ڭ̨@F@i]t{ɮרtΪw ISOC hӸ`аѨ
- <a href="http://www.FreeBSD.org/platforms/sun4v.html">FreeBSD/sun4v pM</a>C</p>
- </event>
-
- <event>
- <p>sW committerG<a href="mailto:koitsu@FreeBSD.org">Jeremy Chadwick</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>7</name>
- <event>
- <p>sW committerG<a href="mailto:farrokhi@FreeBSD.org">Babak Farrokhi</a>
- (ports)</p>
- </event>
-
- <event>
- <p>sW committerG<a href="mailto:laszlof@FreeBSD.org">Frank J. Laszlo</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>5</name>
- <event>
- <title>FreeBSD.org tξE</title>
-
- <p>Ω󴣨 FreeBSD Project lBwebBCVS FreeBSD.org AA
- YNEsƾڤߡC ڭ̭pb 11 13 P@ (ӥvзǮɶ)
- i楻EC</p>
-
- <p>hdzƹL{iɭP FreeBSD.org b̲קEeX{uȪAȰC
- bhѡAuRA (ҦpA HTML AӤ]A CGI) <a
- href="http://www.FreeBSD.org/">http://www.FreeBSD.org/</a>
- |ѪAȡC</p>
- </event>
- </day>
- </month>
-
- <month>
- <name>10</name>
-
- <day>
- <name>31</name>
- <event>
- <title>FreeBSD 6.2-BETA3 oGF</title>
-
- <p>FreeBSD 6.2 ĤT beta {w <a
- href="http://lists.freebsd.org/pipermail/freebsd-stable/2006-November/030277.html">oG</a>C
- Ω Tier-1 x ISO MɮסAwiHzLh
- <a href="http://www.FreeBSD.org/doc/zh_TW.Big5/books/handbook/mirrors-ftp.html">
- FreeBSD 蹳I</a> oC</p>
- </event>
- </day>
-
- <day>
- <name>25</name>
- <event>
- <title>Summer of Code pF</title>
-
- <p>ڭ̫D` 14 ǥͳ\aFL̪ FreeBSD <a
- href="&base;/projects/summerofcode-2006.html">Summer of
- Code</a> pC bPѻPpɮvMǥ͡A÷P <a
- href="http://www.google.com/bsd">Google</a> B禹ʡA
- ì䴣Ѹ٧UC</p>
-
- </event>
- </day>
-
- <day>
- <name>19</name>
- <event>
- <title>2006 ~ĤTu׶}oi׳i</title>
-
- <p>2006 ~ĤTu׶}oi׳i <a
- href="&base;/news/status/report-june-2006-oct-2006.html">{wo</a>A䤤ФF 49 eC</p>
- </event>
- </day>
-
- <day>
- <name>14</name>
- <event>
- <title>Ω FreeBSD GNOME 2.16.1 oGF</title>
-
- <p>GNOME 2.16.1 wgoGAäwX֨F FreeBSD
- ports treeC гX
- <a href="&enbase;/gnome/index.html">FreeBSD GNOME D</a>
- HdݥiAHέn
- <a href="&base;/gnome/docs/faq216.html">ɯūn</a>C</p>
- </event>
- </day>
-
- <day>
- <name>8</name>
- <event>
- <p>sW committerG<a
- href="mailto:syrinx@FreeBSD.org">Shteryana Shopova</a>
- (src)</p>
- </event>
- </day>
-
- <day>
- <name>5</name>
- <event>
- <title>FreeBSD 6.2-BETA2 oGF</title>
-
- <p>FreeBSD 6.2 ĤG beta {w <a
- href="http://lists.freebsd.org/pipermail/freebsd-stable/2006-October/029171.html">oG</a>C
- Ω Tier-1 x ISO MɮסAwiHzLh
- <a href="http://www.FreeBSD.org/doc/zh_TW.Big5/books/handbook/mirrors-ftp.html">
- FreeBSD 蹳I</a> oC</p>
- </event>
- </day>
- </month>
- <month>
- <name>9</name>
-
- <day>
- <name>28</name>
- <event>
- <p>sW committerG<a href="mailto:xride@FreeBSD.org">Soeren Straarup</a> (ports)</p>
- </event>
- </day>
-
- <day>
- <name>21</name>
- <event>
- <p>sW committerG<a href="mailto:jfv@FreeBSD.org">Jack F. Vogel</a>
- (src)</p>
- </event>
-
- <event>
- <title>FreeBSD 6.2-BETA1 oGF</title>
-
- <p>FreeBSD 6.2 Ĥ@ beta {w <a
- href="http://lists.freebsd.org/pipermail/freebsd-stable/2006-September/028584.html">oG</a>C
- BETA1 ISO MɮסAwiHzLh
- <a href="http://www.FreeBSD.org/doc/zh_TW.Big5/books/handbook/mirrors-ftp.html">
- FreeBSD 蹳I</a> oC</p>
- </event>
- </day>
-
- <day>
- <name>20</name>
- <event>
- <p>sW committerG<a href="mailto:chinsan@FreeBSD.org">Cs</a>
- (doc)</p>
- </event>
- </day>
-
- <day>
- <name>18</name>
- <event>
- <p>sW committerG<a href="mailto:stas@FreeBSD.org">Stanislav Sedov</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>12</name>
- <event>
- <p>sW committerG<a href="mailto:alexbl@FreeBSD.org">Alexander Botero-Lowry</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>1</name>
- <event>
- <p>sW committerG<a href="mailto:rrs@FreeBSD.org">Randall R. Stewart</a>
- (src)</p>
- </event>
- </day>
- </month>
- <month>
- <name>8</name>
-
- <day>
- <name>20</name>
- <event>
- <p>sW committerG<a href="mailto:danger@FreeBSD.org">Daniel
- Ger&zcaron;o</a> (doc)</p>
- </event>
- </day>
- </month>
-
- <month>
- <name>7</name>
- <day>
- <name>26</name>
- <event>
- <title>|ͤFs@ FreeBSD Core Team</title>
-
- <p>FreeBSD Core Team vwgC
- |Gwb <a
- href="http://docs.freebsd.org/cgi/getmsg.cgi?fetch=0+0+archive/2006/freebsd-announce/20060730.freebsd-announce">o</a> C
- </p>
- </event>
- </day>
-
- <day>
- <name>19</name>
- <event>
- <title> FreeBSD }oH Greg Lehey Podcast X</title>
-
- <p>b̷s@ <a href="http://bsdtalk.blogspot.com/">bsdtalk</a>
- podcast AWill Backman FreeBSD }oH Greg Lehey
- NLb FreeBSD M MySQL Wu@iFijXC o podcast iHzL
- <a
- href="http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk055.mp3">
- http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk055.mp3</a> ťC</p>
- </event>
- </day>
-
- <day>
- <name>18</name>
- <event>
- <p>sW committerG<a href="mailto:acm@FreeBSD.org">Jose Alonso Cardenas Marquez</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>13</name>
- <event>
- <title> FreeBSD }oH Pawel Jakub Dawidek Podcast X</title>
-
- <p>b̷s@ <a href="http://bsdtalk.blogspot.com/">bsdtalk</a>
- podcast AWill Backman FreeBSD }oH Pawel Jakub Dawidek
- NLb FreeBSD Wu@ASOO GEOM ӭpiFijXC o
- podcast iHzL <a
- href="http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk052.mp3">
- http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk052.mp3</a> ťC</p>
- </event>
- </day>
-
- <day>
- <name>12</name>
- <event>
- <title>2006 ~ĤGu׶}oi׳ioGF</title>
-
- <p>2006 ~ĤGuת}oi׳i <a
- href="&enbase;/news/status/report-apr-2006-jun-2006.html">{woG</a>A
- 䤤ФF 39 eC</p>
- </event>
- </day>
-
- <day>
- <name>5</name>
- <event>
- <title>FreeBSD |oGFΩ FreeBSD 5.5B6.1 H AMD64 xwsĶ Java</title>
-
- <p>FreeBSD |{w}lѰ Sun Microsystems UPDATE7 MΩ FreeBSD
- wsĶ Java JDK M JRE 1.5C FѧhԱA
- аѨ FreeBSD | <a
- href="http://www.freebsdfoundation.org/press/20060705-PRrelease.shtml">
- oGsD</a>C</p>
- </event>
- </day>
- </month>
-
- <month>
- <name>6</name>
-
- <day>
- <name>24</name>
- <event>
- <p>
- sW committerG<a href="mailto:rafan@FreeBSD.org">da</a>
- (ports)
- </p>
- </event>
- </day>
-
- <day>
- <name>21</name>
- <event>
- <p>
- sW committerG<a href="mailto:bsam@FreeBSD.org">Boris Samorodov</a>
- (ports)
- </p>
- </event>
- </day>
-
- <day>
- <name>19</name>
- <event>
- <p>sW committerG<a
- href="mailto:shaun@FreeBSD.org">Shaun Amott</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>5</name>
- <event>
- <p>sW committerG<a
- href="mailto:kib@FreeBSD.org">Konstantin Belousov</a>
- (src)</p>
- </event>
-
- <event>
- <p>sW committerG<a
- href="mailto:miwi@FreeBSD.org">Martin Wilke</a>
- (ports)</p>
- </event>
- </day>
- </month>
-
- <month>
- <name>5</name>
- <day>
- <name>30</name>
- <event>
- <title>bեͭpUpi</title>
-
- <p>The FreeBSD Project FWL 120 <a
- href="http://code.google.com/summerofcode.html">Google's
- Summer of Code</a> ppӽСAñqXF 14 ӶiUC
- D`ѪOAĤ@yӽлWXFǥͪWBC LA
- ڭ̹ybե~Pڭ̤@_u@C The FreeBSD Project
- @ƱzLڭ̪lCM}o׾¡A
- UaǥͤFѧhާ@tζ}oC }npUA
- O Computer Scienc Ш|n@A
- Pɤ]On}o¾~ͲP@ΪdzƱC</p>
-
- <p>X㪺ǥͩMpWiHb <a
-href="http://www.freebsd.org/projects/summerofcode.html">o</a> C <a
-href="http://wikitest.freebsd.org/moin.cgi/SummerOfCode2006">Summer of Code wiki</a> ]ѤFhӸ`TC</p>
- </event>
-
- <event>
- <title>sW committerG<a
- href="mailto:piso@FreeBSD.org">Paolo Pisati</a>
- (src)C e SoC2005 pC</title>
-
- <p><a href="mailto:piso@FreeBSD.org">Paolo Pisati</a>A
- h~ Summer of Code pǥ͡Ab~ѥ[ FreeBSD Project
- æF src/ committerC</p>
-
- </event>
- </day>
-
- <day>
- <name>26</name>
- <event>
- <title> FreeBSD }o Poul-Henning Kamp Podcast X</title>
-
- <p>b̷s <a href="http://bsdtalk.blogspot.com/">bsdtalk</a>
- podcast AWill Backman N FreeBSD W}oʱijXF FreeBSD
- }o Poul-Henning KampC o podcast iHzL <a
- href="http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk048.mp3">
- http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk048.mp3</a> ťC</p>
- </event>
- </day>
-
- <day>
- <name>25</name>
- <event>
- <title>FreeBSD 5.5-RELEASE oGF</title>
-
- <p><a href="&enbase;/releases/5.5R/announce.html">FreeBSD
- 5.5-RELEASE</a> oGFC Ьd <a
- href="&enbase;/releases/5.5R/errata.html">o檩ɻ~</a>
- HFѳ̷soͪsDMwDC <a
- href="&enbase;/releases/index.html">o檩T</a>
- ѤF FreeBSD o檩i@BԱC</p>
- </event>
- </day>
-
- <day>
- <name>21</name>
- <event>
- <title>FreeBSD b Sun T1 BzWW߹BF</title>
-
- <p>FreeBSD ثewgb <a
- href="http://www.sun.com/processors/UltraSPARC-T1/">ĥ CoolThreads
- ޳N Sun T1 Bz</a> qWa
- "make buildworld" ROAqӹFFW߹B檺ؼСC
- oǭlXثes <a
- href="http://perforce.freebsd.org/branchView.cgi?BRANCH=kmacy%5fsun4v">
- FreeBSD Perforce t</a> A
- ñNb logical domaining \৹A|X֦^x誺 CVS repositoryC
- }L{ log ɥiHb <a
- href="http://www.fsmware.com/sun4v/dmesg_latest.txt">o</a> C</p>
- </event>
- </day>
-
- <day>
- <name>17</name>
- <event>
- <p>sW committerG<a
- href="mailto:twinterg@FreeBSD.org">Thomas Wintergerst</a>
- (src)</p>
- </event>
- </day>
-
- <day>
- <name>16</name>
-
- <event>
- <title>FreeBSD 5.5-RC1 oGF</title>
-
- <p>FreeBSD 5.5 ӡAPɤ]榨̲תoԿ睊 <a
- href="http://lists.freebsd.org/pipermail/freebsd-stable/2006-May/025589.html">oGF</a>C
- RC1 ISO MɮסAwgiHqh
- <a href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/mirrors-ftp.html">
- FreeBSD 蹳I</a> oC</p>
- </event>
- </day>
-
- <day>
- <name>8</name>
- <event>
- <title>FreeBSD 6.1-RELEASE oGF</title>
-
- <p><a href="&enbase;/releases/6.1R/announce.html">FreeBSD
- 6.1-RELEASE</a> oGFC bw˫eAЬd <a
- href="&enbase;/releases/6.1R/errata.html">o檩ɻ~</a>
- HF 6.1 ̷sMwDC b <a
- href="&enbase;/releases/index.html">o檩T</a>
- WѤF FreeBSD o檩i@BTC</p>
- </event>
-
- <event>
- <title>Summer of Code ӽг̫ 1 </title>
-
- <p>Google <a
- href="http://code.google.com/summerofcode.html">Summer
- of Code 2006</a> ʪӽг̫wܤӥvɶPG
- 11:00AM PDTC FreeBSD MݭpHέԿɮvTiHb <a
- href="&enbase;/projects/summerofcode.html">here</a> C</p>
- </event>
-
- </day>
-
- <day>
- <name>7</name>
- <event>
- <p>sW committerG<a
- href="mailto:itetcu@FreeBSD.org">Ion-Mihai Tetcu</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>6</name>
- <event>
- <p>sW committerG<a
- href="mailto:stefan@FreeBSD.org">Stefan Walter</a>
- (ports)</p>
- </event>
-
- <event>
- <p>sW committerG<a
- href="mailto:sat@FreeBSD.org">Andrew Pantyukhin</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>2</name>
-
- <event>
- <title>FreeBSD 6.1-RC2 oGF</title>
-
- <p>FreeBSD 6.1 ĤGӡA]ӬO̫@ӭԿo檩 <a
- href="http://lists.freebsd.org/pipermail/freebsd-hackers/2006-May/016386.html">oGF</a>C
- RC2 ISO MɮסAiHqh
- <a href="http://www.FreeBSD.org/doc/zh_TW.Big5/books/handbook/mirrors-ftp.html">
- FreeBSD 蹳I</a> oC</p>
- </event>
- </day>
-
- <day>
- <name>1</name>
- <event>
- <title>}l Summer of Code pӽ</title>
-
- <p>FreeBSD Project {b}leť Google <a
- href="http://code.google.com/summerofcode.html">Summer
- of Code 2006</a> ppӽСC
- oӭpNb}pUǥʹѸUC
- FreeBSD MpHμbɮvWAiHb <a
- href="&enbase;/projects/summerofcode.html">o</a> C</p>
-
- <p>pGFXApHξɮvAhѻPpǥӽСA
- ô浹 GoogleC oǥӽЪ̫Oӥvɶ 2006 ~
- 5 8 17:00 (UTC ɶ 2006 ~ 5 9 ȩ])C ŬԿHA
- NbUťC аѨ <a
- href="http://code.google.com/soc/studentfaq.html">Student
- FAQ</a> HFѶi@BTC</p>
- </event>
-
- <event>
- <title>sWFΩ HighPoint RocketRAID 232x SATA RAID X</title>
-
- <p>b FreeBSD-CURRENT H RELENG_6 M RELENG_6_1 䤤A
- sWF HighPoint RocketRAID 232x tC SATA RAID X rr232x(4)C
- o@XʱN]tbNoG FreeBSD 6.1-RELEASE C</p>
- </event>
-
- <event>
- <p>commit vɡG<a
- href="mailto:delphij@FreeBSD.org"></a>
- (src, doc, ports)</p>
- </event>
- </day>
- </month>
-
- <month>
- <name>4</name>
-
- <day>
- <name>30</name>
- <event>
- <p>sW committerG<a
- href="mailto:lbr@FreeBSD.org">Lars Balker Rasmussen</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>15</name>
- <event>
- <title> FreeBSD }o Joe Marcus Clarke Podcast X</title>
-
- <p>b̷s <a href="http://bsdtalk.blogspot.com/">bsdtalk</a>
- podcastAWill Backman XݤF FreeBSD }o Joe Marcus ClarkeA
- QפFP FreeBSD W GNOME ୱҦDC o podcast iHq <a
- href="http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk032.mp3">
- http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk032.mp3</a> UC</p>
- </event>
- </day>
-
- <day>
- <name>14</name>
- <event>
- <title>2006 ~@ܤTi׳i</title>
-
- <p>{biHXݥ]t 29 ӭp 2006 ~@ܤT <a
- href="&enbase;/news/status/report-jan-2006-mar-2006.html">i׳i</a>
- FC</p>
- </event>
-
- <event>
- <title>Summer of Code</title>
-
- <p>FreeBSD Project r֦aѥ[F Google
- <a href="http://code.google.com/summerofcode.html">Summer
- of Code 2006</a> pC o@pNbեͰѻP}pѸUC
- FreeBSD MݪpMɮvԿHiHb <a
- href="&enbase;/projects/summerofcode.html">o</a> XݡC</p>
- </event>
- </day>
-
- <day>
- <name>13</name>
- <event>
- <title>FreeBSD 6.1-RC1 oGF</title>
-
- <p>FreeBSD 6.1 Ĥ@ӭԿo檩 <a
- href="http://lists.freebsd.org/pipermail/freebsd-hackers/2006-April/016104.html">oGF</a>C
- RC1 ISO MɮץiHqh
- <a href="http://www.FreeBSD.org/doc/zh_TW.Big5/books/handbook/mirrors-ftp.html">
- FreeBSD 蹳I</a> oC</p>
- </event>
- </day>
-
- <day>
- <name>11</name>
- <event>
- <title>sWFΩ Broadcom NetXtreme II dHӺX</title>
-
- <p>b FreeBSD-CURRENT sWF bce(4)A@ӥΩ
- Broadcom NetXtreme II tCdHӺXʡC
- o@XʱNܧ֦X֦ FreeBSD 6-STABLE C</p>
- </event>
- </day>
-
- <day>
- <name>6</name>
- <event>
- <title>FreeBSD |ťΩ FreeBSD wsĶ Java JDK M JRE 1.5</title>
-
- <p>FreeBSD |{b}lѥΩ FreeBSD wsĶ Java JDK M JRE
- 1.5C hӸ`AаѨ
- FreeBSD | <a
- href="http://www.freebsdfoundation.org/press/20060405-PRrelease.shtml">
- sDZ</a>C</p>
- </event>
- </day>
-
- <day>
- <name>4</name>
- <event>
- <p>sW committerG<a
- href="mailto:alepulver@FreeBSD.org">Alejandro Pulver</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>2</name>
- <event>
- <p>sW committerG<a
- href="mailto:johans@FreeBSD.org">Johan van Selst</a>
- (ports)</p>
- </event>
- </day>
- </month>
-
- <month>
- <name>3</name>
-
- <day>
- <name>31</name>
- <event>
- <p>sW committerG<a
- href="mailto:jmelo@FreeBSD.org">Jean Milanez Melo</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>15</name>
- <event>
- <title>FreeBSD 5.5-BETA4 M 6.1-BETA4 oGF</title>
-
- <p>FreeBSD 5.5 M FreeBSD 6.1 ĥ| beta <a
- href="http://lists.freebsd.org/pipermail/freebsd-hackers/2006-March/015730.html">oGF</a>C
- o BETA4 ISO MɮסAiHbh
- <a href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/mirrors-ftp.html">
- FreeBSD 蹳I</a> WoC</p>
- </event>
- </day>
- </month>
-
- <month>
- <name>2</name>
-
- <day>
- <name>22</name>
- <event>
- <p>sW committerG <a
- href="mailto:wkoszek@FreeBSD.org">Wojciech A. Koszek</a>
- (src)</p>
- </event>
- </day>
-
- <day>
- <name>20</name>
- <event>
- <title>FreeBSD 5.5-BETA2 M 6.1-BETA2 oGF</title>
-
- <p>FreeBSD 5.5 M FreeBSD 6.1 ĤG BETA {b <a
- href="http://lists.freebsd.org/pipermail/freebsd-hackers/2006-February/015499.html">iΤF</a>C
- BETA2 ISO 蹳ɮץiHqh
- <a href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/mirrors-ftp.html">
- FreeBSD 蹳I</a> @UC</p>
- </event>
- </day>
-
- <day>
- <name>18</name>
- <event>
- <title> FreeBSD }o Kirk McKusick Podcast X</title>
-
- <p>b̷s <a href="http://bsdtalk.blogspot.com/">bsdtalk</a>
- podcast AWill Backman XݤF FreeBSD }o Marshall Kirk
- McKusickC o podcast iHq <a
- href="http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk018.mp3">
- http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk018.mp3</a>
- UC</p>
- </event>
- </day>
-
- <day>
- <name>17</name>
- <event>
- <title> FreeBSD release engineer Scott Long Podcast X</title>
-
- <p>b <a href="http://bsdtalk.blogspot.com/">bsdtalk</a>
- tC podcast 17 AWill Backman XݤF FreeBSD release engineer @
- Scott LongAôNb}o FreeBSD 5.5 M 6.1 A
- HΤ@ǬDiFQסC o podcast iHq <a
- href="http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk017.mp3">
- http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk017.mp3</a>
- UC
- </p>
- </event>
- </day>
-
- <day>
- <name>13</name>
- <event>
- <p>sW committerG<a
- href="mailto:cel@FreeBSD.org">Chuck Lever</a>
- (src)</p>
- </event>
-
- <event>
- <title>YNi檺߶ FreeBSD kernel code Ūҵ{</title>
-
- <p>b 2006 ~KuN| FreeBSD Kernel Internals: An Intensive Code
- Walkthrough ҵ{C o@ҵ{Nb㦳vNq Hillside Club
- iAa}O 2286 Cedar Strett, Berkeley, CA 94709A
- qBJQնXoV_TӵϧYiFC ҵ{q 2 22 PT}lA
- 6 13 鵲ACP@Aq 6:30PM
- 9:45PMC ziHq <a
- href="http://www.mckusick.com/courses/adveveclass.html">o</a>
- FѰѥ[o@VZԱC</p>
- </event>
- </day>
-
- <day>
- <name>9</name>
- <event>
- <title>FreeBSD 5.5-BETA1 M 6.1-BETA1 oGF</title>
-
- <p>FreeBSD 5.5 M FreeBSD 6.1 BETA {b <a
- href="http://lists.freebsd.org/pipermail/freebsd-hackers/2006-February/015418.html">i</a> FC
- BETA1 ISO 蹳iHq\h
- <a href="http://www.FreeBSD.org/doc/zh_TW.Big5/books/handbook/mirrors-ftp.html">
- FreeBSD 蹳I</a> @UC</p>
- </event>
- </day>
- </month>
-
- <month>
- <name>1</name>
-
- <day>
- <name>31</name>
- <event>
- <p>commit vɡG<a
- href="mailto:cperciva@FreeBSD.org">Colin Percival</a>
- (src, ports)</p>
- </event>
- </day>
-
- <day>
- <name>26</name>
- <event>
- <title>2005 ~QܤQGi׳i</title>
-
- <p>{biHXݥ]t 26 ӭp 2005 ~QܤQG <a
- href="&enbase;/news/status/report-oct-2005-dec-2005.html">i׳i</a>
- FC</p>
- </event>
- </day>
- <day>
- <name>19</name>
- <event>
- <p>sW committerG<a
- href="mailto:matteo@FreeBSD.org">Matteo Riondato</a>
- (src)</p>
- </event>
-
- <event>
- <p>sW committerG<a
- href="mailto:vd@FreeBSD.org">Vasil Dimov</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>16</name>
- <event>
- <p>sW committerG<a
- href="mailto:rink@FreeBSD.org">Rink Springer</a>
- (src)</p>
- </event>
- </day>
- </month>
- </year>
-
- <year>
- <name>2005</name>
-
- <month>
- <name>12</name>
-
- <day>
- <name>23</name>
- <event>
- <title>FreeBSD |oGQGqT</title>
-
- <p>FreeBSD |oGF <a
- href="http://www.freebsdfoundation.org/press/2005Dec-newsletter.shtml">QGqT</a>A
- 糧~װ|ʶiF`C</p>
- </event>
- </day>
-
- <day>
- <name>21</name>
- <event>
- <p>kӪ committerG <a
- href="mailto:jasone@FreeBSD.org">Jason Evans</a>
- (src)</p>
- </event>
- </day>
-
- <day>
- <name>17</name>
- <event>
- <title>2006 ~o檩u@p</title>
-
- <p>Scott Long NIu{իťF 2006 ~תo檩u@pC
- аѨ <a
- href="http://lists.freebsd.org/pipermail/freebsd-current/2005-December/058964.html">
- i</a> HFѶi@BTC</p>
- </event>
- </day>
-
- <day>
- <name>14</name>
- <event>
- <title>b FreeBSD-CURRENT W[JF XFS uŪ</title>
-
- <p>b FreeBSD W[JF XFS tΪuŪC oǭlXͦ SGI
- ҵoG source code A GPL vC ziHb <a
- href="http://lists.freebsd.org/pipermail/freebsd-current/2005-December/058907.html">
- i</a> hTC</p>
- </event>
- </day>
-
- <day>
- <name>12</name>
- <event>
- <p>sW committerG <a
- href="mailto:anray@FreeBSD.org">Andrey Slusar</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>7</name>
- <event>
- <title>sWءG w@̪pMQk</title>
-
- <p>FreeBSD project ƦʦWM@ɦUaD}oHA
- L̤Ob source code WPiu@C OA
- ٦\hs쪺pMQkݭn[HsMA
- boǦaAFreeBSD project ݭnӦۧ@̪^몺VOC
- b FreeBSD WsWF@ءA䤤CXFo˪pC
- ɺ޳oӦC٦ݶi@BɥRAOƱbӦ
- committer @̪@ӫܦn_IC ziH <a
- href="&enbase;/projects/ideas/">bo̬dݭpC</a>C</p>
- </event>
- </day>
-
- <day>
- <name>1</name>
-
- <event>
- <title>fqV FreeBSD |m blade A cluster</title>
-
- <p>FreeBSD |FӦ۴fq@ blade tήءA
- NΧ@ third-party n骺cؤu@C oӥ]t 20 Ӹ`I HP BladeSystem
- cluster N i386 wsĶ package cعL{FTC ziH <a
- href="http://www.freebsdfoundation.org/press/20051201-PRreleaseHP.pdf">
- bo̬ݨhӸ`</a>C</p>
- </event>
-
- <event>
- <p>sW committerG <a
- href="mailto:tdb@FreeBSD.org">Tim Bishop</a>
- (ports)</p>
- </event>
- </day>
- </month>
-
- <month>
- <name>11</name>
-
- <day>
- <name>29</name>
- <event>
- <p>sW committerG <a
- href="mailto:oleg@FreeBSD.org">Oleg Bulyzhin</a>
- (src)</p>
- </event>
- </day>
-
- <day>
- <name>27</name>
-
- <event>
- <title>s峹G FreeBSD Ӱ~</title>
-
- <p>@gs峹A<a
- href="&enbase;/doc/en_US.ISO8859-1/articles/building-products/">
- FreeBSD Ӱ~</a> ФFb}o~ɻP FreeBSD
- project X@nBC \n鲣~޳NJ@jA
- OӦ۩pŦX_ܤƪ`C zLϥΦB
- ĥμePvlXAҦp FreeBSD project lX@¦A
- ÿ`og峹ҤЪ̨ιA
- }o´Nq]ӭCoJMnvqC</p>
- </event>
- </day>
-
- <day>
- <name>18</name>
-
- <event>
- <title>2005 ~CܤQi׳i</title>
-
- <p>2005 ~CܤQ몺i׳i <a
- href="&enbase;/news/status/report-july-2005-oct-2005.html">{boGF</a>A
- 䤤]AF 37 eC</p>
- </event>
- </day>
-
- <day>
- <name>5</name>
-
- <event>
- <title>FreeBSD KDE 3.4.3 oGF</title>
-
- <p>KDE 3.4.3 wgX֨F ports tree C
- nFѦ KDE 3.4.2 HӪiA
- аѨ KDE 3.4.2 <a
- href="http://www.kde.org/announcements/changelogs/changelog3_4_2to3_4_3.php">
- ק</a>C nFѶi@BTAаѨ KDE 3.4.3
- <a href="http://www.kde.org/info/3.4.3.php">T</a>C
- nFb FreeBSD WB KDE `TA
- аѾ\ FreeBSD W KDE <a href="http://freebsd.kde.org">pD</a>C</p>
- </event>
-
- <event>
- <title>FreeBSD GNOME 2.12.1 oGF</title>
-
- <p>H 6.0 oGAGNOME 2.12.1 ]wgiJ ports tree C
- аȥ\Ū <a href="&enbase;/gnome/docs/faq212.html">ɯ FAQ</a>
- HFѥקBɯūɡAHΤwDC
- z٥iHb <a href="&enbase;/gnome/index.html">FreeBSD GNOME
- D</a> WhơC</p>
- </event>
- </day>
-
- <day>
- <name>4</name>
-
- <event>
- <title>FreeBSD 6.0-RELEASE oGF</title>
-
- <p><a href="&enbase;/releases/6.0R/announce.html">FreeBSD
- 6.0-RELEASE</a> oGFC Цbw˫eѨ <a
- href="&enbase;/releases/6.0R/errata.html">o檩ɻ~</a>
- HF 6.0 ̷ssDMDC b <a
- href="&enbase;/releases/index.html">o檩T</a>
- ѤF FreeBSD o檩i@BTC</p>
- </event>
- </day>
-
- <day>
- <name>1</name>
- <event>
- <title>FreeBSD Чӳ]pjɵG</title>
-
- <p>ڭ̫D`r֦aťڭ̪Чӳ]pjɪӪ̡G Anton K. GuralC
- nFɪi@BԱAаѨ <a
- href="http://logo-contest.freebsd.org/result/">ɵG</a>C
- zLsЧӡAڭ̱NnbWiܧڭ̪A
- Pɤ]sQFDC ڭ̱NܧֵoG@ӫɩʭA
- 䤤NXϥγWhAHΥiΪ (ڶq榡) ЧӼƾڡA
- HP FreeBSD P˪ BSD voGC</p>
- </event>
- </day>
- </month>
-
- <month>
- <name>10</name>
-
- <day>
- <name>30</name>
- <event>
- <p>sW committerG <a
- href="mailto:aaron@FreeBSD.org">Aaron Dalton</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>18</name>
- <event>
- <p>sW committerG <a
- href="mailto:ariff@FreeBSD.org">Ariff Abdullah</a>
- (src)</p>
- </event>
- </day>
-
- <day>
- <name>11</name>
- <event>
- <title>FreeBSD 6.0-RC1 oGF</title>
-
- <p>FreeBSD 6.0 Ĥ@ӵoԿ睊 <a
- href="http://lists.freebsd.org/pipermail/freebsd-stable/2005-October/018790.html">oGF</a>C
- RC1 ISO 蹳AHγzL FTP wˤiHbjhƪ
- <a href="&enbase;/doc/zh_TW.Big5/books/handbook/mirrors-ftp.html">
- FreeBSD 蹳I</a> C</p>
-
- </event>
- </day>
-
- <day>
- <name>6</name>
- <event>
- <title>sW\רҡG Argentina.com</title>
-
- <p>sWF\רҡA<a
- href="&enbase;/doc/en_US.ISO8859-1/articles/casestudy-argentina.com/">
- argentina.com</a>AФFbԤBw@a ISP
- OpzLϥ FreeBSD bvEPWo\C</p>
- </event>
- </day>
-
- <day>
- <name>5</name>
- <event>
- <title>soGF</title>
-
- <p>soGFC ڭ̧Ʊs]psܱoeC
- o@O Emily Boyd b <a
- href="http://code.google.com/summerofcode.html">Google
- Summer of Code</a> pC XتA
- ºƥdbF
- <a href="http://www.FreeBSD.org/old">o</a>C
- бNzsIݪko freebsd-www@FreeBSD.org lCC</p>
- </event>
- </day>
-
- <day>
- <name>3</name>
- <event>
- <p>sW committerG <a
- href="mailto:bvs@FreeBSD.org">Vitaly Bogdanov</a>
- (doc)</p>
- </event>
-
- <event>
- <p>sW committerG <a
- href="mailto:ehaupt@FreeBSD.org">Emanuel Haupt</a>
- (ports)</p>
- </event>
-
- <event>
- <p>sW committerG <a
- href="mailto:az@FreeBSD.org">Andrej Zverev</a>
- (ports)</p>
- </event>
- </day>
- </month>
-
- <month>
- <name>9</name>
-
- <day>
- <name>18</name>
- <event>
- <p>sW committerG <a
- href="mailto:tmclaugh@FreeBSD.org">Tom McLaughlin</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>15</name>
- <event>
- <p>sW committerG <a
- href="mailto:mnag@FreeBSD.org">Marcus Alves Grando</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>7</name>
- <event>
- <title>FreeBSD 6.0-BETA4 oGF</title>
- <p><a href="http://lists.freebsd.org/pipermail/freebsd-stable/2005-September/018186.html">6.0-BETA4 oGi</a>C</p>
- </event>
- </day>
- </month>
-
- <month>
- <name>8</name>
-
- <day>
- <name>29</name>
- <event>
- <title>FreeBSD 6.0-BETA3 oGF</title>
- <p><a href="http://lists.freebsd.org/pipermail/freebsd-stable/2005-August/018061.html">6.0-BETA3 oGi</a>C</p>
- </event>
- </day>
-
- <day>
- <name>22</name>
- <event>
- <p>sW committerG <a
- href="mailto:garys@FreeBSD.org">Gary W. Swearingen</a>
- (doc)</p>
- </event>
- </day>
-
- <day>
- <name>21</name>
-
- <event>
- <title>swxG Colin Percival</title>
-
- <p>bwx 43 Ӥ뤧AJacques Vidrine
- No@¾ȥ浹F Colin PercivalC Colin Dn@~]A
- FreeBSD UpdateBportsnapBbsdiff uA
- Hγ̪ob hyperthreaded BztΤWӷPTSDפ
- "Cache missing for fun and profit"C ziHb <a
- href="http://lists.freebsd.org/pipermail/freebsd-security/2005-August/003115.html">
- o</a> i@BTC
- </p>
- </event>
- </day>
-
- <day>
- <name>17</name>
-
- <event>
- <title>W[F FreeBSD ʪ iCalendar Feed</title>
-
- <p>ϥί iCalendar 榡{n骺ΤA{biHq\
- <a href="&enbase;/events/events.ics">FreeBSD ʾ</a> FC</p>
- </event>
-
- <event>
- <title>sW峹G p FreeBSD </title>
-
- <p>sW@g峹A<a
- href="http://docs.freebsd.org/doc/9.0-RELEASE/usr/share/doc/freebsd/en_US.ISO8859-1/articles/version-guide/index.html">
- ܾAXz FreeBSD </a>A
- QפFܳ̾AXΪ FreeBSD ɩһݭnҼ{DC
- 䤤]Ao檩PAH FreeBSD-STABLE M
- FreeBSD-CURRENT @ǷϧOC ~A٤ФF FreeBSD
- }oL{pFAWcoGDnؼСA
- pޤJp\ධAäFLho檩ұĥΪkC
- og峹ؼŪ̬OdzƦw FreeBSD sΤA
- HηdzƥӶiɯŪ{ΤC</p>
- </event>
- </day>
-
- <day>
- <name>5</name>
-
- <event>
- <title>FreeBSD 6.0-BETA2 oGF</title>
-
- <p><a href="http://lists.freebsd.org/pipermail/freebsd-stable/2005-August/017586.html">6.0-BETA2 oGi</a>C</p>
- </event>
- </day>
-
- <day>
- <name>1</name>
-
- <event>
- <title>s FreeBSD/Linux ե֮</title>
-
- <p>Dru Lavigne oGF <a
- href="&enbase;/doc/en_US.ISO8859-1/articles/linux-comparison/">FreeBSDG
- Linux @ض}N~</a>C ogե֮ѪتOA
- FreeBSD ҴѪ\MnBAûP Linux
- iAC ǥM Linux
- }N~HѤF@Ӧn_IC</p>
- </event>
- </day>
- </month>
-
- <month>
- <name>7</name>
-
- <day>
- <name>22</name>
-
- <event>
- <title>2005 ~ Tܤi׳i</title>
-
- <p>2005 Tܤ몺i׳i <a
- href="&enbase;/news/status/report-mar-2005-june-2005.html">{woG</a>A
- 䤤]AF 43 ӭpC</p>
- </event>
- </day>
-
- <day>
- <name>20</name>
- <event>
- <p>sW committerG <a
- href="mailto:vsevolod@FreeBSD.org">Vsevolod Stakhov</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>18</name>
- <event>
- <p>sW committerG <a
- href="mailto:bruno@FreeBSD.org">Bruno Ducrot</a>
- (src)</p>
- </event>
- </day>
-
- <day>
- <name>16</name>
-
- <event>
- <title>ťFUbեͭp</title>
-
- <p>FreeBSD Project FWL 350 <a
- href="http://code.google.com/summerofcode.html">Google
- Summer of Code</a> pӽСA䤤XF 18 ӶiUC
- ѪOAiUƶqӽмƶqsYC
- LAڭ̹ybեͻPڭ̤@Pi~u@C FreeBSD
- Project @ƱAzLڭ̤`϶lCA
- Hζ}o׾¨UɦbեͤFѧhާ@tζ}oL{C
- }npUAOpDZШ|D`Ȫ@A
- ]OӤHn}o¾~ͲP@ndzơC</p>
-
- <p>UbեͭphTAiHq <a
- href="http://wikitest.freebsd.org/moin.cgi/SummerOfCode2005">FreeBSD
- Summer of Code Wiki</a> oC</p>
-
- </event>
- </day>
-
- <day>
- <name>15</name>
-
- <event>
- <title>FreeBSD 6.0-BETA1 oGF</title>
-
- <p><a href="http://lists.freebsd.org/pipermail/freebsd-stable/2005-July/016958.html">6.0-BETA1 oGi</a>.</p>
- </event>
- </day>
-
- <day>
- <name>11</name>
-
- <event>
- <title>6-STABLE (RELENG_6) إߤF</title>
-
- <p>ڭ̤wgFF 6.0-RELEASE L{U@Ӹ̵{OC RELENG_6
- CVS wgq HEAD WXӡC YNoG 6.0-RELEASEA
- HΩҦ 6.x ANqo@W}oC
- hԱаѨG
- <a href="&enbase;/releases/6.0R/schedule.html">6.0-RELEASE p</a>B
- <a href="http://lists.freebsd.org/pipermail/freebsd-stable/2005-July/016855.html">RELENG_6 i</a>C</p>
- </event>
-
- <event>
- <p>sW committerG <a
- href="mailto:garga@FreeBSD.org">Renato Botelho</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>6</name>
- <event>
- <p>sW committerG <a
- href="mailto:jkim@FreeBSD.org">Jung-uk Kim</a>
- (src)</p>
- </event>
- </day>
-
- <day>
- <name>2</name>
-
- <event>
- <title>2005 ~ 7 몺ַӪoGF</title>
-
- <p>FreeBSD 6-CURRENT b 2005 ~ 7 몺ַӪoGFC
- oӬO RELENG_6 Ыثe̫@ 6.0-CURRENT ַӪC
- FreeBSD Iu{յoGF 5-STABLE M 6-CURRENT
- HyH̴ը䤤s\AçﵽiaʡC
- nFѧi@BӸ`AаѨ
- <a href="&enbase;/snapshots/index.html">ַӥD</a>C</p>
- </event>
- </day>
-
- <day>
- <name>1</name>
-
- <event>
- <p>sW committerG <a
- href="mailto:wsalamon@FreeBSD.org">Wayne Salamon</a>
- (src)</p>
- </event>
- </day>
- </month>
-
- <month>
- <name>6</name>
-
- <day>
- <name>17</name>
-
- <event>
- <p>sW@̡G <a
- href="mailto:matteo@FreeBSD.org">Matteo Riondato</a>
- (PR database)</p>
- </event>
-
- <event>
- <p>sW committerG <a
- href="mailto:kmacy@FreeBSD.org">Kip Macy</a>
- (src)</p>
- </event>
- </day>
-
- <day>
- <name>11</name>
-
- <event>
- <title>6.0-RELEASE lXᵲ}l</title>
-
- <p><a href="&enbase;/releases/6.0R/schedule.html">FreeBSD
- 6.0</a> lXᵲ}lFC }oHb src/ HEAD WlXeA
- o re@FreeBSD.org \iC ziHq FTP IU
- 6.0 ̷sַӪAUճoӷs FreeBSD DnC
- nFѶi@BTAаѨ <a
- href="&enbase;/releng/index.html">Iu{</a> C</p>
- </event>
- </day>
-
- <day>
- <name>1</name>
-
- <event>
- <title>UbեͽsXu@|</title>
-
- <p>FreeBSD Project ܰaѥ[F Google
- <a href="http://code.google.com/summerofcode.html">Summer
- of Code 2005</a> pANbѻP}npbվǥʹѸUC
- FreeBSD MݪpCMԿɮviHb <a
- href="&enbase;/projects/summerofcode.html">o</a> C</p>
- </event>
-
- <event>
- <p>sW committerG <a
- href="mailto:brd@FreeBSD.org">Brad Davis</a>
- (doc)</p>
- </event>
- </day>
- </month>
-
- <month>
- <name>5</name>
-
- <day>
- <name>26</name>
-
- <event>
- <p>sW committerG <a
- href="mailto:thompsa@FreeBSD.org">Andrew Thompson</a>
- (src)</p>
- </event>
- </day>
-
- <day>
- <name>21</name>
-
- <event>
- <p>sW committerG <a
- href="mailto:rodrigc@FreeBSD.org">Craig Rodrigues</a>
- (src)</p>
- </event>
- </day>
-
- <day>
- <name>15</name>
-
- <event>
- <title>BSDCan j|`</title>
-
- <p>bӵتS@ <a href="http://www.bsdcan.org">BSD
- conference</a> |wg꺡FC e|FѪ FreeBSD
- }oHp|C SOP Dan Langille ´|ijAHΥ
- Scott Long ´p|C</p>
-
- </event>
- </day>
-
- <day>
- <name>9</name>
-
- <event>
- <title>FreeBSD 5.4-RELEASE oGF</title>
-
- <p><a href="&enbase;/releases/5.4R/announce.html">FreeBSD
- 5.4-RELEASE</a> oGFC w˫eAЬd <a
- href="&enbase;/releases/5.4R/errata.html">oɻ~</a>
- HF 5.4 Wso{DC <a
- href="&enbase;/releases/index.html">o檩T</a>
- ѤF FreeBSD o檩hTC</p>
-
- </event>
- </day>
-
- <day>
- <name>3</name>
-
- <event>
- <title>FreeBSD 5.4-RC4 oGF</title>
-
- <p>FreeBSD 5.4-RC4 wgoGC FreeBSD Iu{մr֦aťA
- {b FreeBSD 5.4-RC3AFreeBSD 5.4
- Iu{ĥ|ӵoԿ睊wgiΡC Do{jDA
- oNO̫@ӵoԿ睊C RC4 ISO MɮסA
- HγzL FTP wˤAwgiHqh
- <a href="http://www.FreeBSD.org/doc/zh_TW.Big5/books/handbook/mirrors-ftp.html"
- >FreeBSD 蹳I</a> WoC</p>
- </event>
-
- <event>
- <title>PF sF 3.7</title>
-
- <p>packet filter (pf) lXwgQsYNoG
- OpenBSD 3.7 ۦPC ]AOM anchor MstvA
- {biH FreeBSD Τ᪽ϥΤFC</p>
- </event>
- </day>
- </month>
-
- <month>
- <name>4</name>
-
- <day>
- <name>21</name>
-
- <event>
- <title>2005 ~Ĥ@u׶}oi׳i</title>
-
- <p>2005 ~Ĥ@u׶}oi׳i@ 39 ӱءAiHb <a
- href="&enbase;/news/status/report-jan-2005-mar-2005.html">o</a>XݡC</p>
- </event>
- </day>
-
- <day>
- <name>18</name>
-
- <event>
- <title>FreeBSD 5.4-RC3 oGF</title>
-
- <p>FreeBSD 5.4-RC3 wgoGC FreeBSD Iu{մr֦aťA
- {b FreeBSD 5.4-RC3AFreeBSD 5.4
- Iu{ĤTӵoԿ睊wgiΡC RC3 ISO MɮסA
- HγzL FTP wˤAwgiHqh
- <a href="http://www.FreeBSD.org/doc/zh_TW.Big5/books/handbook/mirrors-ftp.html"
- >FreeBSD 蹳I</a> WoC</p>
- </event>
- </day>
-
- <day>
- <name>13</name>
-
- <event>
- <p>sW committerG<a
- href="mailto:qingli@FreeBSD.org">Qing Li</a>
- (src)</p>
- </event>
- </day>
-
- <day>
- <name>12</name>
-
- <event>
- <p>sW committerG<a
- href="mailto:jylefort@FreeBSD.org">Jean-Yves Lefort</a>
- (ports)</p>
- </event>
-
- <event>
- <p>sW committerG<a
- href="mailto:lawrance@FreeBSD.org">Sam Lawrance</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>11</name>
-
- <event>
- <title>FreeBSD 5.4-RC2 oGF</title>
-
- <p>FreeBSD 5.4-RC2 wgoGC FreeBSD Iu{մr֦aťA
- {b FreeBSD 5.4-RC2AFreeBSD 5.4
- Iu{ĤGӵoԿ睊wgiΡC
- ڭ̹yjaoӪiաA
- HKo{䤤dDå[HץC RC2 ISO MɮסA
- HγzL FTP wˤAwgiHqh
- <a href="&enbase;/doc/zh_TW.Big5/books/handbook/mirrors-ftp.html"
- >FreeBSD 蹳I</a> WoC</p>
- </event>
- </day>
-
- <day>
- <name>7</name>
-
- <event>
- <p>sW committerG<a
- href="mailto:joel@FreeBSD.org">Joel Dahl</a>
- (doc)</p>
- </event>
- </day>
-
- <day>
- <name>5</name>
-
- <event>
- <title>FreeBSD 5.4-RC1 oGF</title>
-
- <p>FreeBSD 5.4-RC1 oGFC
- FreeBSD Iu{մr֦aťA
- {b FreeBSD 5.4-RC1AFreeBSD 5.4
- Ĥ@ӵoԿ睊wgoGC ڭ̹yHUiաA
- HKo{䤤dDå[HץC RC1 ISO MɮסA
- HγzL FTP wˤAwgiHqh
- <a href="&enbase;/doc/zh_TW.Big5/books/handbook/mirrors-ftp.html"
- >FreeBSD 蹳I</a> WC</p>
- </event>
- </day>
- </month>
-
- <month>
- <name>3</name>
-
- <day>
- <name>31</name>
-
- <event>
- <p>Wj commit vG<a href="mailto:netchild@FreeBSD.org">Alexander Leidinger</a> (src, ports)</p>
- </event>
- </day>
-
- <day>
- <name>20</name>
-
- <event>
- <title>FreeBSD 5.4-BETA1 oGF</title>
-
- <p>FreeBSD 5.4-BETA1 oGFC
- oO FreeBSD 5.4 oPĤ@ BETA ARelease Engineering
- ζyHUեHKboGeTwøѨM̲ת
- bugCwˤ ISO 蹳M FTP iHXݤjhƪ
- <a href="http://www.FreeBSD.org/doc/zh_TW.Big5/books/handbook/mirrors-ftp.html"
- >FreeBSD 蹳I</a>C</p>
- </event>
- </day>
-
- <day>
- <name>17</name>
-
- <event>
- <title>2005 ~T목ַӵo檩iΤF</title>
-
- <p>FreeBSD 6-CURRENT 2005 ~TַӪ{biΤFC
- Ъ`N몺ַӨä]A 5-STABLEA]ܧֱNoG
- 5.4-PRERELEASEC FreeBSD Release Engineering ζA
- zLoGC@ 5-STABLE M 6-CURRENT ַӪA
- ӹyH̱`ѷsSʡAôn骺iaʡC
- nFѧhӸ`AгX
- <a href="&enbase;/snapshots/index.html">ַ</a> C</p>
- </event>
- </day>
-
- <day>
- <name>12</name>
-
- <event>
- <title>GNOME 2.10.0 iHb FreeBSD WΤF</title>
-
- <p>GNOME 2.10.0 wgoGAöiJF ports treeA
- qӥiHW 5.4-RELEASE iפFC аȥ\Ūڭ̪
- <a href="&enbase;/gnome/docs/faq210.html">ɯ FAQ</a>
- HFܰʡBɯūɡAHΤwDC
- h귽AiHb <a href="&enbase;/gnome/index.html">FreeBSD GNOME
- D</a> C</p>
- </event>
- </day>
-
- <day>
- <name>7</name>
-
- <event>
- <p>sW committerG <a href="mailto:novel@FreeBSD.org">Roman Bogorodskiy</a> (ports)</p>
- </event>
- </day>
-
- <day>
- <name>3</name>
-
- <event>
- <p>sW committerG <a href="mailto:damien@FreeBSD.org">Damien Bergamini</a> (src)</p>
- </event>
- </day>
-
- <day>
- <name>1</name>
-
- <event>
- <p>sW committerG <a href="mailto:jcamou@FreeBSD.org">Jesus R. Camou</a> (doc)</p>
- </event>
-
- <event>
- <p>sW committerG <a href="mailto:flz@FreeBSD.org">Florent Thoumie</a> (ports)</p>
- </event>
- </day>
- </month>
-
- <month>
- <name>2</name>
-
- <day>
- <name>27</name>
-
- <event>
- <p>sW committerG <a href="mailto:barner@FreeBSD.org">Simon Barner</a> (ports)</p>
- </event>
- </day>
-
- <day>
- <name>22</name>
-
- <event>
- <p><a href="http://logo-contest.FreeBSD.org/">Чӳ]pv</a> ҰʡC</p>
- </event>
-
- <event>
- <p>sW committerG <a href="mailto:avatar@FreeBSD.org">Tai-hwa Liang</a> (src)</p>
- </event>
- </day>
- </month>
-
- <month>
- <name>1</name>
-
- <day>
- <name>25</name>
- <event>
- <title>FreeBSD 4.11-RELEASE oGF</title>
-
- <p><a href="&enbase;/releases/4.11R/announce.html">FreeBSD
- 4.11-RELEASE</a> oGFC wˤeЬd <a
- href="&enbase;/releases/4.11R/errata.html">o檩ɻ~</a>
- HFѷso{ 4.11 DC <a
- href="&enbase;/releases/index.html">o檩</a>
- ѤF FreeBSD o檩󬰸ԺɪơC</p>
- </event>
- </day>
-
- <day>
- <name>17</name>
-
- <event>
- <title>2004 ~ Ub~׭ppi</title>
-
- <p>z <a
- href="&enbase;/news/status/report-july-2004-dec-2004.html">{b</a>
- NiHq]tF 44 ӱتpiAӤFѥh~CQG몺poipC</p>
- </event>
-
- <event>
- <title>FreeBSD 4.11 RC3 oGF</title>
-
- <p>FreeBSD 4.11 ĤTӵoԿ睊{bwgiHϥΤFC аѨ
- FreeBSD-STABLE lCW <a
- href="http://docs.freebsd.org/cgi/mid.cgi?20050117020739.GA2736">oi</a>C
- 㪺 4.11 oGpiHb <a
- href="&enbase;/releases/4.11R/schedule.html">o</a> C</p>
- </event>
- </day>
-
- <day>
- <name>2</name>
-
- <event>
- <title>FreeBSD 4.11 RC2 oGF</title>
-
- <p>FreeBSD 4.11 ĤGӵoԿ睊{bwgiHϥΤFC аѨ
- FreeBSD-STABLE lCW <a
- href="http://docs.freebsd.org/cgi/mid.cgi?20050103054251.GA60361">o</a>
- 㪺iC 㪺 4.11 oGpiHb <a
- href="&enbase;/releases/4.11R/schedule.html">o</a> C</p>
- </event>
- </day>
- </month>
- </year>
-
- <year>
- <name>2004</name>
-
- <month>
- <name>12</name>
-
- <day>
- <name>28</name>
-
- <event>
- <title>Mozilla v FreeBSD thunderbird M firefox ports</title>
-
- <p><a href="http://www.mozilla.org/foundation/licensing.html">Mozilla vζ</a>
- wg <a href="http://people.freebsd.org/~ahze/firefox_thunderbird-approved.txt">v</a>
- <a href="/gnome/index.html">FreeBSD Gnome ζ</a>
- ϥ Firefox M Thunderbird W١BxϼСA
- HΨ@x~PwsĶC</p>
- </event>
- <event>
- <p>sW committerG <a href="mailto:sah@FreeBSD.org">Sam Hopkins</a> (src)</p>
- </event>
- </day>
-
- <day>
- <name>23</name>
-
- <event>
- <title>FreeBSD |uZoG</title>
-
- <p>FreeBSD |oGF <a
- href="http://www.freebsdfoundation.org/press/20041221-newsletter.shtml">
- uZ</a>AíɦI~i殽UH 501(c)3
- DէQOaC</p>
- </event>
- </day>
-
- <day>
- <name>18</name>
-
- <event>
- <title>FreeBSD 4.11 RC1 oGF</title>
-
- <p>FreeBSD 4.11 Ĥ@ӵoԿ睊{bwgiHϥΤFC аѨ
- FreeBSD-STABLE lCW <a
- href="http://docs.freebsd.org/cgi/getmsg.cgi?fetch=495816+0+archive/2004/freebsd-stable/20041219.freebsd-stable">㤽i</a>C
- 㪺 4.11 oGpiHb <a
- href="&enbase;/releases/4.11R/schedule.html">o</a> C</p>
- </event>
- </day>
-
- <day>
- <name>13</name>
-
- <event>
- <p>sW committerG <a
- href="mailto:niels@FreeBSD.org">Niels Heinen</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>6</name>
-
- <event>
- <p><a href="http://www.FreeSBIE.org/">FreeSBIE</a> 1.1 FreeBSD
- Live CD oGF ww Ѩ <a href="http://www.freesbie.org/doc/1.1/ANNOUNCE.txt">
- oGi</a> Fѧi@BԱC</p>
- </event>
-
- <event>
- <p>sW committerG <a
- href="mailto:girgen@FreeBSD.org">Palle Girgensohn</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>2</name>
-
- <event>
- <title>i FreeBSD 4.11 o{</title>
-
- <p>FreeBSD 4.11 o檩o{wgiA
- ڭ̪ؼЬOb 2005 ~ 1 24 oGC
- 㪺{b <a
- href="http://www.freebsd.org/releases/4.11R/schedule.html">
- o</a>C</p>
- </event>
- </day>
-
- <day>
- <name>1</name>
-
- <event>
- <p>sW committerG <a
- href="mailto:dumbbell@FreeBSD.org">Jean-S&#233;bastien P&#233;dron</a>
- (src)</p>
- </event>
- </day>
- </month>
-
- <month>
- <name>11</name>
-
- <day>
- <name>27</name>
-
- <event>
- <title>FreeBSD ӼФwJ|WU</title>
-
- <p>'FreeBSD' ӼЦb 1996 ~Q¤ Walnut Creek CDROM ({b <a
- href="http://www.freebsdmall.com">FreeBSD Mall,
- Inc.</a>) ϥΡA{bwgF <a
- href="http://www.freebsdfoundation.org">FreeBSD
- |</a> WUC</p>
- </event>
- </day>
-
- <day>
- <name>19</name>
-
- <event>
- <p>sW committerG <a
- href="mailto:carvay@FreeBSD.org">Vicente Carrasco</a>
- (doc)</p>
- </event>
- </day>
-
- <day>
- <name>11</name>
-
- <event>
- <p>sW committerG <a
- href="mailto:jkois@FreeBSD.org">Johann Kois</a>
- (doc)</p>
- </event>
- </day>
-
- <day>
- <name>7</name>
-
- <event>
- <title>GNOME 2.8.1 oGF FreeBSD </title>
-
- <p>b FreeBSD 5.3 oGAGNOME 2.8.1 wgX֨F ports tree C
- аѨ
- <a href="&enbase;/gnome/index.html">FreeBSD GNOME
- D</a> HɯŪBJC</p>
- </event>
- </day>
-
- <day>
- <name>6</name>
-
- <event>
- <title>FreeBSD 5.3-RELEASE oGF</title>
-
- <p><a href="&enbase;/releases/5.3R/announce.html">FreeBSD
- 5.3-RELEASE</a> oGFC bw˫eЬd <a
- href="&enbase;/releases/5.3R/errata.html">o檩ɻ~</a>
- HF 5.3 Wso{DMsDC <a
- href="&enbase;/releases/index.html">o檩T</a>
- ѤFho檩TC</p>
-
- </event>
- </day>
- </month>
-
- <month>
- <name>10</name>
-
- <day>
- <name>31</name>
-
- <event>
- <title>FreeBSD 5.3-RC2 oGF</title>
-
- <p>FreeBSD Release Engineering Team źƦaťA
- FreeBSD 5.3-RC2 wgiHΤFC
- ѩb RC1 դo{FYDA
- ڭ̻{ݭnAoG@ RC HoǰDץosxաC
- pGSAX{sYDAoNO 5.3-RELEASE
- e̫@ӵoժC аѨ
- FreeBSD-CURRENT W㤽iAb <a
- href="http://docs.freebsd.org/cgi/getmsg.cgi?fetch=219950+0+current/freebsd-current">o</a>C</p>
- </event>
- </day>
-
- <day>
- <name>29</name>
-
- <event>
- <p>sW committerG <a
- href="mailto:ahze@FreeBSD.org">Michael Johnson</a> (ports)</p>
- </event>
- </day>
-
- <day>
- <name>16</name>
-
- <event>
- <p>sW committerG <a
- href="mailto:remko@FreeBSD.org">Remko Lodder</a> (doc)</p>
- </event>
- </day>
-
- <day>
- <name>12</name>
- <event>
- <p>sW committerG <a
- href="mailto:gnn@FreeBSD.org">George V. Neville-Neil</a>
- (src)</p>
- </event>
- </day>
-
- <day>
- <name>8</name>
- <event>
- <p>sW committerG <a
- href="mailto:ups@FreeBSD.org">Stephan Uphoff</a>
- (src)</p>
- </event>
- </day>
-
- </month>
-
- <month>
- <name>9</name>
-
- <day>
- <name>15</name>
- <event>
- <p>sW committerG <a
- href="mailto:kwm@FreeBSD.org">Koop Mast</a>
- (ports)</p>
- </event>
-
- <event>
- <p>sW committerG <a
- href="mailto:delphij@FreeBSD.org"></a>
- (src, doc)</p>
- </event>
- </day>
-
- </month>
-
- <month>
- <name>8</name>
-
- <day>
- <name>20</name>
- <event>
- <p>sW committerG <a
- href="mailto:danfe@FreeBSD.org">Alexey Dokuchaev</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>19</name>
- <event>
- <p>sW committerG <a
- href="mailto:lesi@FreeBSD.org">Dejan Lesjak</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>18</name>
- <event>
- <p>sW committerG <a
- href="mailto:clsung@FreeBSD.org">F</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>10</name>
- <event>
- <p>sW committerG <a
- href="mailto:marck@FreeBSD.org">Dmitry Morozovsky</a>
- (doc)</p>
- </event>
- </day>
-
- <day>
- <name>5</name>
- <event>
- <p>sW committerG <a
- href="mailto:hq@FreeBSD.org">Herve Quiroz</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>2</name>
- <event>
- <p>sW committerG <a
- href="mailto:yongari@FreeBSD.org">Pyun YongHyeon</a>
- (src)</p>
- </event>
- </day>
-
- </month>
-
- <month>
- <name>7</name>
-
- <day>
- <name>27</name>
- <event>
- <p>sW committerG <a
- href="mailto:bz@FreeBSD.org">Bjoern A. Zeeb</a>
- (src)</p>
- </event>
- </day>
-
- <day>
- <name>26</name>
- <event>
- <title>2004 ~ܤi׳ioG</title>
-
- <p>ܤ몺i׳ioGFF аѨ <a
- href="&enbase;/news/status/status.html">i׳i Web
- </a> FѨTC</p> </event>
- </day>
-
- <day>
- <name>24</name>
- <event>
- <p>sW committerG <a
- href="mailto:ssouhlal@FreeBSD.org">Suleiman Souhlal</a>
- (PowerPC)</p>
- </event>
- </day>
-
- <day>
- <name>23</name>
- <event>
- <title>FreeBSD ϥ X.Org</title>
- <p>FreeBSD-CURRENT {bq{ĥ X.Org X tΡA
- XFree86 M~QC FѦpb -CURRENT M -STABLE WɯŨ X.org
- ԱAаѦ
- <a href="http://lists.freebsd.org/pipermail/freebsd-current/2004-July/032267.html">
- HEADS UP</a>C</p>
- </event>
- </day>
-
- <day>
- <name>14</name>
- <event>
- <p>sW committerG <a
- href="mailto:glebius@FreeBSD.org">Gleb Smirnoff</a>
- (src)</p>
- </event>
- </day>
-
- <day>
- <name>7</name>
- <event>
- <p>sW committerG <a
- href="mailto:sem@FreeBSD.org">Sergey Matveychuk</a>
- (ports)</p>
- </event>
- </day>
-
- </month>
-
- <month>
- <name>5</name>
-
- <day>
- <name>30</name>
- <event>
- <p>sW committerG <a
- href="mailto:lth@FreeBSD.org">Lars Thegler</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>27</name>
- <event>
- <title>FreeBSD 4.10-RELEASE oGF</title>
-
- <p><a href="&enbase;/releases/4.10R/announce.html">FreeBSD
- 4.10-RELEASE</a> wgoGFC bwˤeЭѦ <a
- href="&enbase;/releases/4.10R/errata.html">oGɻ~</a>
- HF 4.10 ̷sMwDC
- <a
- href="&enbase;/releases/index.html">Release Information</a>
- ѤF FreeBSD o檩i@BTC</p>
- </event>
- </day>
-
- <day>
- <name>23</name>
- <event>
- <p>sW committerG <a
- href="mailto:metal@FreeBSD.org">Koichi Suzuki</a>
- (doc)</p>
- </event>
- </day>
-
- <day>
- <name>15</name>
- <event>
- <title>2004 ~ 3B4 }oi׳i</title>
-
- <p> 3B4 }oi׳iAhTЬ
- <a href="&enbase;/news/status/status.html">webA</a>C
- </p>
- </event>
- </day>
-
- <day>
- <name>4</name>
- <event>
- <p>sW committerG <a
- href="mailto:csjp@FreeBSD.org">Christian S.J. Peron</a>
- (src)</p>
- </event>
- <event>
- <p>sW committerG <a
- href="mailto:stefanf@FreeBSD.org">Stefan Farfeleder</a>
- (src)</p>
- </event>
- </day>
-
- </month>
-
- <month>
- <name>4</name>
-
- <day>
- <name>30</name>
- <event>
- <p>sW committerG <a
- href="mailto:mezz@FreeBSD.org">Jeremy Messenger</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>19</name>
- <event>
- <p>sW committerG <a
- href="mailto:tackerman@FreeBSD.org">Tony Ackerman</a>
- (src)</p>
- </event>
- </day>
-
- <day>
- <name>17</name>
- <event>
- <p>sW committerG <a
- href="mailto:marius@FreeBSD.org">Marius Strobl</a>
- (src)</p>
- </event>
- </day>
-
- <day>
- <name>5</name>
- <event>
- <p>sW committerG <a
- href="mailto:dhartmei@FreeBSD.org">Daniel Hartmeier</a>
- (src)</p>
- </event>
- </day>
-
- </month>
-
- <month>
- <name>3</name>
-
- <day>
- <name>29</name>
- <event>
- <p>sW committerG <a
- href="mailto:niklas@FreeBSD.org">Niklas J. Saers</a>
- (doc)</p>
- </event>
- </day>
-
-
- <day>
- <name>25</name>
- <event>
- <title>RhF Gallery</title>
-
- <p>ѩ@xӦĬƷLAڭ̨MwRh
- <a href="&enbase;/gallery/">gallery</a> C
- oǤeNbPRAᴣ檺eNAzC
- LAoävT
- <a href="&enbase;/commercial/">Commercial Gallery</a>C</p>
- </event>
- </day>
-
- <day>
- <name>18</name>
- <event>
- <p>sW committerG <a
- href="mailto:marks@FreeBSD.org">Mark Santcroos</a>
- (src)</p>
- </event>
- </day>
-
- <day>
- <name>17</name>
- <event>
- <title>2004 ~@ܤGi׳i</title>
-
- <p>@ܤG몺i׳i{boGFF аѨ
- <a href="&enbase;/news/status/status.html">i׳i</a>
- FѧhTC</p>
- </event>
- </day>
- <day>
- <name>13</name>
- <event>
- <p>sW committerG <a
- href="mailto:thierry@FreeBSD.org">Thierry Thomas</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>10</name>
- <event>
- <p>sW committerG <a
- href="mailto:vs@FreeBSD.org">Volker Stolz</a>
- (ports)</p>
- </event>
- </day>
-
- <day>
- <name>9</name>
- <event>
- <p>sW committerG <a
- href="mailto:peadar@FreeBSD.org">Peter Edwards</a>
- (src)</p>
- </event>
- </day>
-
- </month>
-
- <month>
- <name>2</name>
-
- <day>
- <name>26</name>
- <event>
- <p>sW committerG <a
- href="mailto:vkashyap@FreeBSD.org">Vinod Kashyap</a>
- (src)</p>
- </event>
- </day>
-
- <day>
- <name>25</name>
- <event>
- <title>FreeBSD 5.2.1-RELEASE oGF</title>
-
- <p><a href="&enbase;/releases/5.2.1R/announce.html">FreeBSD
- 5.2.1-RELEASE</a> oGFC bw˫eAЬd <a
- href="&enbase;/releases/5.2.1R/errata.html">o檩ɻ~</a>
- HFѳ̷sM 5.2.1 oGҵo{DC b <a
- href="&enbase;/releases/index.html">o檩T</a>
- AziHh FreeBSD o檩TC</p>
-
- </event>
- </day>
-
- <day>
- <name>22</name>
- <event>
- <p>sW committerG <a
- href="mailto:markus@FreeBSD.org">Markus Br&#252;ffer</a>
- (Ports)</p>
- </event>
- </day>
-
- <day>
- <name>17</name>
- <event>
- <p>sW committerG <a
- href="mailto:rees@FreeBSD.org">Jim Rees</a>
- (src)</p>
- </event>
- </day>
-
- <day>
- <name>15</name>
- <event>
- <p>֤߹ζ¾G <a
- href="mailto:grog@FreeBSD.org">Greg Lehey</a> </p>
- </event>
- </day>
-
- <day>
- <name>10</name>
- <event>
- <p>sW committerG <a
- href="mailto:mlaier@FreeBSD.org">Max Laier</a>
- (src)</p>
- </event>
- </day>
-
- <day>
- <name>2</name>
- <event>
- <p>sW committerG <a
- href="mailto:le@FreeBSD.org">Lukas Ertl</a>
- (src)</p>
- </event>
-
- <event>
- <p>sW committerG <a
- href="mailto:pjd@FreeBSD.org">Pawel Jakub Dawidek</a>
- (src)</p>
- </event>
- </day>
-
- </month>
-
- <month>
- <name>1</name>
-
- <day>
- <name>28</name>
-
- <event>
- <title>2003 ~QܤQG}oi׳i</title>
-
- <p>oFQܤQG몺}oi׳iF аѨ
- <a href="&enbase;/news/status/status.html">i׳i</a>
- HFѶi@BTC</p>
- </event>
- </day>
-
- <day>
- <name>21</name>
- <event>
- <p>sW committerG<a
- href="mailto:philip@FreeBSD.org">Philip Paeps</a>
- (src)</p>
- </event>
-
- <event>
- <p>sW committerG<a
- href="mailto:cperciva@FreeBSD.org">Colin Percival</a>
- (src)</p>
- </event>
- </day>
-
- <day>
- <name>15</name>
- <event>
- <p>sW committerG<a
- href="mailto:josef@FreeBSD.org">Josef El-Rayes</a>
- (docs)</p>
- </event>
- </day>
-
- <day>
- <name>12</name>
- <event>
- <title>FreeBSD 5.2-RELEASE oGF</title>
-
- <p><a href="&enbase;/releases/5.2R/announce.html">FreeBSD
- 5.2-RELEASE</a> oGFC wˤeЬd\ <a
- href="&enbase;/releases/5.2R/errata.html">o檩ɻ~T</a>
- HKF 5.2 o᪺sDMDC <a
- href="&enbase;/releases/index.html">o檩T</a>
- ѤF FreeBSD o檩i@BTC</p>
-
- </event>
- </day>
-
- <day>
- <name>4</name>
- <event>
- <p>sW committerG <a
- href="mailto:viny@FreeBSD.org">Vincent Tougait</a>
- (p)</p>
- </event>
- </day>
-
- </month>
-
- </year>
-
-</news>
diff --git a/zh_TW.Big5/Makefile b/zh_TW.UTF-8/Makefile
index 55b5374fdf..55b5374fdf 100644
--- a/zh_TW.Big5/Makefile
+++ b/zh_TW.UTF-8/Makefile
diff --git a/zh_TW.Big5/Makefile.inc b/zh_TW.UTF-8/Makefile.inc
index 453700a49b..453700a49b 100644
--- a/zh_TW.Big5/Makefile.inc
+++ b/zh_TW.UTF-8/Makefile.inc
diff --git a/zh_TW.Big5/articles/Makefile b/zh_TW.UTF-8/articles/Makefile
index dda9fb6ed3..dda9fb6ed3 100644
--- a/zh_TW.Big5/articles/Makefile
+++ b/zh_TW.UTF-8/articles/Makefile
diff --git a/zh_TW.UTF-8/articles/Makefile.inc b/zh_TW.UTF-8/articles/Makefile.inc
new file mode 100644
index 0000000000..e9ca57f579
--- /dev/null
+++ b/zh_TW.UTF-8/articles/Makefile.inc
@@ -0,0 +1,5 @@
+#
+# $FreeBSD$
+#
+
+DESTDIR?= ${DOCDIR}/zh_TW.UTF-8/articles/${.CURDIR:T}
diff --git a/zh_TW.Big5/articles/contributing/Makefile b/zh_TW.UTF-8/articles/contributing/Makefile
index 72cfc4b491..72cfc4b491 100644
--- a/zh_TW.Big5/articles/contributing/Makefile
+++ b/zh_TW.UTF-8/articles/contributing/Makefile
diff --git a/zh_TW.UTF-8/articles/contributing/article.xml b/zh_TW.UTF-8/articles/contributing/article.xml
new file mode 100644
index 0000000000..56ff1a66e0
--- /dev/null
+++ b/zh_TW.UTF-8/articles/contributing/article.xml
@@ -0,0 +1,465 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
+ "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
+<!--
+ The FreeBSD Documentation Project
+ The FreeBSD Chinese (Traditional) Documentation Project
+
+ Original Revision: 1.506
+ Chased Revision: 1.508
+-->
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="zh_tw">
+ <info><title>幫助 FreeBSD</title>
+
+
+ <abstract>
+ <para>無論是個人或是各種組織,如果希望為 FreeBSD 提供幫助,都可以在本文中找到合適的方法。</para>
+ </abstract>
+
+ <authorgroup>
+ <author><personname><firstname>Jordan</firstname><surname>Hubbard</surname></personname><contrib>原著: </contrib></author>
+ </authorgroup>
+
+ <legalnotice xml:id="trademarks" role="trademarks">
+ &tm-attrib.freebsd;
+ &tm-attrib.ieee;
+ &tm-attrib.general;
+ </legalnotice>
+
+ <pubdate>$FreeBSD$</pubdate>
+
+ <releaseinfo>$FreeBSD$</releaseinfo>
+
+ </info>
+
+ <indexterm><primary>貢獻</primary></indexterm>
+
+ <para>你希望替 FreeBSD 做點什麼嗎?太好了,我們歡迎你。FreeBSD
+ 正是有賴於廣大使用者的貢獻才得以發展壯大的。我們不僅非常感謝您所做的貢獻,而且,這些工作對於 FreeBSD 的持續發展也至關重要。</para>
+
+
+ <para>也許與您想像的不同,您既不必得是一名出色的 Programmer,也無須和
+ FreeBSD core team 成員有很好的私交,我們會一視同仁的對待您的工作。
+ FreeBSD 的開發人員遍布全球,大家技術專長各異,年齡分布也非常廣泛。
+ 然而,每天我們都在面對持續增加的工作,而苦於沒有足夠的人手,因此我們隨時歡迎您的幫助。</para>
+
+ <para>FreeBSD 計劃所處理的是一個完整的作業系統環境,而不只是一個 kernel 或是一些零散的工具包。
+ 因此,我們的 <filename>TODO</filename> 待辦任務列表裡包含各式各樣的工作:
+ 從文件、使用者測試、demo,到系統安裝程式和更專業的 kernel 開發。
+ 因此無論您的技術水準如何,從事何種領域,都可以幫助這個計劃。</para>
+
+ <para>我們鼓勵從事和 FreeBSD 相關工作的企業和我們聯繫。
+ 您需要一些特殊的擴展來使您的產品運轉起來嗎?
+ 您會發現我們很樂意答應您的請求,除非是特別稀奇古怪的。
+ 您是否正從事相關的增值業務? 讓我們來幫助您吧,
+ 我們也許可以在某些方面相互合作。
+ 自由軟體界正在努力打破舊有的框框(像是關於軟體開發、銷售和維護),
+ 我們希望懇請您至少能給它一次機會。</para>
+
+ <sect1 xml:id="contrib-what">
+ <title>我們的需求</title>
+
+ <para>下面列出了一些需要完成的任務和子計劃,
+ 它們代表 <filename>TODO</filename>(待辦任務列表)
+ 列表的意思,以及使用者的要求。</para>
+
+ <sect2 xml:id="non-programmer-tasks">
+ <title>正在進行中的任務(非程式開發人員)</title>
+
+ <para>很多參加 FreeBSD 計劃的人不是 Programmer。
+ 這個計劃裡有文件撰寫者、網頁設計師、以及技術支援人員。
+ 對於這些義工來說,他們只需要貢獻一些時間,並且具有學習的意願。</para>
+
+ <orderedlist>
+ <listitem>
+ <para>您可以時常翻閱 FAQ 和手冊(Handbook)
+ ,如果發現有解釋不清楚的地方,或是不合時宜的文件,甚至完全不正確的地方,
+ 都請告訴我們。當然,若能順手把他們修正,並把勘誤寄給我們,那就更好了。:)
+ (SGML 其實並不難學,但我們也不反對您直接提交一般 ASCII 的純文字版本)。</para>
+ </listitem>
+
+ <listitem>
+ <para>幫助我們把 FreeBSD 文件翻譯成你的母語。
+ 如果你的母語版本已經存在了,
+ 也可以翻譯一些額外的文件,或者檢查那些已有的文件是否為最新版。
+ 您可以先簡單看看 FreeBSD 文件計劃中有關 <link xlink:href="&url.books.fdp-primer;/translations.html">翻譯時的常見問題</link>。
+ 參加翻譯工作,並不是說您要孤軍奮戰翻譯所有 FreeBSD 文件。
+ 身為義工,要做多少工作完全取決於您的意願。一旦某個人開始翻譯了,
+ 之後幾乎一定會有其他人參與到這些工作中來。
+ 如果時間有限,或者精力不夠去翻譯整份文件,那可以首先去翻譯安裝指南。</para>
+ </listitem>
+
+ <listitem>
+ <para>閱讀 &a.questions; 並偶爾翻閱(甚至有規律地這樣做) &ng.misc;
+ 。與別人分享您的專業知識,
+ 並幫助他們解決問題,是件令人愉悅的事情;
+ 有時候,您甚至可以在這個過程中學到一些新東西!
+ 這些論壇有時也會為您激發出一些不錯的想法。</para>
+ </listitem>
+ </orderedlist>
+ </sect2>
+
+ <sect2 xml:id="ongoing-programmer-tasks">
+ <title>正在進行中的任務(程式開發人員)</title>
+ <para>列在這裡的大部分任務都需要您投入可觀的時間,或者需要您在 FreeBSD kernel
+ 方面有豐富的知識,或者兩者都要。當然這裡也有很多重要的任務,適合像是
+ <quote>weekend hackers</quote> 這類只用週末就可以搞定的 Hacker。</para>
+
+ <orderedlist>
+ <listitem>
+ <para>如果您正在跑的是 FreeBSD -CURRENT 版本,並且網路速度還不錯,
+ 那麼可以到 <systemitem class="fqdomainname">current.FreeBSD.org</systemitem>,
+ 這台每天會有一個新版本 &mdash; 如果您有空,
+ 您可以三不五時下載並安裝,
+ 其間如果出了什麼問題,請告訴我們。</para>
+ </listitem>
+
+ <listitem>
+ <para>閱讀 &a.bugs;。這些問題,或許您能提供有建設性意義的意見,
+ 或者幫忙測試一些 patch 。此外,甚至可以嘗試修正其中的一些問題。</para>
+ </listitem>
+
+ <listitem>
+ <para>如果您知道有一些修正已經在 -CURRENT 上成功地使用,
+ 但在經過一段時間(通常是 2 週左右)之後,仍未合併到 -STABLE
+ (這步驟就是 MFC -- Merged From Current),那麼可以給相關的 committer 人員發封禮貌的提醒信。</para>
+ </listitem>
+
+ <listitem>
+ <para>將第三方(3rd party)軟體加入到原始碼中的
+ <filename>src/contrib</filename> 目錄。</para>
+ </listitem>
+
+ <listitem>
+ <para>確保 <filename>src/contrib</filename> 中的原始碼是最新的。</para>
+ </listitem>
+
+ <listitem>
+ <para>編譯原始碼(或是部分原始碼)時,請改用更高的警告等級(warning level)
+ 以便偵錯(debug)用,並在完成測試、確認正常完畢之後,清除這些編譯的警告等級。</para>
+ </listitem>
+
+ <listitem>
+ <para>更新那些在 ports 中使用過時的東西,
+ 例如 <function>gets()</function> 或包含
+ <filename>malloc.h</filename> 所產生的警告。</para>
+ </listitem>
+
+ <listitem>
+ <para>如果有為 ports 作了任何修正,
+ 請記得將您的 patch 發給原作者 (這樣下次升級時,您的工作會變得輕鬆一些)。</para>
+ </listitem>
+
+ <listitem>
+ <para>先取得正式的標準,如 &posix; 的副本。
+ 在 <link xlink:href="&url.base;/projects/c99/index.html">FreeBSD
+ C99 &amp; POSIX 標準相容計劃</link> 網站上,可以得到相關鏈接。
+ 請將 FreeBSD 的行為與上述的標準進行比較,若所得結果與 C99 &amp; POSIX 標準不同的話,
+ 特別是那些細節地方的微小差異,請發一個關於它的 PR (問題報告)。
+ 如果可能,請指出如何修正它,並隨 PR 提交 patch 。
+ 如果您認為標準有問題,請向這些規格標準的相關團體,請求對其進行重新的考慮。</para>
+ </listitem>
+
+ <listitem>
+ <para>為這份列表提供更多建議!</para>
+ </listitem>
+ </orderedlist>
+ </sect2>
+
+ <sect2>
+ <title>查閱整個 PR 資料庫</title>
+
+ <indexterm><primary>問題報告資料庫</primary></indexterm>
+
+ <para><link xlink:href="http://www.FreeBSD.org/cgi/query-pr-summary.cgi">FreeBSD
+ PR 列表</link> 這裡會顯示目前所有 PR 的問題狀態,以及由
+ FreeBSD 使用者提交的改進建議。
+ PR 資料庫同時包括了開發人員和非開發人員的任務。
+ 查看那些尚未解決的 PR,並看看是否有您感興趣的任務。
+ 這其中可能有一些是非常簡單的問題,只需要看一看並確認 PR 是正確的。
+ 另外一些可能會非常複雜,或者完全未附任何修正。</para>
+
+ <para>首先看一看那些還沒有人接手的 PR。
+ 如果 PR 已經分配給了其它人,但看起來是您能夠處理的,
+ 您可以寄信給那個人,並詢問您是否可以提供幫助 &mdash;
+ 他們可能已經有可供測試的 patch ,或有一些可供討論的意見。</para>
+ </sect2>
+
+ <sect2>
+ <title>由 <quote>Ideas</quote> 中選一項</title>
+
+ <para><link xlink:href="&url.base;/projects/ideas/">&os; list of
+ projects and ideas for volunteers</link> 同樣地開放給有意願參與
+ &os; 計劃的人。
+ 這份清單將持續地更新,同時提供各個項目的資訊給所有人
+ (不論是否為程式設計人員)。</para>
+ </sect2>
+ </sect1>
+
+ <sect1 xml:id="contrib-how">
+ <title>如何提供幫助</title>
+
+ <para>基本上可以分為以下 5 種方式:</para>
+
+ <sect2 xml:id="contrib-general">
+ <title>錯誤報告和意見發表</title>
+
+ <para>通常,<emphasis>一般</emphasis>
+ 的技術想法和建議應該發到 &a.hackers;。
+ 同樣地,對於這些東西有興趣的人 (當然,
+ 他們同時還要能夠容忍 <emphasis>大量的</emphasis> 郵件!)
+ 可以考慮訂閱 &a.hackers;。
+ 請參閱 <link xlink:href="&url.books.handbook;/eresources.html#ERESOURCES-MAIL">FreeBSD
+ 使用手冊</link> 以了解關於這個郵遞論壇,
+ 以及其它郵遞論壇的詳細情況。</para>
+
+ <para>如果您發現了 bug 或者想要提交某些修改,
+ 請透過 &man.send-pr.1; 程式或使用
+ <link xlink:href="&url.base;/send-pr.html">網頁介面
+ 的回報</link> 來提交。請試著填寫 PR 的每個項目。
+ 一般來說,除非 patch 檔超過 65 KB,我們建議在 PR 中直接附上 patch 就可以了。
+ 若可直接套用 patch 到原始碼的話,那麼建議在 PR 的
+ Synopsis 欄位註明 <literal>[PATCH]</literal>。
+ 對了,在附上 patch 時,請 <emphasis>不要</emphasis>
+ 透過滑鼠的『複製、貼上』來進行,因為這樣做會把 Tab 變成空格,
+ 會導致 patch 就不能用了。如果 patch 超過 20KB,
+ 請考慮壓縮它並使用 &man.uuencode.1; 來進行編碼。</para>
+
+ <para>在寫完 PR 之後,您會收到一封確認郵件以及事件追蹤編號。
+ 請保留這個編號,因為事後可以用這編號發信到 &a.bugfollowup;
+ 來回覆、提供關於該事件的後續資料。您需要做的是將編號放到郵件的標題中,
+ 例如 <literal>"Re:
+ kern/3377"</literal>。
+ 若是同一問題的回覆方面,應該透過這種方式來進行。</para>
+
+ <para>如果您在一段時間 (超過 3 天甚至 1 週,這取決於您的郵件服務)之後仍然沒有收到確認信
+ 或者由於一些原因無法使用 &man.send-pr.1; 程式,
+ 則可以發信到 &a.bugs; 來請別人幫你代寄。</para>
+
+ <para>請參閱 <link xlink:href="&url.articles.problem-reports;/article.html">這篇文章</link>
+ 了解如何撰寫好的問題報告。</para>
+ </sect2>
+
+ <sect2>
+ <title>對於文件的修訂</title>
+
+ <indexterm><primary>提交文件</primary></indexterm>
+
+ <para>文件的修改方面,是由 &a.doc; 來審查。
+ 請參閱 <link xlink:href="&url.books.fdp-primer;/index.html">FreeBSD Documentation Project Primer</link>
+ 來獲得完整的教學細節。
+ 請按照 <xref linkend="contrib-general"/> 中介紹的方法使用 &man.send-pr.1;
+ 來提交新的文件,或者改善現有的文件 (哪怕是很小的改進也是歡迎的!)。</para>
+ </sect2>
+
+ <sect2>
+ <title>對於現有原始碼的修改</title>
+
+ <indexterm><primary>FreeBSD-CURRENT</primary></indexterm>
+
+ <para>在現有原始碼上進行修改或增加功能,在某種程度上是需要更多技巧的事,
+ 並且還跟您對於目前 FreeBSD 的開發現狀了解程度有關。
+ 有多種方式可以得到被稱作 <quote>FreeBSD-CURRENT</quote>
+ 的 FreeBSD 開發版本。
+ 請參閱 FreeBSD 使用手冊的 <link xlink:href=" &url.books.handbook;/current-stable.html">相關部份</link> ,來了解使用 FreeBSD-CURRENT 的詳情。</para>
+
+ <para>在舊的原始碼上進行修改,則通常可能原始碼已過時,
+ 或與新的版本差異太大而無法被重新整合到 FreeBSD 中。
+ 如果您有訂 &a.announce; 以及 &a.current; 的話,
+ 則可以透過它們來大致了解目前的開發狀態。</para>
+
+ <para>若您能夠儘量以最新的原始碼來進行您的修改,
+ 則下一步要做的事情就是產生您所修改的 diff 檔,
+ 並將它發給 FreeBSD 的維護人員。這項工作可以透過 &man.diff.1;
+ 命令來完成。</para>
+
+ <para>提交 patch 時,建議 &man.diff.1; 格式採用 unified diff (可以用 <command>diff
+ -u</command> 來產生)。不過,如果您修改了大量的原始碼,
+ 則使用 <command>diff -c</command> 來生成的 context diff
+ 的 diff 可能更容易閱讀,因而推薦使用。一般而言,大都是採用 <command>diff -ruN</command> 即可。</para>
+
+ <indexterm>
+ <primary><command>diff</command></primary>
+ </indexterm>
+
+ <para>例如:</para>
+
+ <para>
+ <screen>&prompt.user; <userinput>diff -c oldfile newfile</userinput></screen>
+
+ 或
+
+ <screen>&prompt.user; <userinput>diff -c -r olddir newdir</userinput></screen>
+
+ 將會對特定目錄,產生 context 的 diff 檔。</para>
+
+ <para>或者像是...
+ <screen>&prompt.user; <userinput>diff -u oldfile newfile</userinput></screen>
+ 或
+ <screen>&prompt.user; <userinput>diff -u -r olddir newdir</userinput></screen>
+
+ 將產生一樣的 diff ,但是格式為 unified 。</para>
+
+ <para>更多的細節部份,請參閱 &man.diff.1;。</para>
+
+ <para>一旦您使用 &man.diff.1; 來產生 diff 檔 (可以使用
+ &man.patch.1; 命令來測試一下),就可以提交它們,以便被 FreeBSD 收錄。
+ 透過使用 <xref linkend="contrib-general"/>
+ 中所介紹的 &man.send-pr.1; 程式就可以完成這項工作。
+ 請注意:不要只把 diff 檔發到 &a.hackers;,
+ 否則它們可能會被遺忘! 我們會非常感激您提交的修改
+ (這是一個義工計劃!); 因為我們都很忙,
+ 因此有時不一定能夠立即修正問題,但 PR 資料庫將一直保持著這些記錄,
+ 因此只要有人有了時間它們就能被改正了。
+ 如果您的問題報告中包括 patch ,不要忘了在標題加上
+ <literal>[PATCH]</literal> 來強調一下。</para>
+
+ <indexterm>
+ <primary><command>uuencode</command></primary>
+ </indexterm>
+
+ <para>如果您認為合適 (例如增、刪檔案或更改檔名),
+ 還可以考慮使用
+ <command>tar</command> 來將檔案打包,然後用 &man.uuencode.1;
+ 來編碼。此外,也可以用 &man.shar.1; 產生的方式。</para>
+
+ <para>如果您的修改可能存在潛在的爭議,例如,
+ 您不確定相關的版權問題,或者感覺需要經過更嚴格的復審才可以發佈它們,
+ 則應直接發給 &a.core;,而不是透過 &man.send-pr.1; 來發送。
+ &a.core; 這小組成員大多從事 FreeBSD 的日常工作。
+ 需要注意的是,這個小組也因此十分忙碌,
+ 因此只有在非常必要的時候,才應寫信給他們。</para>
+
+ <para>請參考 &man.intro.9; 和 &man.style.9; 以了解關於撰寫程式碼的風格偏好。
+ 若能在送出相關程式碼之前,先了解這些,那對大家來說將是極大的幫助。</para>
+ </sect2>
+
+ <sect2>
+ <title>新原始碼或重要的加值軟體包</title>
+
+ <para>如果您打算提供規模較大的原始碼,或者為 FreeBSD 增加重要的新功能,
+ 則可能必須將它們透過 uuencode 進行編碼,或傳到某個 Web 或
+ FTP 站點,以便更多的人能夠得到它。如果您沒有這樣的主機,
+ 請到相關的 FreeBSD 郵遞論壇提出,看看是否有人願意幫您放置它們。</para>
+
+ <para>對於大量的原始碼而言,關於版權的問題肯定會被提出。
+ FreeBSD 基本系統中能夠使用的版權聲明包括:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>BSD<indexterm><primary>BSD 版權聲明</primary></indexterm> 版權。我們傾向於使用這類授權的原始碼,
+ 因為它『不附加多餘的條件』,因而更能夠吸引商業企業使用。
+ FreeBSD 並不反對商業公司使用它的原始碼,相反,
+ 我們積極地鼓勵商業公司使用我們的原始碼,
+ 當然,如果它們若最終能把部分原始碼,重新捐贈給 FreeBSD 就更好了。</para>
+ </listitem>
+
+ <listitem>
+ <para>GNU General Public License,或簡稱 <quote>GPL</quote>。<indexterm><primary>GPL</primary><see>GNU General Public License</see></indexterm><indexterm><primary>GNU General Public License</primary></indexterm>
+ 我們並不很歡迎使用這樣授權的原始碼,
+ 因為商業公司使用它需要做更多的工作。不過,由於很多使用
+ GPL 授權的原始碼目前是無法避免的 (compiler, assembler, text formatter等等)
+ ,拒絕使用所有採用這樣授權的軟體是很不明智的。
+ 採用 GPL 授權的原始碼會被放到原始碼的一些特定的位置,例如
+ <filename>/sys/gnu</filename> 或
+ <filename>/usr/src/gnu</filename>,以便那些認為 GPL
+ 可能會造成麻煩的人能夠作出適當的判斷。</para>
+ </listitem>
+ </orderedlist>
+
+ <para>使用其它授權的原始碼在進入 FreeBSD 之前必須經過慎重的復審和考慮。
+ 採用包含嚴厲限制的商業授權的原始碼,一般來說會被拒絕,
+ 但我們鼓勵這些原始碼的作者,透過自己的管道來發布它們。</para>
+
+ <para>若要在您的成果上加入 <quote>BSD-based</quote> 版權的話,
+ 請把下列文字放到每份原始碼的最開始部分,
+ 並用適當的文字替換 <literal>%%</literal> 之間的文字。</para>
+
+ <programlisting>Copyright (c) %%proper_years_here%%
+ %%your_name_here%%, %%your_state%% %%your_zip%%.
+ All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer as
+ the first lines of this file unmodified.
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY %%your_name_here%% ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL %%your_name_here%% BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ &#36;Id&#36;</programlisting>
+
+ <para>為了方便您的使用,在
+ <filename>/usr/share/examples/etc/bsd-style-copyright</filename>
+ 也可以找到此授權的副本。</para>
+ </sect2>
+
+ <sect2>
+ <title>贊助資金、硬體或 Internet mirror</title>
+
+ <para>我們非常願意接受各種形式的捐贈,以進一步拓展 FreeBSD 計劃
+ ,因為有您的支持,像我們這樣的義工努力才能夠有更大的成就!
+ 捐贈硬體也非常重要,因為這樣能夠幫助我們增加可支援的硬體種類,
+ 而我們中的很多人並沒有足夠的資金來購置這些硬體。</para>
+
+ <sect3 xml:id="donations">
+ <title>捐款</title>
+
+ <para>FreeBSD 基金會是一個非營利的、有課稅豁免權的基金會,
+ 之所以會建立這個基金會,是為了讓 FreeBSD 計劃能夠可長可久。
+ 因為該基金會屬 501(c)3 實體,一般而言捐款給基金會的話,可以免繳美國聯邦收入稅,
+ 以及科羅拉多州收入稅。通常對於有課稅豁免權的實體進行捐贈的話,
+ 可以折抵聯邦收入中應課稅部分的金額。</para>
+
+ <para>您可以把支票寄往:
+ <address>
+ The FreeBSD Foundation
+ <street>7321 Brockway Dr.</street>
+ <city>Boulder</city>, <state>CO</state> <postcode>80303</postcode>
+ <country>USA</country>
+ </address>
+ </para>
+
+ <para>FreeBSD 基金會現在可以透過 PayPal 從網上接受捐款。
+ 如果您想向基金會捐款,請參閱 <link xlink:href="http://www.freebsdfoundation.org">FreeBSD 基金會</link> 網站。</para>
+
+ <para>關於 FreeBSD 基金會的更多詳情,可以在 <link xlink:href="http://people.FreeBSD.org/~jdp/foundation/announcement.html">FreeBSD
+ 基金會 -- 介紹</link> 找到。要聯絡基金會,
+ 請發送電子郵件到
+ <email>bod@FreeBSDFoundation.org</email>。</para>
+ </sect3>
+
+ <sect3>
+ <title>捐贈硬體</title>
+ <indexterm><primary>捐贈</primary></indexterm>
+
+ <para>FreeBSD 計劃歡迎任何人捐贈可以使用的硬體。
+ 如果您有興趣捐贈硬體,請聯繫 <link xlink:href="&url.base;/donations/">捐贈聯絡人辦公室</link>。</para>
+ </sect3>
+
+ <sect3>
+ <title>成為 FreeBSD mirror 的網站</title>
+
+ <para>我們歡迎新的 FTP、WWW 或
+ <command>cvsup</command> mirror 站。如果您希望成為這樣的 mirror 站,
+ 請參閱 <link xlink:href="&url.articles.hubs;/index.html">如何架設 FreeBSD mirror</link>
+ 一文,以了解進一步的情況。</para>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <index/>
+</article>
diff --git a/zh_TW.Big5/articles/cvs-freebsd/Makefile b/zh_TW.UTF-8/articles/cvs-freebsd/Makefile
index f7f1f12588..f7f1f12588 100644
--- a/zh_TW.Big5/articles/cvs-freebsd/Makefile
+++ b/zh_TW.UTF-8/articles/cvs-freebsd/Makefile
diff --git a/zh_TW.UTF-8/articles/cvs-freebsd/article.xml b/zh_TW.UTF-8/articles/cvs-freebsd/article.xml
new file mode 100644
index 0000000000..8f589b7c26
--- /dev/null
+++ b/zh_TW.UTF-8/articles/cvs-freebsd/article.xml
@@ -0,0 +1,570 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
+ "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
+<!-- $FreeBSD$ -->
+<!-- The FreeBSD Documentation Project -->
+<!-- Setting up a CVS repository - the FreeBSD way -->
+<!-- Translate into Chinese by jose@jose.idv.tw -->
+<!-- English Version: 1.15 -->
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="zh_tw">
+ <info><title>建立 CVS 儲存庫(repository) - 使用 FreeBSD 的方式</title>
+
+
+ <author><personname><firstname>Stijn</firstname><surname>Hoop</surname></personname><affiliation>
+ <address><email>stijn@win.tue.nl</email></address>
+ </affiliation></author>
+
+ <pubdate>$FreeBSD$</pubdate>
+
+ <copyright>
+ <year>2001</year>
+ <year>2002</year>
+ <year>2003</year>
+ <holder role="mailto:stijn@win.tue.nl">Stijn Hoop</holder>
+ </copyright>
+
+ <releaseinfo>$FreeBSD$</releaseinfo>
+
+ <legalnotice xml:id="trademarks" role="trademarks">
+ &tm-attrib.freebsd;
+ &tm-attrib.general;
+ </legalnotice>
+
+ <abstract>
+ <para>這份文件描述了使用和 FreeBSD 專案相同的命令稿來建立 CVS 儲存庫的步驟
+ 。這和標準 CVS 建立的儲存庫相較之下有許多優點,包含了更多對於原始碼樹的
+ granular access 控制,以及為每一次的提交產生易讀的電子郵件。</para>
+ </abstract>
+ </info>
+
+ <sect1 xml:id="introduction">
+ <title>簡介</title>
+
+ <para>大多數的開放原始碼軟體專案都使用 <application>CVS</application> 作為
+ 他們的原始碼控制系統。當 <application>CVS</application> 有這樣的優點存在
+ 時,它也有部份的瑕疵和缺點。其中之一的原因是和其他的開發者分享原始碼樹能
+ 夠快速地導致系統管理的惡夢,特別是如果其中一人希望保護部份的原始碼樹免受
+ 於一般的存取。</para>
+
+ <para>FreeBSD 是其中一個使用 <application>CVS</application> 的專案,同時也
+ 是基於它的開發者遍佈於全世界。他們撰寫了一些命令稿使得管理儲存庫變得更加
+ 容易。最近這些命令稿由 &a.joe; 重新整理過且更標準化,使得在其他的專案上再
+ 次使用這些命令稿會更加容易。本文件將描述使用這些新的命令稿的方法。</para>
+
+ <para>為了使本文件中的訊息有用,你需要熟悉 <application>CVS</application>
+ 基本的操作方式。</para>
+ </sect1>
+
+ <sect1 xml:id="first-setup">
+ <title>基本設定</title>
+
+ <warning>
+ <para>最好的方式是在一個全新的儲存庫中執行這些步驟,並確定你了解所有的後
+ 果。同時,請確定你有最新且可讀的資料備份!</para>
+ </warning>
+
+ <sect2>
+ <title>初始化儲存庫</title>
+
+ <para>首先要做的是建立一個新的儲存庫,執行下列命令告訴
+ <application>CVS</application> 建立並初始化:</para>
+
+ <screen>&prompt.user; <userinput>cvs -d path-to-repository init</userinput></screen>
+
+ <para>這命令告訴 <application>CVS</application> 建立
+ <filename>CVSROOT</filename> 的目錄,這個目錄裡放置了所有的組態檔。</para>
+ </sect2>
+
+ <sect2>
+ <title>設定儲存庫的群組</title>
+
+ <para>現在我們將建立一個擁有該儲存庫的群組,所有的開發者必須加入這個群組
+ ,這樣他們才能夠存取該儲存庫。我們假設群組名稱是以 FreeBSD 內定的
+ <literal>ncvs</literal>。</para>
+
+ <screen>&prompt.root; <userinput>pw groupadd ncvs</userinput></screen>
+
+ <para>接者你需要使用 &man.chown.8; 將目錄所有者指定給剛剛新增的群組:</para>
+
+ <screen>&prompt.root; <userinput>chown -R :ncvs path-to-your-repository</userinput></screen>
+
+ <para>如此一來沒有適當的群組許可將沒有其他人可以寫入該儲存庫。</para>
+ </sect2>
+
+ <sect2>
+ <title>取回原始檔案</title>
+
+ <para>現在你需要從 FreeBSD 儲存庫中取回 <filename>CVSROOT</filename> 目錄,
+ 從 FreeBSD 匿名的 CVS 映射站來取回會是最簡單的方法。請查閱 <link xlink:href="&url.books.handbook;/anoncvs.html">在 handbook 中的相關章節</link>來
+ 獲得更多資訊。我們假設取回的檔案存放在相同目錄下的
+ <filename>CVSROOT-freebsd</filename> 目錄中。</para>
+ </sect2>
+
+ <sect2>
+ <title>複製 FreeBSD 的命令稿</title>
+
+ <para>接下來我們要複製 FreeBSD <filename>CVSROOT</filename> 裡的檔案到你
+ 的儲存庫中。如果你是孰悉於 <application>CVS</application>,你也許會想你
+ 可以直接匯入這些命令稿,試圖更容易的同時和更新的版本同步;不過,事實是
+ <application>CVS</application> 在這個部份有缺點:當匯入檔案到
+ <filename>CVSROOT</filename> 時,它並不會更新組態檔。為了要認出這些檔案
+ ,你還需要在匯入它們後一一重新提交,這就失去了
+ <literal>cvs import</literal> 的價值。因此,建議的方法是僅複製這些命令
+ 稿過去。</para>
+
+ <para>若上述內容對你沒有意義是不重要的&mdash;因為最後的結果都是一樣的。
+ 首先匯出你的 <filename>CVSROOT</filename>,然後複製剛剛取回的 FreeBSD
+ 檔案到本地的目錄中(尚未變動過):</para>
+
+ <screen>&prompt.user; <userinput>cvs -d path-to-your-repository checkout CVSROOT</userinput>
+&prompt.user; <userinput>cd CVSROOT</userinput>
+&prompt.user; <userinput>cp ../CVSROOT-freebsd/* .</userinput>
+&prompt.user; <userinput>cvs add *</userinput></screen>
+
+ <para>注意:你很可能會得到一段關於某些目錄沒有被複製的警告,這是正常的,
+ 你並不需要用到這些目錄。</para>
+ </sect2>
+
+ <sect2>
+ <title>命令稿說明</title>
+
+ <para>現在你的工作目錄中有了完整 FreeBSD 專案在它們的儲存庫中使用的命令稿
+ 的複本,以下是每個檔案簡單的介紹。</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><filename>access</filename> - 此檔案在預設的安裝中沒有被用到。
+ 這是使用在<link linkend="freebsdspecific">FreeBSD 的特殊設定</link>中
+ ,用來控制儲存庫的存取。如果你不希望使用這個設定的話你可以刪除這個檔案。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>avail</filename> - 此檔案控制儲存庫的存取。在此檔案中
+ 你可以指定允許存取儲存庫的群組,也可以針對目錄或檔案來拒絕提交。你應該
+ 調整為在你的儲存庫中將包含的群組和目錄。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>cfg.pm</filename> - 此檔案說明了設定內容,並提供預設的設定。
+ 你<emphasis>不</emphasis>該修改此檔案,而該將修改的設定放到
+ <filename>cfg_local.pm</filename>。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>cfg_local.pm</filename> - 此檔案包含所有的系統設定值
+ 。你應該設定所有列在此的設定,例如提交的郵件要寄到哪、在哪些主機上
+ 的使用者可以提交等等。更多的相關資訊在稍後會提到。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>checkoutlist</filename> - 此檔案列出所有在
+ <application>CVS</application> 控制下此目錄中的檔案,除了標準在
+ <literal>cvs init</literal> 建立出的檔案。你可以刪除某些不需要的
+ FreeBSD 特殊的檔案。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>commit_prep.pl</filename> - 此命令稿執行各種提交前的檢查,
+ 基於你是否在 <filename>cfg_local.pm</filename> 中啟用。你不該更動此檔案。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>commitcheck</filename> - 此命令稿會直接影響
+ <application>CVS</application>。首先它會使用
+ <filename>cvs_acls.pl</filename> 來檢查提交者是否可以存取指定的原始碼樹,
+ 然後執行 <filename>commit_prep.pl</filename> 來確認各種提交前的檢查。
+ 如果一切正常,<application>CVS</application> 將允許此次提交繼續執行。
+ 你不該更動此檔案。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>commitinfo</filename> - 此檔案是
+ <application>CVS</application> 用來定義在提交前所要執行的程式&mdash;在
+ 此例中是 <filename>commitcheck</filename>。你不該更動此檔案。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>config</filename> - 儲存庫的設定選項。你可以修改為你
+ 想要的,但大多數的管理者可能會保留預設值。更多關於可以在此設定的選項
+ 資訊可以查閱 <application>CVS</application> 手冊。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>cvs_acls.pl</filename> - 此命令稿定義提交者的身分,以
+ 及他/她是否允許存取原始碼樹,它是基於 <filename>avail</filename> 中
+ 的設定。你不該更動此檔案。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>cvsignore</filename> - 此檔案列出哪些檔案
+ <application>CVS</application> 不用處理到儲存庫中,你可以修改成你想
+ 要的。更多關於可以此檔案的說明可以查閱 <application>CVS</application>
+ 手冊。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>cvswrappers</filename> - 此檔案是
+ <application>CVS</application> 用來啟用或停用關鍵字展開,或者是否檔
+ 案該被視為二進位檔。你可以修改成你想要的。更多關於可以此檔案的說明
+ 可以查閱 <application>CVS</application> 手冊。注意 <literal>-t</literal>
+ 和 <literal>-f</literal> 選項在 <application>CVS</application>
+ client/server 並不能夠正確的運作。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>edithook</filename> - 此檔案已經沒有在使用了,留著只
+ 是為了某些有意義的原因。你可以安全地刪除此檔案。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>editinfo</filename> - <application>CVS</application>
+ 使用這個檔案來強迫你使用特定的編輯器。FreeBSD 沒有使用這個功能,因
+ 為輸入日誌訊息已經由 <filename>verifymsg</filename> 和
+ <filename>logcheck</filename> 來完成。這是因為
+ <filename>editinfo</filename> 功能在從遠端提交或是使用
+ <literal>-m</literal> 或 <literal>-F</literal> 選項時不會執行。你不
+ 該更動此檔案。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>exclude</filename> - 此檔案列出被
+ <filename>commit_prep.pl</filename> 定義不能包含修正版標頭的檔案。
+ 在 FreeBSD 版本的設定中,所有在修正版控制下的檔案需有一個修正版標頭
+ ,(像是 &dollar;FreeBSD&dollar;)。在此檔案中所有符合一行一個的檔
+ 案名稱將不會被檢查。你可以在此檔案中為不需要修正版標頭的檔案新增一
+ 個正規運算式。為了安裝這些命令稿,最好的方法是排除
+ <filename>CVSROOT/</filename> 會受到標頭的檢查。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>log_accum.pl</filename> - 此命令稿會處理由
+ <filename>logcheck</filename> 所提供的日誌訊息,並且將之為備份目的
+ 附加於儲存庫中的記錄檔案。同時也執行要將郵件寄到你提供的信箱中的程
+ 式(在 <filename>cfg_local.pm</filename> 中)。它和
+ <application>CVS</application> 之間是由 <filename>loginfo</filename>
+ 負責溝通。你不該更動此檔案。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>logcheck</filename> - 此檔案分析提交者提供的日誌訊息
+ ,並試圖對其作清理動作。它和 <application>CVS</application> 之間是
+ 由 <filename>verifymsg</filename> 負責溝通。你不該更動此檔案。</para>
+
+ <note><para>此命令稿依附於本地的 FreeBSD <application>CVS</application>
+ 處理:FreeBSD 版本在此命令稿修改過後才讀取日誌訊息;標準的
+ <application>CVS</application> 版本雖然能夠檢查語法上是否正確,但並
+ 不會清理日誌訊息。<application>CVS</application> 1.11.2 可以透過在
+ <filename>config</filename> 設定 <literal>RereadLogAfterVerify=always</literal>
+ 來和 FreeBSD 版本有相同的作用。</para></note>
+ </listitem>
+
+ <listitem>
+ <para><filename>loginfo</filename> - 此檔案是
+ <application>CVS</application> 用來控制日誌訊息要寄到哪裡,而
+ <filename>log_accum.pl</filename> 負責處理。你不該更動此檔案。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>modules</filename> - 此檔案保留了
+ <application>CVS</application> 原始的意義。你應該刪除新增的 FreeBSD
+ 模組,並修改為你想要的內容。更多關於可以此檔案的說明可以查閱
+ <application>CVS</application> 手冊。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>notify</filename> - 此檔案為
+ <application>CVS</application> 用來控制監看某個檔案。在 FreeBSD 的
+ 儲存庫中沒有使用到此檔案,你可以修改成你想要的。更多關於可以此檔案
+ 的說明可以查閱 <application>CVS</application> 手冊。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>options</filename> - 此檔案僅限使用於 FreeBSD 和 Debian
+ 的 <application>CVS</application> 版本。它包含了需要在修正版標頭中
+ 展開的關鍵字。你可以修改為符合你指定在 <filename>cfg_local.pm</filename>
+ 的關鍵字。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>rcsinfo</filename> - 此檔案定義提交時儲存庫所要使用的
+ 日誌訊息樣式範本,如 <filename>rcstemplate</filename>。FreeBSD 預設
+ 為所有的儲存庫使用同一個樣式範本,你可以加入其他你想要的。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>rcstemplate</filename> - 此檔案是提交者在提交時會看到
+ 的日誌訊息樣式範本,你應該修改為你定義在 <filename>cfg_local.pm</filename>
+ 的各種參數。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>tagcheck</filename> - 此檔案控制在儲存庫中貼上標籤的
+ 存取。標準的 FreeBSD 版本拒絕名為 RELENG* 的標籤,因為這是 release
+ engineering 的工作。你可以根據需要來修改此檔案。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>taginfo</filename> - 此檔案控制執行在儲存庫中貼上標籤
+ 的存取的命令稿,如 <filename>tagcheck</filename>。你不該更動此檔案。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>unwrap</filename> - 此命令稿可以用來在匯出時自動<quote>解開</quote>
+ 二進位檔(請見 <filename>cvswrappers</filename>)。現在 FreeBSD 並
+ 沒有使用此設定,因為此功能在遠端提交時並不是執行的非常完善。你不該更動此檔案。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>verifymsg</filename> - 此檔案用來執行和日誌訊息相關的
+ 命令稿,如 <filename>logcheck</filename>。你不該更動此檔案。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>wrap</filename> - 此命令稿可以用來在提交時自動<quote>包裹</quote>
+ 二進位檔(請見 <filename>cvswrappers</filename>)。現在 FreeBSD 並
+ 沒有使用此設定,因為此功能在遠端提交時並不是執行的非常完善。你不該更動此檔案。</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>自訂命令稿</title>
+
+ <para>接下來的步驟要設定這些命令稿使得它們可以在你的環境中運作。你應該檢
+ 查所有在目錄中的檔案,並修改為符合你的設定。尤其,你會想要修改下列的檔案:</para>
+
+ <procedure>
+ <step>
+ <para>如果你不希望使用<link linkend="freebsdspecific">FreeBSD 的特殊設定</link>,
+ 你可以安全地刪除 <filename>access</filename>:</para>
+
+ <screen>&prompt.user; <userinput>cvs rm -f access</userinput></screen>
+ </step>
+
+ <step>
+ <para>編輯 <filename>avail</filename> 來包含你想控制存取的各種儲存庫
+ 目錄,請確定你有保留 <literal>avail||CVSROOT</literal> 這一行,否則
+ 你將會在下一步把你自己鎖在外面。</para>
+
+ <para>另外你可以在此檔案中新增開發者的群組,FreeBSD 預設使用
+ <filename>access</filename> 來列出所有的開發者,但你可以使用任何你
+ 想要用的檔案。如果你想的話也可以新增群組(請使用指定在
+ <filename>cvs_acls.pl</filename> 上層裡的語法)。</para>
+ </step>
+
+ <step>
+ <para>編輯 <filename>cfg_local.pm</filename> 來包含你需要的選項。尤其
+ 你應該檢視一下下列的設定項目:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>%TEMPLATE_HEADERS</literal> - 這是用來取得日誌訊
+ 息內容的程序,並加入將呈現的郵件項目和提供非空值的訊息。你可
+ 以刪除 <literal>PR</literal> 和 <literal>MFC after</literal>
+ 敘述,當然也可以加入你想要的。</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>$MAIL_BRANCH_HDR</literal> - 如果你想要在每一封
+ 提交的郵件中加入描述是在哪一個分支中提交的標頭,那麼請定義為
+ 符合你的設定。如果你不想使用這樣的標頭,那麼請設定為空值。</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>@COMMIT_HOSTS</literal> - 定義使用者能夠提交的主機。</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>$MAILADDRS</literal> - 設定應該收到提交郵件的郵
+ 件位址。</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>@LOG_FILE_MAP</literal> - 以你所需要的來修改這個
+ 陣列,每個設定值應該符合被提交的目錄,而提交的日誌訊息會以
+ <filename>commitlogs</filename> 的名稱儲存在每個被設定的目錄下。</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>$COMMITCHECK_EXTRA</literal> - 如果你不想使用
+ <link linkend="freebsdspecific">FreeBSD 特殊的存取控制</link>
+ 功能,你可以在此檔案中刪除對 <literal>$COMMITCHECK_EXTRA</literal>
+ 的定義。</para>
+ </listitem>
+ </itemizedlist>
+
+ <note><para>修改 <literal>$IDHEADER</literal> 的功能只有在 FreeBSD
+ 平台上可以運作,它是相依在 FreeBSD 的特殊 <application>CVS</application>
+ 設定上。</para></note>
+
+ <para>你可以檢查 <filename>cfg.pm</filename> 是否有其他的參數可以修改
+ ,但是修改最好是有原因的。</para>
+ </step>
+
+ <step>
+ <para>刪除 <filename>exclude</filename> 中關於FreeBSD 的特殊設定的敘
+ 述(如以 <literal>^ports/</literal> 為開頭的每一行等)。此外,註解
+ 掉以 <literal>^CVSROOT/</literal> 為開頭的行列,然後新增一行只有
+ <literal>^CVSROOT/</literal>。等到關鍵字展開的命令稿安裝好後,你可
+ 以在 <filename>CVSROOT</filename> 目錄中的檔案裡加上標頭,然後再恢
+ 復剛剛註解的行列,但在你還沒有提交前則只保持這樣。</para>
+ </step>
+
+ <step>
+ <para>編輯 <filename>modules</filename>,並刪除所有 FreeBSD 的群組。
+ 加入你需要的模組。</para>
+ </step>
+
+ <step>
+ <note><para>此步驟只有在你於 <filename>cfg_local.pm</filename> 中指定
+ 了 <literal>$IDHEADER</literal> 才有必要設定(只有在 FreeBSD 的特殊
+ <application>CVS</application> 設定上才能夠執行)。</para></note>
+
+ <para>編輯 <filename>options</filename> 以符合你在
+ <filename>cfg_local.pm</filename> 中設定的標籤名稱。並在所有的檔案
+ 中搜尋 <literal>FreeBSD</literal> 並替換為你設定的標籤名稱。</para>
+ </step>
+
+ <step>
+ <para>修改 <filename>rcstemplate</filename> 為和在
+ <filename>cfg_local.pm</filename> 中相同的設定。</para>
+ </step>
+
+ <step>
+ <para>選擇性的刪除在 <filename>tagcheck</filename> 中針對 FreeBSD 檢
+ 查的設定。你可以僅僅在檔案的最上層加上 <literal>exit 0</literal> 來
+ 取消所有標籤的檢查。</para>
+ </step>
+
+ <step>
+ <para>在你完成前的最後一件事是確認 commitlogs 可以正確儲存。預設會儲
+ 存在儲存庫中的 <filename>commitlogs</filename> 子目錄中,而這個目錄
+ 需要先建立:</para>
+
+ <screen>&prompt.user; <userinput>mkdir commitlogs</userinput>
+&prompt.user; <userinput>cvs add commitlogs</userinput></screen>
+ </step>
+ </procedure>
+
+ <para>現在,在細心的檢視過後,你可以提交你的修改了。確定你先前有在
+ <filename>avail</filename> 中允許你自己存取 <filename>CVSROOT</filename>
+ 目錄,因為如果沒有這樣做的話你會把你自己鎖在外面。完整確認過後請執行下
+ 列命令:</para>
+
+ <screen>&prompt.user; <userinput>cvs commit -m '- Initial FreeBSD scripts commit'</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>測試設定</title>
+
+ <para>你已經準備好做基本的測試了:強制提交 <filename>avail</filename>
+ 以確認每件事都如預期的運作。</para>
+
+ <screen>&prompt.user; <userinput>cvs commit -f -m 'Forced commit to test the new CVSROOT scripts' avail</userinput></screen>
+
+ <para>如果一切正常,那麼恭喜了!你現在已經為你的儲存庫建立好 FreeBSD 的命
+ 令稿了。如果 <application>CVS</application> 仍然有警告什麼,回頭檢視上
+ 述的步驟是否有正確的執行。</para>
+ </sect2>
+ </sect1>
+
+ <sect1 xml:id="freebsdspecific">
+ <title>FreeBSD 的特殊設定</title>
+
+ <para>FreeBSD 專案自己使用一個有點不同的設定,那就是同時也使用 FreeBSD
+ <filename>CVSROOT</filename> 中的 <filename>freebsd</filename> 子目錄。因
+ 為大量的提交者必須在相同的群組中,因此專案寫了一個簡單的 wrapper 來確認提
+ 交者可以正確的提交,並設定儲存庫的群組名稱。</para>
+
+ <para>如果你的儲存庫也需要這樣的功能,那麼下面就會介紹如何建立,不過首先要
+ 先來看一段複雜的概述。</para>
+
+ <sect2>
+ <title>FreeBSD 設定中使用的檔案</title>
+
+ <itemizedlist>
+ <listitem>
+ <para><filename>access</filename> - 此檔案用來控制儲存庫的存取。你
+ 應該編輯並加入所有在專案中的成員。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>freebsd/commitmail.pl</filename> - 此檔案已經沒有在
+ 使用了,留著只是為了某些有意義的原因。你不該更動此檔案。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>freebsd/cvswrap.c</filename> - 此 CVS wrapper 原始
+ 碼是用來建立檢查所有存取的工作。更多的訊息在稍後會提出。你應該編
+ 輯 <literal>ACCESS</literal> 和 <literal>REALCVS</literal> 的路徑
+ 以符合你的設定。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>freebsd/mailsend.c</filename> - 此檔案是 FreeBSD 設
+ 定 mailing lists 需要的,你不該更動此檔案。</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>步驟</title>
+
+ <procedure>
+ <step>
+ <para>只有加入你的使用者名稱到 <filename>access</filename> 中。</para>
+ </step>
+
+ <step>
+ <para>編輯 <filename>cvswrap.c</filename> 的路徑以符合你的設定,定義
+ 在大寫的 <literal>ACCESS</literal> 中。同時如果預設值不符合你的情況
+ 的話也應該修改本地實際的 <command>cvs</command> 程式所在位置。原始
+ 的 <filename>cvswrap.c</filename> 希望替代伺服端的 CVS 程式,例如可
+ 能會是 <filename>/usr/bin/ncvs</filename>。</para>
+
+ <para>我的 <filename>cvswrap.c</filename> 是這樣:</para>
+
+ <programlisting>#define ACCESS "/local/cvsroot/CVSROOT/access"
+#define REALCVS "/usr/bin/ncvs"</programlisting>
+ </step>
+
+ <step>
+ <para>接下來是建立 wrapper 來確認你在提交時是在正確的群組中。
+ 在你的 <filename>CVSROOT</filename> 中的
+ <filename>cvswrap.c</filename> 要能夠使用。</para>
+
+ <para>在你完成編輯並加入正確的路徑後我們要來編譯原始碼:</para>
+
+ <screen>&prompt.user; <userinput>cc -o cvs cvswrap.c</userinput></screen>
+
+ <para>然後進行需要設定(此步驟需要 root 權限):</para>
+
+ <screen>&prompt.root; <userinput>mv /usr/bin/cvs /usr/bin/ncvs</userinput>
+&prompt.root; <userinput>mv cvs /usr/bin/cvs</userinput>
+&prompt.root; <userinput>chown root:ncvs /usr/bin/cvs /usr/bin/ncvs</userinput>
+&prompt.root; <userinput>chmod o-rx /usr/bin/ncvs</userinput>
+&prompt.root; <userinput>chmod u-w,g+s /usr/bin/cvs</userinput></screen>
+
+ <para>這會將 wrapper 安裝成預設的 <command>cvs</command> 程式,請確定
+ 任何要使用儲存庫的人應該有正確的存取權限。</para>
+ </step>
+
+ <step>
+ <para>現在你可以刪除所有在儲存庫群組中的使用者,所有的存取控制會經由
+ wrapper 完成,同時 wrapper 會設定存取的正確群組。</para>
+ </step>
+ </procedure>
+ </sect2>
+
+ <sect2>
+ <title>測試設定</title>
+
+ <para>你的 wrapper 現在應該已經安裝好了,你當然也可以強制提交
+ <filename>access</filename> 來測試是否正常:</para>
+
+ <screen>&prompt.user; <userinput>cvs commit -f -m 'Forced commit to test the new CVSROOT scripts' access</userinput></screen>
+
+ <para>同樣地,如果有錯誤,檢查是否上述所有步驟都有正確的執行。</para>
+ </sect2>
+ </sect1>
+</article>
diff --git a/zh_TW.Big5/articles/freebsd-questions/Makefile b/zh_TW.UTF-8/articles/freebsd-questions/Makefile
index e0524136c2..e0524136c2 100644
--- a/zh_TW.Big5/articles/freebsd-questions/Makefile
+++ b/zh_TW.UTF-8/articles/freebsd-questions/Makefile
diff --git a/zh_TW.Big5/articles/freebsd-questions/article.xml b/zh_TW.UTF-8/articles/freebsd-questions/article.xml
index 564e73222e..ad017406e0 100644
--- a/zh_TW.Big5/articles/freebsd-questions/article.xml
+++ b/zh_TW.UTF-8/articles/freebsd-questions/article.xml
@@ -1,11 +1,11 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
<!--
Original revision: 1.24
-->
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="zh_tw">
- <info><title>pb FreeBSD-questions mailing list Wo쥿</title>
+ <info><title>如何在 FreeBSD-questions mailing list 上得到正解</title>
<author><personname><firstname>Greg</firstname><surname>Lehey</surname></personname><affiliation>
@@ -26,15 +26,15 @@
<releaseinfo>$FreeBSD$</releaseinfo>
<abstract>
- <para>DnOdzƼgH FreeBSD-questions mailing list HѤ@ǰѦҡC
- ڭ̷|A@ǵoݪޥPijAHKAױo󦳥ΪСC</para>
+ <para>本文主要是給準備寫信到 FreeBSD-questions mailing list 的人提供一些參考。
+ 我們會給你一些發問的技巧與建議,以便讓你的答案得到更有用的答覆。</para>
- <para>|wo FreeBSD-questions mailing list WC</para>
+ <para>本文會定期發到 FreeBSD-questions mailing list 上。</para>
</abstract>
</info>
<sect1>
- <title xml:id="Introduction">²</title>
+ <title xml:id="Introduction">簡介</title>
<para><literal>FreeBSD-questions</literal> is a mailing list maintained by
the FreeBSD project to help people who have questions about the normal
diff --git a/zh_TW.Big5/articles/hubs/Makefile b/zh_TW.UTF-8/articles/hubs/Makefile
index f04f8a971f..f04f8a971f 100644
--- a/zh_TW.Big5/articles/hubs/Makefile
+++ b/zh_TW.UTF-8/articles/hubs/Makefile
diff --git a/zh_TW.Big5/articles/hubs/article.xml b/zh_TW.UTF-8/articles/hubs/article.xml
index 8d94d4a2c2..8e73b481b7 100644
--- a/zh_TW.Big5/articles/hubs/article.xml
+++ b/zh_TW.UTF-8/articles/hubs/article.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
<!-- $FreeBSD$ -->
@@ -35,23 +35,23 @@
<releaseinfo>$FreeBSD$</releaseinfo>
<abstract>
- <para>oO٦bZ峹ADnO(רOUϺߺ޲z̪Ѧ)Цp mirror FreeBSDC</para>
+ <para>這是份還在草稿中的文章,主要是(尤其是給各區網中心管理者的參考)介紹如何 mirror FreeBSD。</para>
</abstract>
</info>
<sect1 xml:id="mirror-contact">
- <title>pô覡</title>
+ <title>聯繫方式</title>
- <para>Yn Mirror ժ̡AiH email <email>mirror-admin@FreeBSD.org</email>C~Ao̤]
- &a.hubs;C</para>
+ <para>若要找整個 Mirror 機制的協調者,可以 email 到 <email>mirror-admin@FreeBSD.org</email>。此外,這裡也有份
+ &a.hubs;。</para>
</sect1>
<sect1 xml:id="mirror-requirements">
- <title> FreeBSD mirrors Ʊ</title>
+ <title>成為 FreeBSD mirrors 的必備條件</title>
<sect2 xml:id="mirror-diskspace">
- <title>wЪŶ</title>
+ <title>硬碟空間</title>
<para>
- wЪŶO̭nƱ󤧤@C
+ 硬碟空間是最重要的必備條件之一。
Depending on the set of releases, architectures,
and degree of completeness you want to mirror, a huge
amount of disk space may be consumed. Also keep in mind
@@ -66,20 +66,20 @@
Here are some approximate figures:
</para>
<itemizedlist>
- <listitem><para> FTP Distribution: 126 GB</para></listitem>
+ <listitem><para>完整 FTP Distribution: 126 GB</para></listitem>
<listitem><para>CVS repository: 2.7 GB</para></listitem>
<listitem><para>CTM deltas: 1.8 GB</para></listitem>
<listitem><para>Web pages: 300 MB</para></listitem>
</itemizedlist>
</sect2>
<sect2 xml:id="mirror-bandwidth">
- <title>We</title>
+ <title>網路頻寬</title>
<para>
- MAA@wnsW InternetC
- WeݨDh֡AonݧAҷQn mirror {צөwC
- YuQn mirror @ FreeBSD ɮץH@ intranet γ~A
- WeݨD|񦨬@Aȥγ~p@ǡC
- YQ official mirror @ܡAWeNեoW[~ΡCHUAڭ̶ȦCX@ǦpȥHѦҡG
+ 當然,你一定要能連上 Internet。
+ 頻寬需求多少,這要看你所想要的 mirror 程度而定。
+ 若只想要 mirror 一部份的 FreeBSD 檔案以作為網站或 intranet 的局部用途,
+ 那麼頻寬需求會明顯比成為公共服務用途的小一些。
+ 若想成為 official mirror 之一的話,那麼頻寬就勢必得增加才夠用。以下,我們僅列出一些估計值以做為參考:
</para>
<itemizedlist>
<listitem><para>Local site, no public access: basically no minimum,
@@ -90,7 +90,7 @@
</itemizedlist>
</sect2>
<sect2 xml:id="mirror-system">
- <title>tλݨDBCPUBRAM</title>
+ <title>系統需求、CPU、RAM</title>
<para>
One thing this depends on the expected number of clients,
which is determined by the server's policy. It is
@@ -880,25 +880,25 @@ cvspserver stream tcp nowait root /usr/bin/cvs cvs -f -l -R -T /anoncvstmp --all
<sect1 xml:id="mirror-official">
<title>Official Mirrors</title>
<para>
- Official mirrors 㦳UC mirror
+ Official mirrors 站為具有下列條件的 mirror 站
<itemizedlist>
<listitem>
<para>
- a) <systemitem>FreeBSD.org</systemitem> DNS entry
- (q` CNAME )C
+ a) 有 <systemitem>FreeBSD.org</systemitem> DNS entry
+ (通常為 CNAME 紀錄)。
</para>
</listitem>
<listitem>
<para>
- b) Q FreeBSD C offical mirror (O handbook)C
+ b) 被 FreeBSD 文件列為 offical mirror 站(像是 handbook)。
</para>
</listitem>
</itemizedlist>
- FHWz覡ӤO_ official mirrors ~A
- Official mirrors @wo <emphasis>Tier-1</emphasis>-mirrors C
- MӡAunO <emphasis>Tier-1</emphasis>-mirror ܡAN@w|O
- official mirrors C
+ 除了以上述方式來分辨是否為 official mirrors 站之外,
+ Official mirrors 站不一定得為 <emphasis>Tier-1</emphasis>-mirrors 站。
+ 然而,只要是 <emphasis>Tier-1</emphasis>-mirror 站的話,就一定會是
+ official mirrors 站。
</para>
<sect2 xml:id="mirror-official-requirements">
<title>Special Requirements for official (tier-1) mirrors</title>
diff --git a/zh_TW.Big5/articles/mailing-list-faq/Makefile b/zh_TW.UTF-8/articles/mailing-list-faq/Makefile
index 53a873470a..53a873470a 100644
--- a/zh_TW.Big5/articles/mailing-list-faq/Makefile
+++ b/zh_TW.UTF-8/articles/mailing-list-faq/Makefile
diff --git a/zh_TW.UTF-8/articles/mailing-list-faq/article.xml b/zh_TW.UTF-8/articles/mailing-list-faq/article.xml
new file mode 100644
index 0000000000..d85000e6e7
--- /dev/null
+++ b/zh_TW.UTF-8/articles/mailing-list-faq/article.xml
@@ -0,0 +1,416 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
+ "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
+<!-- $FreeBSD$ -->
+<!-- The FreeBSD Documentation Project -->
+<!-- FreeBSD Mailing Lists 常見問答集 -->
+<!-- Translate into Chinese by chinsan.tw@gmail.com -->
+<!-- English Version: 1.7 -->
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="zh_tw">
+ <info><title>&os; Mailing Lists 常見問答集</title>
+
+
+ <authorgroup>
+ <author><personname><surname>The &os; Documentation Project</surname></personname></author>
+ </authorgroup>
+
+ <copyright>
+ <year>2004</year>
+ <year>2005</year>
+ <year>2006</year>
+ <holder>&os; 文件計畫</holder>
+ </copyright>
+
+ <pubdate>$FreeBSD$</pubdate>
+
+ <releaseinfo>$FreeBSD$</releaseinfo>
+
+ <abstract>
+ <para>這是有關 &os; mailing lists 的 FAQ。如果您對協助本文件/翻譯計畫
+ 的進行有興趣的話,請寄 e-mail 到
+ &a.doc;。此外,隨時可從 <link xlink:href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/mailing-list-faq/index.html">
+ FreeBSD 網站</link> 拿到這份文件的最新版本。
+ 也可以利用 HTTP 來下載 <link xlink:href="article.html">HTML</link>
+ 文件,或是經由 <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">
+ FreeBSD FTP 站</link> 下載純文字、&postscript;、或 PDF 版本的檔案。
+ 您也可以在這裡使用
+ <link xlink:href="&url.base;/search/search.html">搜尋 FAQ 資料</link>
+ 的功能。</para>
+ </abstract>
+ </info>
+
+ <sect1 xml:id="introduction">
+ <title>前言</title>
+
+ <para>如同其他 FAQs 一樣,本文主要目的是希望涵蓋在 &os; mailing
+ lists 上面的常見問題(當然,包括答案)。
+ 雖然,原本構想是希望能降低這些重複問題的網路流量,但如今已被公認 FAQs 也是相當好用的資源之一。</para>
+
+ <para>本文主要是描述社群之間所培養的一些禮儀(或默契),但本文本身並非『聖旨』般的權威。
+ 若發現本文內有任何技術瑕疵,或者是想建議可以增加哪些部分的話,請送 PR,或是 email 到 &a.doc;。謝囉!</para>
+
+ <qandaset>
+ <qandaentry>
+ <question xml:id="purpose">
+ <para>&os; mailing lists 的目的為何?</para>
+ </question>
+
+ <answer>
+ <para>&os; mailing lists 主要是提供 &os; 社群間的溝通管道,這裡有各式專題領域的探討,以及興趣交流。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question xml:id="audience">
+ <para>&os; mailing lists 的參與者有哪些?</para>
+ </question>
+
+ <answer>
+ <para>這個問題,要看各個 list 的『版規(charter)』定位而有所不同。有些 lists 主要是 developers 在參與討論的;
+ 而有些則主要是幾乎整體 &os; 社群都可以隨意參與討論的。請看 <link xlink:href="http://lists.FreeBSD.org/mailman/listinfo">這份清單</link> 上面有目前所有 list 的摘要說明。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question xml:id="participation-who">
+ <para>&os; mailing lists 對任何人都是開放參與的嗎?</para>
+ </question>
+
+ <answer>
+ <para>再重複一次,這要看各個 list 的『版規(charter)』定位而有所不同。
+ 請在發文前,先注意閱讀該 list 的『版規(charter)』,並遵守相關原則。
+ 如此一來,才會讓大家都能溝通更無礙。</para>
+
+ <para>如果看了上一個問答內的清單之後,還是不清楚要到哪個 list 去發問的話,
+ 那麼可以試著把問題丟到 freebsd-questions 看看(但請先看下面講的補充)。</para>
+
+ <para>請注意:習慣上所有 mailing lists 都是開放發表討論的,也不必得先成為訂閱會員才行。
+ 這是相當審慎的選擇,來讓參與 &os; 社群更輕鬆容易,並鼓勵互相分享彼此的想法。
+ 然而,由於過去有些人的濫用,有些 lists 現在開始限制參與討論的部分,以避免不必要的困擾。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question xml:id="subscribe">
+ <para>要怎麼訂閱呢?</para>
+ </question>
+
+ <answer>
+ <para>可以用 <link xlink:href="http://lists.FreeBSD.org/mailman/listinfo">
+ Mailman 網頁介面</link> 來訂閱任何公開的 lists。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question xml:id="unsubscribe">
+ <para>要怎麼退訂?</para>
+ </question>
+
+ <answer>
+ <para>一樣請用剛上面說的網頁介面,或者 mailing list 上面每封信結尾處都會有相關 URL 連結的指示說明。</para>
+
+ <para>千萬請不要直接寫信到這些公開的 mailing lists 說你要退訂。
+ 首先呢..因為本來就不是這樣退訂的,其次你會惹來眾怒而招來圍剿、筆戰。
+ 這是很典型的退訂錯誤示範,請不要這樣做。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question xml:id="archives">
+ <para>可以找到舊信的資料庫嗎?</para>
+ </question>
+
+ <answer>
+ <para>嗯,有!可以在 <link xlink:href="http://docs.FreeBSD.org/mail/">這邊</link>
+ 找到相關的舊信資料庫(archive)。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question xml:id="digest">
+ <para>mailing lists 可有摘要版呢?</para>
+ </question>
+
+ <answer>
+ <para>當然也有,請看 <link xlink:href="http://lists.FreeBSD.org/mailman/listinfo">
+ Mailman 網頁介面</link>。</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </sect1>
+
+ <sect1 xml:id="etiquette">
+ <title>Mailing List 的參與禮儀</title>
+
+ <para>在 mailing lists 上參與討論,就像在其他社群一樣,我們都需要一些溝通上的共識。
+ 發言請注重禮儀(或默契),切勿無的放矢。</para>
+
+ <qandaset>
+ <qandaentry>
+ <question xml:id="before-posting">
+ <para>在發文之前,有什麼注意事項呢?</para>
+ </question>
+
+ <answer>
+ <para>最重要的是你已經看了這篇文章,然而,若您對 &os; 不熟的話,
+ 可能需要先廣泛閱讀
+ <link xlink:href="&url.base;/docs/books.html">相關書籍及文章</link>
+ 來先熟悉這套作業系統和一些典故,尤其是其中的 <link xlink:href="&url.books.faq;/index.html">
+ &os; 常見問答集 (FAQ)</link> 文件,
+ <link xlink:href="&url.books.handbook;/index.html">
+ &os; 使用手冊(Handbook)</link>,
+ 以及相關文章:<link xlink:href="&url.articles.freebsd-questions;/article.html">
+ How to get best results from the FreeBSD-questions mailing list</link>、
+ <link xlink:href="&url.articles.explaining-bsd;/article.html">
+ Explaining BSD</link>、以及 <link xlink:href="&url.articles.new-users;/article.html">
+ &os; First Steps</link>。</para>
+
+ <para>此外,對上述文件內已有解答的部份又提出來問的話,會被認為是相當不禮貌的。
+ 這並不是因為這群志工是相當吝於回答的,而是一再被相同的問題不斷疲勞轟炸之後,所產生的挫折感很重。
+ 尤其是現成答案明明就在眼前,卻仍同樣問題滿天飛,這實在是...。
+ 請注意:這些 &os; 相關文件幾乎都是由一群無薪志工的好心成果,而他們也是人。</para>
+ </answer>
+
+ </qandaentry>
+
+ <qandaentry>
+ <question xml:id="inappropriate">
+ <para>如何避免不當發文呢?</para>
+ </question>
+
+ <answer>
+ <itemizedlist>
+ <listitem>
+ <para>發文時,請務必遵守該 mailing list 的遊戲規則。</para>
+ </listitem>
+
+ <listitem>
+ <para>不要作人身攻擊。好的網路公民,應該要有更高的言行標準。</para>
+ </listitem>
+
+ <listitem>
+ <para>請不要試圖作 Spam 行為(廣告、轉貼多處等不請自來行為)。
+ 所有 mailing lists 都會積極禁止這些違規者,一旦有的話,那麼後果請自行負責。</para>
+ </listitem>
+ </itemizedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question xml:id="etiquette-posting">
+ <para>發文時,有什麼該注意的嗎?</para>
+ </question>
+
+ <answer>
+ <itemizedlist>
+ <listitem>
+ <para>發文時,請保持一行約 75 個字元就自動斷行,因為並不是每個看的人都有很炫的圖形介面(GUI)看信軟體。</para>
+ </listitem>
+
+ <listitem>
+ <para>請注意:事實上,網路頻寬並不是無限的。
+ 並非每個讀者的頻寬都很大,所以若想貼一些像是 <filename>config.log</filename>
+ 之類的設定檔內容,或是大量的 stack trace 紀錄,那麼請把它放在自己網站上,然後貼出該網址 URL 就行了。
+ 還有一件事,請記住,這些信件都會被舊信資料庫保存下來,所以這樣作會造成保存的資料庫會很快被塞到很大,
+ 甚至可能塞爆 Server 的硬碟空間。</para>
+ </listitem>
+
+ <listitem>
+ <para>文章是要讓人看得懂,所以請注意版面編排的可讀性,還有..
+ 千 萬 不 要 大 聲 嚷 叫!!!!! 這點可不只 &os; mailing lists 才需如此注意,
+ 請勿低估文章『基本編排』的重要性、連鎖效應。
+ 信中的表達方式通常就代表著別人眼中的你,若文章讓人看了很吃力(霧煞煞)、拼字錯誤百出、
+ 充滿語意或邏輯錯誤、或是文內充滿一堆驚嘆號,這會讓人對你印象觀感極差。</para>
+ </listitem>
+
+ <listitem>
+ <para>在一些特定的 list 場合,請用適當的語言來溝通。許多非英語系的mailing
+ lists 可以到
+ <link xlink:href="&url.base;/community/mailinglists.html">
+ 這邊</link> 查看看。</para>
+
+ <para>對於許多母語不是英語的人,我們都能諒解他們的苦楚,並且試著儘量多多包涵。
+ 英文非母語的人,我們會儘量不惡意批評拼字或文法錯誤之處。
+ &os; 在這方面,一直有相當優秀的紀錄,請讓我們繼續保持這傳統吧。</para>
+ </listitem>
+
+ <listitem>
+ <para>寫信時,請用相容標準的 Mail User Agent (MUA)程式。
+ <link xlink:href="http://www.lemis.com/email.html">不良的(或設定錯誤的)寄信程式</link>
+ 這裡列有許多信件格式的錯誤示範。以下是一些已知的寄信程式的不良示範:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>cc:Mail</para>
+ </listitem>
+
+ <listitem>
+ <para>(舊版的)&eudora;</para>
+ </listitem>
+
+ <listitem>
+ <para>exmh</para>
+ </listitem>
+
+ <listitem>
+ <para>&microsoft; Exchange</para>
+ </listitem>
+
+ <listitem>
+ <para>&microsoft; Internet Mail</para>
+ </listitem>
+
+ <listitem>
+ <para>&microsoft; &outlook;</para>
+ </listitem>
+
+ <listitem>
+ <para>(舊版的)&netscape;</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>如同上述所見,Microsoft 出的一堆寄信程式通常都是不相容標準格式的。
+ 請儘量改用 &unix; 上的寄信程式。若必須在 Microsoft 環境下使用寄信程式的話,
+ 請記得確認設定是否正確。請儘量不要用 <acronym>MIME</acronym> 格式:
+ 因為有一堆人都在濫用 <acronym>MIME</acronym> 信件格式。</para>
+ </listitem>
+
+ <listitem>
+ <para>請確認:時間與時區設定是否正確。
+ 這問題看起來有點蠢,因為你寄出的信還是會到達 mailing list 上,
+ 但是呢,每位 mailing lists 上的訂戶每天都會看數百封的信,
+ 他們通常會把信件以標題跟時間作為排序依據。
+ 若你的信沒有在第一篇正解之前就先出現的話,他們就會假設可能是漏收你這封信,
+ 然後就沒再去看你那封信了。</para>
+ </listitem>
+
+ <listitem>
+ <para>請提供程式出現的相關訊息,像是 &man.dmesg.8; 或者 console
+ messages 也就是通常會出現在 <filename>/var/log/messages</filename> 出現的。
+ 請不要用手打,因為這不僅很苦,而且也可能打錯字或亂掉原有格式。請直接把相關的 log 檔丟出來,
+ 或是用編輯器來剪裁、或是用滑鼠複製/貼上來完成。舉個例子,如果是要把像是 <command>dmesg</command>
+ 的程式訊息倒入到某個檔案去的話,那麼作法如下:</para>
+
+ <screen>&prompt.user; <userinput>dmesg &gt; /tmp/dmesg.out</userinput></screen>
+
+ <para>這樣子會把訊息送到 <filename>/tmp/dmesg.out</filename> 檔內。</para>
+ </listitem>
+
+ <listitem>
+ <para>在用滑鼠剪貼時,請注意是否有犯一些細節的剪貼壞習慣。
+ 尤其是像貼 <filename>Makefiles</filename> 之類檔案時,由於 <literal>tab</literal>
+ 鍵所打出來的分格,是屬於特殊字元。因此,在 <link xlink:href="&url.base;/support.html#gnats">
+ GNATS PR 資料庫</link> 上很常看到這類很常見的惱人問題:
+ <filename>Makefiles</filename> 內的 tab 經過剪貼後,變成『空白(white space)』
+ 或是困擾的 <literal>=3B</literal> escape sequence,這些會讓 committers 們十分不爽。</para>
+ </listitem>
+ </itemizedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question xml:id="etiquette-replying">
+ <para>在 mailing lists 上回文的話,有什麼要特別注意的嗎?</para>
+ </question>
+
+ <answer>
+ <itemizedlist>
+ <listitem>
+ <para>請適當調整文章引言長度。回文時,引言部份請引『有談到的』部分為主,但請不要過與不及。
+ 應該保留涉及討論範圍的原文,這樣子才能讓沒看過前面文章的人知道是在講什麼,而非一頭霧水。</para>
+
+ <para>還有一點也很重要,原文若是幅度相當長的話,記得註明 "yes, I see this too"。</para>
+ </listitem>
+
+ <listitem>
+ <para>善用技巧來確認原文與自己寫的部份:
+ 通常會在原文的每行前面加上 <quote><literal>&gt; </literal></quote> 以作記號。
+ 請記得保留 <quote><literal>&gt; </literal></quote> 符號後面的空白,並且在原文以及你所寫的段落之間加上空行,
+ 以便閱讀。</para>
+ </listitem>
+
+ <listitem>
+ <para>請不要斷章取義、穿鑿附會:通常對原始文章『斷章取義』、『穿鑿附會』會讓大家很不爽,因為他們原意並非如此,卻被曲解。</para>
+ </listitem>
+
+ <listitem>
+ <para>回文時,不要寫在原文上面(<literal>top post</literal>)。
+ 這個意思是:若要回文時,請寫在原文下方,不要寫在原文上面,以免讓人有時空錯置的錯亂混淆。</para>
+ <!-- 注意:下面這是故意幽默效果的問答 -->
+ <itemizedlist>
+ <listitem>
+ <para>答: Because it reverses the logical flow of
+ conversation.</para>
+ </listitem>
+ <listitem>
+ <para>問: Why is top posting frowned upon?</para>
+ </listitem>
+ </itemizedlist>
+ <para>(感謝 Randy Bush 提供笑話)</para>
+ </listitem>
+ </itemizedlist>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </sect1>
+
+ <sect1 xml:id="recurring">
+ <title>Mailing Lists 上的重複性問題</title>
+
+ <para>在 mailing lists 上參與討論,就像在其他社群一樣,我們都需要一些溝通上的共識。
+ 許多 mailing lists 都會假設參與討論者都大致知道 FreeBSD 計劃的一些歷史淵源。
+ 尤其是社群的新手總是定期會不斷重複問類似問題。
+ 每個發文的人,都有責任來避免掉入這樣的惡性循環輪迴內。
+ 因此,應儘可能讓 mailing list 上能正常討論,而避免讓自己陷入筆戰泥沼。</para>
+
+ <para>要怎麼避免呢?最好的方法就是善用這些 <link xlink:href="http://docs.FreeBSD.org/mail/">
+ mailing list 舊信資料庫(archives)</link>,來瞭解相關背景。
+ 正由於這原因,所以 <link xlink:href="http://www.FreeBSD.org/search/search.html#mailinglists">
+ mailing list 搜尋介面</link> 就顯得非常好用。
+ (若這方法仍無法找到有用的答案,那麼請改用自己愛用的搜尋引擎吧)</para>
+
+ <para>透過這些舊信資料庫,不只可瞭解先前討論過哪些話題,也可以知道:是怎麼討論的、
+ 哪些人參與討論過、主要看的人又是哪些人。
+ 入境隨俗這些原則不只是 &os; mailing list 上才這樣,一樣可以適合其他地方。</para>
+
+ <para>archives 的內容無疑地相當廣泛,而且會有些問題不斷反覆出現,
+ 有時討論到後面總會離題。無論如何,在發問前的義務就是先做好功課,
+ 以避免這類的月經文惡性循環,尤其是令人反感的 <literal>bikeshed(打嘴砲)</literal>。</para>
+ </sect1>
+
+ <sect1 xml:id="bikeshed">
+ <title>什麼是 "Bikeshed" 呀?</title>
+ <para>單就字面上意思解釋的話,<literal>bikeshed</literal> 是指專門給腳踏車、機車之類的兩輪交通工具使用的遮雨棚,
+ 然而呢,在 &os; 這邊的說法卻有其他意思(帶有貶抑)指的是:
+ 某些特定話題的重複討論,尤其是指在 &os; 社群內絕不會有共識,且有爭議的話題。
+ (這字彙的起源在 <link xlink:href="&url.books.faq;/misc.html#BIKESHED-PAINTING">
+ 這份文件</link> 內有更多說明)。你只要在發信到任一 &os; mailing lists 之前,知道這個基本概念就行了。</para>
+
+ <para>一般來講,『bikeshed』是很容易產生許多波的筆戰與額外討論的爭議話題,如果事先不知道這些背景的話。</para>
+
+ <para>拜託,請幫個忙讓討論回歸正常,而不要只是到處打嘴砲而已。感恩!</para>
+ </sect1>
+
+ <sect1 xml:id="acknowledgments">
+ <title>致謝</title>
+
+ <variablelist>
+ <varlistentry>
+ <term>&a.grog;</term>
+ <listitem>
+ <para><link xlink:href="&url.articles.freebsd-questions;/article.html">
+ How to get best results from the FreeBSD-questions mailing list</link> 一文的原作者,
+ 我們從他這文內獲得許多 mailing list 上的禮儀(或默契)寫作題材。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.linimon;</term>
+ <listitem>
+ <para>本 FAQ 雛形的原作</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect1>
+
+</article>
diff --git a/zh_TW.Big5/articles/nanobsd/Makefile b/zh_TW.UTF-8/articles/nanobsd/Makefile
index 38de994f6c..38de994f6c 100644
--- a/zh_TW.Big5/articles/nanobsd/Makefile
+++ b/zh_TW.UTF-8/articles/nanobsd/Makefile
diff --git a/zh_TW.UTF-8/articles/nanobsd/article.xml b/zh_TW.UTF-8/articles/nanobsd/article.xml
new file mode 100644
index 0000000000..44702eb5df
--- /dev/null
+++ b/zh_TW.UTF-8/articles/nanobsd/article.xml
@@ -0,0 +1,434 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
+ "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
+<!--
+ The FreeBSD Documentation Project
+ The FreeBSD Chinese (Traditional) Documentation Project
+
+ Original Revision: 1.1
+-->
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="zh_tw">
+ <info><title>NanoBSD 簡介</title>
+
+
+ <authorgroup>
+ <author><personname><firstname>Daniel</firstname><surname>Gerzo</surname></personname></author>
+ </authorgroup>
+
+ <copyright>
+ <year>2006</year>
+ <holder>The FreeBSD Documentation Project</holder>
+ </copyright>
+
+ <pubdate>$FreeBSD$</pubdate>
+
+ <releaseinfo>$FreeBSD$</releaseinfo>
+
+ <legalnotice xml:id="trademarks" role="trademarks">
+ &tm-attrib.freebsd;
+ &tm-attrib.general;
+ </legalnotice>
+
+ <abstract>
+ <para>這篇文件提供了關於 <application>NanoBSD</application> 工具的情報介紹,
+ 這工具可用來建立用於嵌入式環境應用程式的 &os; 系統映像檔,
+ 以便存放到 Compact Flash 卡(或隨身碟)。</para>
+ </abstract>
+ </info>
+
+ <sect1 xml:id="intro">
+ <title>NanoBSD 簡介</title>
+
+ <indexterm><primary>NanoBSD</primary></indexterm>
+
+ <para><application>NanoBSD</application> 是 &a.phk; 目前正在開發的一項工具。
+ 它可用來建立用於嵌入式環境應用程式的 &os; 系統映像檔,
+ 以便存放到 Compact Flash 卡(或隨身碟,mass storage medium)。</para>
+
+ <para>這一工具也可以用來自製安裝映像檔,
+ 以簡化俗稱為 <quote>嵌入式系統(computer appliances)</quote> 的系統安裝、維護工作。
+ 通常,每個嵌入式系統產品都有限定硬體和軟體,
+ 或者換言之,所有的應用程式都是預先裝好的。
+ 這些設備可以直接放到現有的網路中,而且(幾乎是)立即使用。</para>
+
+ <para><application>NanoBSD</application> 提供的功能包括:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>可以和 &os; 一樣使用 Ports 和 Packages &mdash;
+ 所有的應用程序都可以在 <application>NanoBSD</application> 中直接使用,
+ 而方式與 &os; 完全一樣。</para>
+ </listitem>
+
+ <listitem>
+ <para>功能絲毫未損 &mdash; 在 &os; 做的任何工作,都可以在
+ <application>NanoBSD</application> 中使用,
+ 除非您在建立 <application>NanoBSD</application> 映像檔時,
+ 有指定要拿掉它們。</para>
+ </listitem>
+
+ <listitem>
+ <para>所有東西在運行時都是唯讀的 &mdash; 可以安全地拔掉電源插頭。
+ 系統不正常關機的話,不用再跑 &man.fsck.8; 了。</para>
+ </listitem>
+
+ <listitem>
+ <para>可輕鬆編譯、自行打造 &mdash; 只需使用一個 shell script 和一個設定檔,
+ 您可以輕鬆依需求來量身訂做適用的映像檔。</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 xml:id="howto">
+ <title>如何使用 NanoBSD</title>
+
+ <sect2 xml:id="design">
+ <title>NanoBSD 的設計</title>
+
+ <para>一旦將映像檔存入嵌入式硬體,就可以用它來引導 <application>NanoBSD</application>
+ 了。 預設情況下,隨身碟會劃分為三部分:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>兩個映像檔分割區: <literal>code#1</literal>
+ 和 <literal>code#2</literal>。</para>
+ </listitem>
+
+ <listitem>
+ <para>一個設定檔分割區,在運行環境中,
+ 可以將其掛載(mount)到 <filename>/cfg</filename> 目錄下。</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>這些分割區,在預設情況下是以唯讀方式掛載。</para>
+
+ <para><filename>/etc</filename> 和
+ <filename>/var</filename> 目錄均為
+ &man.md.4;(malloc)磁碟。</para>
+
+ <para>設定檔的分割區則是在
+ <filename>/cfg</filename> 目錄。
+ 它包含了用於 <filename>/etc</filename>
+ 目錄的檔案,在啟動之後暫時以唯讀方式掛載。 因此,若想要重開機保留新的設定,
+ 那麼要記得從 <filename>/etc</filename> 把改過的檔案複製回
+ <filename>/cfg</filename> 目錄才行。</para>
+
+ <example>
+ <title>把修改過 <filename>/etc/resolv.conf</filename> 設定保存起來</title>
+
+ <screen>&prompt.root; <userinput>vi /etc/resolv.conf</userinput>
+[...]
+&prompt.root; <userinput>mount /cfg</userinput>
+&prompt.root; <userinput>cp /etc/resolv.conf /cfg</userinput>
+&prompt.root; <userinput>umount /cfg</userinput></screen>
+ </example>
+
+ <note>
+ <para>只有在系統啟動過程中,以及需要修改設定檔的時候,才需要掛載含有
+ <filename>/cfg</filename> 的那個分割區。</para>
+
+ <para>一直都掛載 <filename>/cfg</filename>
+ 不是一個好主意,特別是當您把 <application>NanoBSD</application>
+ 放在不適合進行大量寫入動作的分割區時
+ (比如:由於檔案系統的同步化會定期在系統碟內寫入資料)。</para>
+ </note>
+ </sect2>
+
+ <sect2>
+ <title>打造 NanoBSD 映像檔</title>
+
+ <para><application>NanoBSD</application> 映像檔是透過使用非常簡單的
+ <filename>nanobsd.sh</filename> shell script 來打造的,這個 script 可以在
+ <filename>/usr/src/tools/tools/nanobsd</filename>
+ 目錄中找到。 這個 script 建立的映像檔,可以用 &man.dd.1; 工具來複製到隨身碟上。</para>
+
+ <para>打造
+ <application>NanoBSD</application> 映像檔所需的指令是:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/src/tools/tools/nanobsd</userinput> <co xml:id="nbsd-cd"/>
+&prompt.root; <userinput>sh nanobsd.sh</userinput> <co xml:id="nbsd-sh"/>
+&prompt.root; <userinput>cd /usr/obj/nanobsd.full</userinput> <co xml:id="nbsd-cd2"/>
+&prompt.root; <userinput>dd if=_.disk.full of=/dev/da0 bs=64k</userinput> <co xml:id="nbsd-dd"/></screen>
+
+ <calloutlist>
+ <callout arearefs="nbsd-cd">
+ <para>進入 <application>NanoBSD</application> 打造 script 的主目錄。</para>
+ </callout>
+
+ <callout arearefs="nbsd-sh">
+ <para>開始打造過程。</para>
+ </callout>
+
+ <callout arearefs="nbsd-cd2">
+ <para>進入打造好的映像檔所在的目錄。</para>
+ </callout>
+
+ <callout arearefs="nbsd-dd">
+ <para>在隨身碟上安裝 <application>NanoBSD</application>。</para>
+ </callout>
+ </calloutlist>
+ </sect2>
+
+ <sect2>
+ <title>自行打造 NanoBSD 映像檔</title>
+
+ <para>這可能是 <application>NanoBSD</application> 最為重要,
+ 同時也是您最感興趣的功能。 同時,在開發
+ <application>NanoBSD</application> 應用程式時,這也是相當耗時的過程。</para>
+
+ <para>執行下面的指令將會
+ <filename>nanobsd.sh</filename> 讀取目前所在目錄的
+ <filename>myconf.nano</filename> 檔的設定:</para>
+
+ <screen>&prompt.root; <userinput>sh nanobsd.sh -c myconf.nano</userinput></screen>
+
+ <para>自行打造的流程,只需兩個步驟:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>自訂選項</para>
+ </listitem>
+
+ <listitem>
+ <para>自訂功能</para>
+ </listitem>
+ </itemizedlist>
+
+ <sect3>
+ <title>自訂選項</title>
+
+ <para>透過修改設定,可以設定用於
+ <application>NanoBSD</application> 打造過程中 <literal>buildworld</literal>
+ 和 <literal>installworld</literal> 階段的編譯、安裝選項,以及
+ <application>NanoBSD</application> 主要打造過程中的選項。
+ 透過使用這些選項可以削減系統的尺寸,使之能夠放入
+ 64 MB 的隨身碟。 您還可以進一步透過這些選項來削減 &os;,
+ 直到它只包含 kernel 以及兩三個 userland 檔案為止。</para>
+
+ <para>設定檔案中包含用以代替預設值的設定選項。簡介最重要的幾項設定如下:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>NANO_NAME</literal> &mdash; 本次打造的名稱(所建立工作目錄的名稱)。</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>NANO_SRC</literal> &mdash; 用以編譯、打造映像檔的 source tree 的位置。</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>NANO_KERNEL</literal> &mdash; 設定用來編譯的 kernel 設定檔檔名。</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>CONF_BUILD</literal> &mdash; 用於
+ <literal>buildworld</literal> 打造階段的選項。</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>CONF_INSTALL</literal> &mdash; 用於
+ <literal>installworld</literal> 打造階段的選項。</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>CONF_WORLD</literal> &mdash; 用於
+ <literal>buildworld</literal> 和
+ <literal>installworld</literal> 這兩個打造階段的選項。</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>FlashDevice</literal> &mdash; 定義所用的嵌入式硬體類型。
+ 詳情請參考 <filename>FlashDevice.sub</filename> 檔。</para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3>
+ <title>自訂功能</title>
+
+ <para>透過在設定檔案中使用 shell 函數,可以進一步微調
+ <application>NanoBSD</application>。 舉例說明一下自行打造函數的基本方式:</para>
+
+ <programlisting>cust_foo()(
+ echo "bar=topless" &gt; \
+ &dollar;{NANO_WORLDDIR}/etc/foo
+)
+customize_cmd cust_foo</programlisting>
+
+ <para>下面舉更實際點的例子,它會把預設的
+ <filename>/etc</filename> 目錄大小,從 5MB 調整為 30MB:</para>
+
+ <programlisting>cust_etc_size()(
+ cd &dollar;{NANO_WORLDDIR}/conf
+ echo 30000 &gt; default/etc/md_size
+)
+customize_cmd cust_etc_size</programlisting>
+
+ <para>除此之外,還有幾個預設的功能定義可以用來自訂:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>cust_comconsole</literal> &mdash; 在預設 VGA 顯示卡上停用 &man.getty.8;
+ (<filename>/dev/ttyv*</filename>)並啟用 serial port 的 COM1 以作為系統 console。</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>cust_allow_ssh_root</literal> &mdash; 允許 &man.sshd.8;
+ 可以用 <systemitem class="username">root</systemitem> 帳號登入。</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>cust_install_files</literal> &mdash;
+ 從 <filename>nanobsd/Files</filename>
+ 目錄中安裝檔案,這包含一些實用的系統管理 script 。</para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3>
+ <title>設定檔案舉例</title>
+
+ <para>下面是用於自行打造的 <application>NanoBSD</application> 映像檔的完整例子:</para>
+
+ <programlisting>NANO_NAME=custom
+NANO_SRC=/usr/src
+NANO_KERNEL=MYKERNEL
+NANO_IMAGES=2
+
+CONF_BUILD='
+NO_KLDLOAD=YES
+NO_NETGRAPH=YES
+NO_PAM=YES
+'
+
+CONF_INSTALL='
+NO_ACPI=YES
+NO_BLUETOOTH=YES
+NO_CVS=YES
+NO_FORTRAN=YES
+NO_HTML=YES
+NO_LPR=YES
+NO_MAN=YES
+NO_SENDMAIL=YES
+NO_SHAREDOCS=YES
+NO_EXAMPLES=YES
+NO_INSTALLLIB=YES
+NO_CALENDAR=YES
+NO_MISC=YES
+NO_SHARE=YES
+'
+
+CONF_WORLD='
+NO_BIND=YES
+NO_MODULES=YES
+NO_KERBEROS=YES
+NO_GAMES=YES
+NO_RESCUE=YES
+NO_LOCALES=YES
+NO_SYSCONS=YES
+NO_INFO=YES
+'
+
+FlashDevice SanDisk 1G
+
+cust_nobeastie()(
+ touch &dollar;{NANO_WORLDDIR}/boot/loader.conf
+ echo "beastie_disable=\"YES\"" &gt;&gt; &dollar;{NANO_WORLDDIR}/boot/loader.conf
+)
+
+customize_cmd cust_comconsole
+customize_cmd cust_install_files
+customize_cmd cust_allow_ssh_root
+customize_cmd cust_nobeastie</programlisting>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>更新 NanoBSD</title>
+
+ <para>更新 <application>NanoBSD</application> 相對 &os; 而言較為簡單:</para>
+
+ <procedure>
+ <step>
+ <para>和之前一樣打造新的 <application>NanoBSD</application> 映像檔。</para>
+ </step>
+
+ <step>
+ <para>將新的映像檔放入正運行的
+ <application>NanoBSD</application> 中未用的分割區之一。</para>
+
+ <para>與之前最初安裝 <application>NanoBSD</application> 的步驟相比,
+ 這一步驟最重要的區別在於:這次不用 <filename>_.disk.full</filename> 檔(它包含整個磁碟的映像檔),
+ 而應安裝 <filename>_.disk.image</filename> 映像檔(這個檔案中,只包含一個系統分割區)。</para>
+ </step>
+
+ <step>
+ <para>重新啟動,並從新安裝的分割區中啟動系統。</para>
+ </step>
+
+ <step>
+ <para>如果一切順利的話,升級工作就完成了。</para>
+ </step>
+
+ <step>
+ <para>如果發生了任何問題,則可以從先前的分割區啟動
+ (其中包含了舊的、 可用的映像檔),來盡快恢復系統功能。
+ 接下來可以修正新編譯的版本中存在的問題,並重複前述步驟。</para>
+ </step>
+ </procedure>
+
+ <para>要在正在運行的
+ <application>NanoBSD</application> 系統中安裝新的映像檔,可以使用位於
+ <filename>/root</filename> 目錄的
+ <filename>updatep1</filename> 或
+ <filename>updatep2</filename> script ,
+ 實際上要用哪一個 script,則取決於正在運行的系統是位於哪個分割區而定。</para>
+
+ <para>隨時提供新 <application>NanoBSD</application> 映像檔所提供的服務,
+ 以及採用的傳輸方法的不同,您可以參考並使用下列三種方式之一:</para>
+
+ <sect3>
+ <title>使用 &man.ftp.1;</title>
+
+ <para>如果傳輸速度是第一要求的話,請採用下面例子:</para>
+
+ <screen>&prompt.root; <userinput>ftp myhost
+get _.disk.image "| sh updatep1"</userinput></screen>
+ </sect3>
+
+ <sect3>
+ <title>使用 &man.ssh.1;</title>
+
+ <para>如果想更安全的話,應參考下面例子:</para>
+
+ <screen>&prompt.root; <userinput>ssh myhost cat _.disk.image.gz | zcat | sh updatep1</userinput></screen>
+ </sect3>
+
+ <sect3>
+ <title>使用 &man.nc.1;</title>
+
+ <para>如果遠程主機既不提供 &man.ftp.1; 服務,也不提供 &man.sshd.8; 服務的話:</para>
+
+ <procedure>
+ <step>
+ <para>首先,在提供映像檔的主機上開啟 TCP listen,並讓它把映像檔傳給 client:</para>
+
+ <screen>myhost&prompt.root; <userinput>nc -l 2222 &lt; _.disk.image</userinput></screen>
+
+ <note>
+ <para>請確認您所使用的 port 沒有被防火牆阻止來自
+ <application>NanoBSD</application> client 的連線請求。</para>
+ </note>
+ </step>
+ <step>
+ <para>連到提供新映像檔服務的主機,並執行 <filename>updatep1</filename> 這支 script:</para>
+
+ <screen>&prompt.root; <userinput>nc myhost 2222 | sh updatep1</userinput></screen>
+ </step>
+ </procedure>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <index/>
+</article>
diff --git a/zh_TW.Big5/articles/pr-guidelines/Makefile b/zh_TW.UTF-8/articles/pr-guidelines/Makefile
index 17e369ff2c..17e369ff2c 100644
--- a/zh_TW.Big5/articles/pr-guidelines/Makefile
+++ b/zh_TW.UTF-8/articles/pr-guidelines/Makefile
diff --git a/zh_TW.Big5/articles/pr-guidelines/article.xml b/zh_TW.UTF-8/articles/pr-guidelines/article.xml
index e575b4268d..9a2bebcc23 100644
--- a/zh_TW.Big5/articles/pr-guidelines/article.xml
+++ b/zh_TW.UTF-8/articles/pr-guidelines/article.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
<!-- $FreeBSD$ -->
@@ -6,12 +6,12 @@
<!-- Translate into Chinese by chinsan.tw@gmail.com -->
<!-- English Version: 1.24 -->
<!--
- D^(PR)Bzh
+ 問題回報(PR)的處理原則
The FreeBSD Project - http://www.FreeBSD.org
-->
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="zh_tw">
<!-- :START of Article Metadata -->
- <info><title>D^(PR)Bzh</title>
+ <info><title>問題回報(PR)的處理原則</title>
<pubdate>$FreeBSD$</pubdate>
@@ -23,8 +23,8 @@
</legalnotice>
<abstract>
- <para>og峹DnbG FreeBSD PR @pթҴX@ FreeBSD D^(PR)
- ijAƱjab PR ɳuC</para>
+ <para>這篇文章主要在講:由 FreeBSD PR 維護小組所提出的一些 FreeBSD 問題回報(PR)
+ 建議,希望大家在弄 PR 時都能遵守。</para>
</abstract>
<authorgroup>
@@ -38,121 +38,121 @@
<!-- :END of Article Metadata-->
<section xml:id="intro">
- <title>e</title>
+ <title>前言</title>
- <para>GNATS O FReeBSD pұĥΪ@MM޲z~(^bug) tΡC
- ѩ FreeBSD ~OҦӨAO_ǽTxU~^Pi׬OQnA
- ]Ap󥿽TĨϥ GNATS ]N`NC</para>
+ <para>GNATS 是 FReeBSD 計劃所採用的一套專門管理錯誤(回報bug) 系統。
+ 由於對 FreeBSD 品質保證而言,是否能準確掌握各項錯誤回報與進度是十分重要的,
+ 因此,如何正確有效使用 GNATS 也就必須注意。</para>
<para>Access to GNATS is available to FreeBSD developers, as well as
- to the wider community. F GNATS ƮwϥΤWq@PAONͤFBzOGfollowup(^)BPRѦҭhC</para>
+ to the wider community. 為了讓 GNATS 資料庫使用上儘量一致,於是就產生了怎麼處理像是:followup(回文)、關閉PR等的參考原則。</para>
</section>
<section xml:id="pr-lifecycle">
- <title>D^(PR)ͩRg</title>
+ <title>問題回報(PR)的生命週期</title>
<itemizedlist>
<listitem>
- <para>A^(originator)H &man.send-pr.1; eX PRAM|@ʽT{HC</para>
+ <para>首先,回報者(originator)以 &man.send-pr.1; 送出 PR,然後會收到一封確認信。</para>
</listitem>
<listitem>
- <para>MAcommitter ̴N|H(]s Joe)o쪺 PR ñN PR ۤvӳBzC
- Ϊ bugbuster |H(]s Jane) N|UMwGoıo Joe AXBzANN PR (assign)L</para>
+ <para>然後,committer 們就會有人(假設叫做 Joe)發掘有興趣的 PR 並將該 PR 指派給自己來處理。
+ 或者 bugbuster 會有人(假設叫做 Jane) 就會下決定:她覺得 Joe 比較適合處理,就將該 PR 指派(assign)給他</para>
</listitem>
<listitem>
- <para>Joe |PD^̧@ǷNy(HTwoDiJ audit lܬy{)
- HΧP_DIC
- MATwDIgJ audit lܬy{AM PR A]
- <quote>analyzed(wR)</quote>C</para>
+ <para>Joe 會先與有問題的回報者作些意見交流(以確定這問題有進入 audit 追蹤流程內)
+ 以及判斷問題點。
+ 然後再確定問題點有寫入 audit 追蹤流程之後,然後把該 PR 狀態設為
+ <quote>analyzed(已分析)</quote>。</para>
</listitem>
<listitem>
- <para>Joe }l]XDѪkAMN patch e follow-up(^)AýЦ^̨UլO_`C
- MALN|N PR A] <quote>feedback</quote> oC</para>
+ <para>Joe 開始徹夜找出問題解法,然後將 patch 送到 follow-up(回文用),並請回報者協助測試是否正常。
+ 然後,他就會將 PR 狀態設為 <quote>feedback</quote> 囉。</para>
</listitem>
<listitem>
- <para>p analyzedBfeedback X뤧A Joe P^賣۷N patch GA
- ON|N patch commits iJ <literal>-CURRENT</literal> (Ϊ̭Y <literal>-CURRENT</literal>
- WSoDܡANe <literal>-STABLE</literal>)Ab commit log n PR gWh
- (Pɦ^̭Yeγ patch ܡANKO)AMAYSƪܡAN}ldz MFC C
- (ĶGMFCN Merged From CURRENT A]NO <literal>-CURRENT</literal> WF֤J <literal>-STABLE</literal>C</para>
+ <para>如此重複 analyzed、feedback 幾趟之後,直到 Joe 與回報者雙方都相當滿意 patch 結果,
+ 於是就會將 patch 給 commits 進入 <literal>-CURRENT</literal> (或者若 <literal>-CURRENT</literal>
+ 上面沒這問題的話,就直接送到 <literal>-STABLE</literal>),在 commit log 內要把相關 PR 寫上去
+ (同時回報者若有送完整或部分 patch 的話,就順便記載),然後,若沒什麼事的話,就開始準備 MFC 哩。
+ (譯註:MFC意指 Merged From CURRENT ,也就是把 <literal>-CURRENT</literal> 上的東西併入 <literal>-STABLE</literal>。</para>
</listitem>
<listitem>
- <para>Y patch ݭn MFC ܡAJoe N|(close) PR FC</para>
+ <para>若該 patch 不需要 MFC 的話,Joe 就會關掉(close)該 PR 了。</para>
</listitem>
<listitem>
- <para>Y patch ݭn MFC ܡAJoe | PR Aאּ <quote>patched(wץ)</quote>A
- wg MFC A~| close()C</para>
+ <para>若該 patch 需要 MFC 的話,Joe 會把 PR 狀態改為 <quote>patched(已修正)</quote>,
+ 直到已經 MFC 完畢,才會 close(關掉)。</para>
</listitem>
</itemizedlist>
<note>
- <para>ܦheXӪ PR ܤ֪WDTAӦǫhO۷dA
- ΥuO쳡DӤwF
- JoرpɡAOD`ݭnoҦTHKѨMDC
- YJoصLѪDΦAoͪܡANn re-open(s}) PRAHݸѨMC</para>
+ <para>很多送出來的 PR 都很少附上問題的相關訊息,而有些則是相當複雜難搞,
+ 或只是提到部分表面問題而已;
+ 遇到這種情況時,是非常需要得到所有相關訊息以便解決問題。
+ 若遇到這種無解的問題或再次發生的話,就必須要 re-open(重新開啟) 該 PR,以待解決。</para>
</note>
<note>
- <para>PR WҪ <quote>email address</quote> i]Yǭ]ӵLkHɡAJoتpAq`NO
- followup PR A(b followup )Ц^̭sѥi`H email addressC
- tΤW mail tΨS˪ɭԡAoq`Obϥ &man.send-pr.1; NסC</para>
+ <para>PR 上所附的 <quote>email address</quote> 可能因某些原因而無法收信時,遇到這種狀況,通常就是
+ followup 該 PR ,並(在 followup 時)請回報者重新提供可正常收信的 email address。
+ 當系統上的 mail 系統關閉或沒裝的時候,這通常是在使用 &man.send-pr.1; 的替代方案。</para>
</note>
</section>
<section xml:id="pr-states">
- <title>D^(PR)A</title>
+ <title>問題回報(PR)的狀態</title>
- <para>Y PR ܤƪܡAаȥOos PR yA(state)zC
- yAzӭnॿTϬM PR ثeiפ~OC</para>
+ <para>若 PR 有任何變化的話,請務必記得更新 PR 的『狀態(state)』。
+ 『狀態』應該要能正確反映該 PR 的目前進度才是。</para>
<example>
- <title>HUO PR ApҤlG</title>
+ <title>以下是更改 PR 狀態的小例子:</title>
- <para>iHץD PR X{AӬtd developer(s)
- ]ıoo˪ץiHAL̷| followup PRAñN䪬Aאּ
- <quote>feedback</quote>CPɡA^s̲תץGAæ^GҦ^~O_w\ץC</para>
+ <para>當有可以修正問題的 PR 出現,而相關負責的 developer(s)
+ 也覺得這樣的修正可以接受,他們會 followup 該 PR,並將其狀態改為
+ <quote>feedback</quote>。同時,回報者應重新評估最終的修正結果,並回應:所回報的錯誤是否已成功修正。</para>
</example>
- <para>C PR q`|UoXتA@G</para>
+ <para>每份 PR 通常會有下面這幾種狀態之一:</para>
<glosslist>
<glossentry>
<glossterm>open</glossterm>
<glossdef>
- <para>PR ̪쪺AGoӰDQXӡAæbݳBzC</para>
+ <para>PR 最初的狀態:這個問題被提出來,並在等待處理中。</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>analyzed</glossterm>
<glossdef>
- <para>wg}lBzoDAåBæѨMkC</para>
+ <para>已經開始處理這問題,並且有找到疑似解決的方法。</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>feedback</glossterm>
<glossdef>
- <para>ݭn^̴ѧԲӪơApоǭn]IСAvf]n]HUġAVhTA~঳̨ήĪGC</para>
+ <para>需要回報者提供更詳細的相關資料,正如教學要因材施教,治病也要因人下藥,越多相關訊息,才能有最佳效果。</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>patched</glossterm>
<glossdef>
- <para>wge patch FA]Yǭ](MFCAΨӦۦ^̪T{G`)]|C</para>
+ <para>已經送相關 patch 了,但仍因某些原因(MFC,或來自回報者的確認結果異常)因此尚未完畢。</para>
</glossdef>
</glossentry>
<glossentry>
- <glossterm>suspended(Ƚw)</glossterm>
+ <glossterm>suspended(暫緩)</glossterm>
<glossdef>
- <para>]SWTΰѦҸơAҥH٨SkBzoDC
+ <para>因為沒附上相關訊息或參考資料,所以還沒辦法處理這問題。
This is a prime candidate for
somebody who is looking for a project to take on. If the
problem cannot be solved at all, it will be closed, rather
@@ -181,7 +181,7 @@
</section>
<section xml:id="pr-types">
- <title>D^(PR)</title>
+ <title>問題回報(PR)的種類</title>
<para>While handling problem reports, either as a developer who has
direct access to the GNATS database or as a contributor who
@@ -197,7 +197,7 @@
<para><link linkend="pr-assigned">PRs already assigned to someone.</link></para>
</listitem>
<listitem>
- <para><link linkend="pr-dups">ƪ PR</link></para>
+ <para><link linkend="pr-dups">重複的 PR</link></para>
</listitem>
<listitem>
<para><link linkend="pr-stale">Stale PRs</link></para>
@@ -574,7 +574,7 @@
</section>
<section xml:id="pr-dups">
- <title>ƪ PR</title>
+ <title>重複的 PR</title>
<para>If you find more than one PR that describe the same issue,
choose the one that contains the largest amount of useful
@@ -861,14 +861,14 @@ This was misfiled because the subject did not have the format:
</section>
<section xml:id="references">
- <title>\Ū</title>
+ <title>延伸閱讀</title>
- <para>UoObgBBz PR ɡAiHѦҪơCMܩAoM椴ɥRC</para>
+ <para>下面這是在寫、處理 PR 時,可以參考的資料。當然很明顯,這份清單仍須補充。</para>
<itemizedlist>
<listitem>
<para><link xlink:href="&url.articles.problem-reports;/article.html">How to
- Write FreeBSD Problem Reports</link>&mdash; PR ^̥ΪѦҭhC</para>
+ Write FreeBSD Problem Reports</link>&mdash;給 PR 回報者用的參考原則。</para>
</listitem>
</itemizedlist>
</section>
diff --git a/zh_TW.Big5/articles/problem-reports/Makefile b/zh_TW.UTF-8/articles/problem-reports/Makefile
index ab12340558..ab12340558 100644
--- a/zh_TW.Big5/articles/problem-reports/Makefile
+++ b/zh_TW.UTF-8/articles/problem-reports/Makefile
diff --git a/zh_TW.Big5/articles/problem-reports/article.xml b/zh_TW.UTF-8/articles/problem-reports/article.xml
index 1e4059fdcf..ebacf3e366 100644
--- a/zh_TW.Big5/articles/problem-reports/article.xml
+++ b/zh_TW.UTF-8/articles/problem-reports/article.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="zh_tw">
diff --git a/zh_TW.Big5/articles/remote-install/Makefile b/zh_TW.UTF-8/articles/remote-install/Makefile
index 3efa3a5e93..3efa3a5e93 100644
--- a/zh_TW.Big5/articles/remote-install/Makefile
+++ b/zh_TW.UTF-8/articles/remote-install/Makefile
diff --git a/zh_TW.UTF-8/articles/remote-install/article.xml b/zh_TW.UTF-8/articles/remote-install/article.xml
new file mode 100644
index 0000000000..d927f61be6
--- /dev/null
+++ b/zh_TW.UTF-8/articles/remote-install/article.xml
@@ -0,0 +1,475 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
+ "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
+<!--
+ The FreeBSD Documentation Project
+ The FreeBSD Chinese (Traditional) Documentation Project
+
+ Original Revision: 1.5
+
+-->
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="zh_tw">
+ <info><title>遠端安裝 &os; 作業系統而不必接 Remote Console</title>
+
+
+ <author><personname><firstname>Daniel</firstname><surname>Gerzo</surname></personname><affiliation>
+ <address><email>danger@FreeBSD.org</email></address>
+ </affiliation></author>
+
+ <legalnotice xml:id="trademarks" role="trademarks">
+ &tm-attrib.freebsd;
+ &tm-attrib.general;
+ </legalnotice>
+
+ <copyright>
+ <year>2008</year>
+ <holder>The &os; Documentation Project</holder>
+ </copyright>
+
+ <pubdate>$FreeBSD$</pubdate>
+
+ <releaseinfo>$FreeBSD$</releaseinfo>
+
+ <abstract>
+ <para>本文介紹如何在沒辦法連到遠端 console 的機器做 &os; 遠端安裝。
+ 本文構想來自於作者與 &a.mm; 的合作成果,
+ 以及 &a.pjd; 所投注的諸多心血。</para>
+ </abstract>
+ </info>
+
+ <sect1 xml:id="background">
+ <title>緣起</title>
+
+ <para>世上有許多 server hosting provider,但其中有官方支援 &os;
+ 則不是相當多。 他們通常會在所提供的機器上有 &linux; distribution
+ 的安裝支援。</para>
+
+ <para>有些會讓您可選擇喜好的 &linux; distribution 來裝,
+ 像這種情況就可以試著安裝 &os;。 而有些則是會提供救急用的系統,
+ 這種也可以用來安裝 &os;。</para>
+
+ <para>本文介紹這些遠端基本安裝 &os; 的方式,以及 RAID-1 與
+ <application>ZFS</application> 設定步驟。</para>
+ </sect1>
+
+ <sect1 xml:id="intro">
+ <title>介紹</title>
+
+ <para>茲摘錄一下本文的目的以及闡述這邊所涵蓋的東西。
+ 對於無官方支援 &os; 的代管服務(colocation)用戶而言,
+ 本文中所介紹到的指令會相當有用。</para>
+
+ <procedure>
+ <step>
+ <para>正如先前 <link linkend="background">緣起</link> 所提到的,許多名聲還不賴的
+ server hosting 公司會提供一些救急用系統,可以透過
+ <acronym>LAN</acronym> 方式開機,也可以透過
+ <application>SSH</application> 方式進行管理。 通常會有該加值服務,
+ 以讓他們的客戶可以連進來修復有問題的作業系統。
+ 本節之後將介紹如何透過救急系統來安裝 &os;。</para>
+ <!-- XXXTR: Solaris has a restore command, something like
+ sysrestore, FreeBSD Should have one too. -->
+ </step>
+
+ <step>
+ <para>下一節會介紹如何在本機設定以及打造最小巧的 &os; ——
+ 該版最後會在遠端機器上透過 ramdisk 方式啟動,並以
+ <application>sysinstall</application> 從 <acronym>FTP</acronym>
+ mirror 站來安裝完整的 &os; 作業系統。</para>
+ </step>
+
+ <step>
+ <para>本文其餘部分將介紹安裝程序,以及 <application>ZFS</application>
+ 檔案系統的設定。</para>
+ </step>
+ </procedure>
+
+ <sect2 xml:id="requirements">
+ <title>需求</title>
+
+ <para>為了成功完成遠端安裝,必須要有:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>要有可以上網的作業系統,並且 <application>SSH</application>
+ 可以連線。</para>
+ </listitem>
+
+ <listitem>
+ <para>瞭解 &os; 的安裝程序</para>
+ </listitem>
+
+ <listitem>
+ <para>熟悉如何使用 &man.sysinstall.8;</para>
+ </listitem>
+
+ <listitem>
+ <para>有 &os; 安裝光碟片或者 <acronym>ISO</acronym> image 檔</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+ </sect1>
+
+ <sect1 xml:id="preparation">
+ <title>準備 - <application>mfsBSD</application></title>
+
+ <para>在裝 &os; 之前,要先打造最小化的 &os; 作業系統 image 檔,
+ 以便可以從硬碟上開機。 如此一來,新的系統就可以透過網路來操作,
+ 而剩下來的安裝部分即可不必透過 console。</para>
+
+ <para>而 <application>mfsBSD</application> 這套工具就是用來打造小型的
+ &os; image 檔。 <application>mfsBSD</application> (名字其中
+ <quote>mfs</quote> 就是 <quote>memory file system</quote>)所建造出來的
+ 整套系統會透過 ramdisk 方式來運作。 由於此一特色,硬碟的部分就不受限,
+ 因此可以用來安裝完整的 &os; 作業系統。 <application>mfsBSD</application>
+ 的首頁位於 <uri xlink:href="http://people.freebsd.org/~mm/mfsbsd/">http://people.freebsd.org/~mm/mfsbsd/</uri>,
+ 其中連結有該工具的最新 release 部分。</para>
+
+ <para>請注意:<application>mfsBSD</application> 內部運作方式的細節,不
+ 在本文介紹範圍之內。 若對這方面有興趣的讀者,可至
+ <application>mfsBSD</application> 官網查閱相關文件。</para>
+
+ <para>首先下載最新的 <application>mfsBSD</application> 並解壓縮之,
+ 然後切到解壓縮後的工作目錄,也就是 <application>mfsBSD</application>
+ script 檔所在處:</para>
+
+ <screen>&prompt.root; <userinput>fetch http://people.freebsd.org/~mm/mfsbsd/mfsbsd-latest.tar.gz</userinput>
+&prompt.root; <userinput>tar xvzf mfsbsd-1.0-beta1.tar.gz</userinput>
+&prompt.root; <userinput>cd mfsbsd-1.0-beta1/</userinput></screen>
+
+ <sect2 xml:id="mfsbsd-config">
+ <title>設定 <application>mfsBSD</application></title>
+
+ <para>在將 <application>mfsBSD</application> 開機之前,
+ 有幾個重要設定要先設妥。 此時最重要的設定,很明顯就是網路設定。
+ 到底網路怎麼設最好,則取決於所處的網路環境,
+ 以及該網路卡會以哪一種驅動程式載入而定。 我們將會看到
+ <application>mfsBSD</application> 如何在任何網路情況下進行設定。</para>
+
+ <para>另一件重要事就是設定 <systemitem class="username">root</systemitem> 密碼。
+ 這點可以透過 <filename>conf/rootpw.conf</filename> 來完成。
+ 請切記:該檔密碼是以明文方式存放,因此不建議放真正平常有在用的密碼。
+ 然而這密碼只是臨時密碼而已,可以在之後開機時再做更換。</para>
+
+ <sect3>
+ <title>設定網路(<filename>conf/interfaces.conf</filename> 方式)</title>
+
+ <para>若對要裝的機器網卡為何還不知道是哪一款,但可以善加利用
+ <application>mfsBSD</application> 的自動偵測功能。
+ <application>mfsBSD</application> 的開機 script 會根據網卡的 MAC
+ 位址範圍來偵測正確的驅動程式,像是下列的
+ <filename>conf/interfaces.conf</filename> 設定內容:</para>
+
+ <programlisting>initconf_interfaces="ext1"
+initconf_mac_ext1="00:00:00:00:00:00"
+initconf_ip_ext1="192.168.0.2"
+initconf_netmask_ext1="255.255.255.0"</programlisting>
+
+ <para>別忘了在 <filename>conf/rc.conf</filename> 內要加上
+ <literal>defaultrouter</literal> 的相關設定:</para>
+
+ <programlisting>defaultrouter="192.168.0.1"</programlisting>
+ </sect3>
+
+ <sect3>
+ <title>設定網路(<filename>conf/rc.conf</filename> 方式)</title>
+
+ <para>若已經知道網卡是哪一種,那麼要設定網路的話直接改
+ <filename>conf/rc.conf</filename> 會比較方便。
+ 該檔設定語法與 &os; 標準的 &man.rc.conf.5; 是一致的。</para>
+
+ <para>舉個例子,若知道該機器網卡是用 &man.re.4;,那麼就在
+ <filename>conf/rc.conf</filename> 做下列類似設定:</para>
+
+ <programlisting>defaultrouter="192.168.0.1"
+ifconfig_re0="inet 192.168.0.2 netmask 255.255.255.0"</programlisting>
+ </sect3>
+ </sect2>
+
+ <sect2 xml:id="mfsbsd-build">
+ <title>打造 <application>mfsBSD</application> image</title>
+
+ <para>打造 <application>mfsBSD</application>
+ image 檔的過程相當簡單。</para>
+
+ <para>首先是把 &os; 安裝光碟或者安裝用的 <acronym>ISO</acronym> image
+ 檔丟到 <filename>/cdrom</filename>。
+ 為維持所有例子的一致,本文假設都是用 &os; 7.0-RELEASE
+ <acronym>ISO</acronym>。 而把 ISO image 檔掛載到 <filename>/cdrom</filename> 目錄相當簡單,
+ 就是用 &man.mdconfig.8;:</para>
+
+ <screen>&prompt.root; <userinput>mdconfig -a -t vnode -u 10 -f 7.0-RELEASE-amd64-disc1.iso</userinput>
+&prompt.root; <userinput>mount_cd9660 /dev/md10 /cdrom</userinput></screen>
+
+ <para>接著就開始打造可開機的 <application>mfsBSD</application>
+ image:</para>
+
+ <screen>&prompt.root; <userinput>make BASE=/cdrom/7.0-RELEASE</userinput></screen>
+
+ <note>
+ <para>上述的 <command>make</command> 指令要在
+ <application>mfsBSD</application> 的最上層目錄執行,比方說 <filename>~/mfsbsd-1.0-beta1/</filename>。</para>
+ </note>
+ </sect2>
+
+ <sect2>
+ <title><application>mfsBSD</application> 開動</title>
+
+ <para>現在 <application>mfsBSD</application> image 已經備妥,
+ 要上傳到遠端機器的救急系統或者預先安裝的 &linux; distribution。
+ 要完成這工作最適合的工具就是 <application>scp</application>:</para>
+
+ <screen>&prompt.root; <userinput>scp disk.img root@192.168.0.2:.</userinput></screen>
+
+ <para>為了能順利啟動 <application>mfsBSD</application> image,
+ 要把檔案放在欲安裝機器的第一顆(可開機)硬碟上。
+ 假設例子的第一顆開機硬碟代號為 <filename>sda</filename>,
+ 那麼作法就類似下面這樣:</para>
+
+ <screen>&prompt.root; <userinput>dd if=/root/disk.img of=/dev/sda bs=1m</userinput></screen>
+
+ <para>若一切順利,該 image 檔現在應該會在第一顆硬碟的
+ <acronym>MBR</acronym> 磁區並可以開始進行重開機了。 可以用
+ &man.ping.8; 工具來檢測該機器開機完畢與否。 一旦 ping 到之後,
+ 就可以透過 &man.ssh.1; 連進去,並且用 <systemitem class="username">root</systemitem>
+ 以及剛設定的密碼登入。</para>
+ </sect2>
+ </sect1>
+
+ <sect1 xml:id="installation">
+ <title>&os; 作業系統的安裝</title>
+
+ <para>現在 <application>mfsBSD</application> 已順利啟動,並且應該可以透過
+ &man.ssh.1; 方式來連。 本節將介紹如何建立 slice 分割、設定
+ <application>gmirror</application> 以作 RAID-1、如何以
+ <application>sysinstall</application> 來安裝 &os;
+ 作業系統的最小化安裝。</para>
+
+ <sect2>
+ <title>準備硬碟</title>
+
+ <para>首先要作的是配置硬碟空間給 &os;,像是建立 slice 跟分割區。
+ 很明顯地,目前在跑的作業系統是載入到系統記憶體內執行,
+ 因此要對硬碟配置並無任何問題。 這些工作可以用
+ <application>sysinstall</application> 或者以 &man.fdisk.8; 搭配
+ &man.bsdlabel.8; 來完成。</para>
+
+ <para>首先先把各硬碟都先清空。 請對各硬碟作下列指令:</para>
+
+ <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/ad0 count=2</userinput></screen>
+
+ <para>接著,以您慣用的工具來建立 slice 以及設定 label。 通常會建議以
+ 的 <application>sysinstall</application> 工具來作會比較輕鬆,
+ 或者是強而又不太會出槌的文字介面 &unix; 標準工具(像是 &man.fdisk.8;,
+ &man.bsdlabel.8;),這部分稍後也會一併介紹。 前者部分在 &os; Handbook
+ 的 <link xlink:href="&url.books.handbook;/install-steps.html">安裝
+ &os;</link> 章節有相當詳盡的介紹,所以這邊主要要介紹的是如何建立
+ RAID-1 系統以及 <application>ZFS</application>。
+ 這邊會介紹建立以 &man.gmirror.8; 做成的小型 mirrored 檔案系統:
+ <filename>/</filename> (根目錄), <filename>/usr</filename> 以及 <filename>/var</filename>,而硬碟的其餘剩餘空間則通通以
+ &man.zpool.8; 做成 <application>ZFS</application> 的 mirrored 檔案系統
+ 。 請注意:必須要先把 &os; 作業系統裝好並開完機後,才能進行設定
+ <application>ZFS</application> 檔案系統。</para>
+
+ <para>下面的例子會介紹如何建立 slice 以及 label、在每個分割區上啟用
+ &man.gmirror.8;、如何在每個 mirrored 分割區上建立
+ <application>UFS2</application> 檔案系統:</para>
+
+ <screen>&prompt.root; <userinput>fdisk -BI /dev/ad0</userinput> <co xml:id="fdisk"/>
+&prompt.root; <userinput>fdisk -BI /dev/ad1</userinput>
+&prompt.root; <userinput>bsdlabel -wB /dev/ad0s1</userinput> <co xml:id="bsdlabel-writing"/>
+&prompt.root; <userinput>bsdlabel -wB /dev/ad1s1</userinput>
+&prompt.root; <userinput>bsdlabel -e /dev/ad0s1</userinput> <co xml:id="bsdlabel-editing"/>
+&prompt.root; <userinput>bsdlabel /dev/ad0s1 &gt; /tmp/bsdlabel.txt &amp;&amp; bsdlabel -R /dev/ad1s1 /tmp/bsdlabel.txt</userinput> <co xml:id="bsdlabel-restore"/>
+&prompt.root; <userinput>gmirror label root /dev/ad[01]s1a</userinput> <co xml:id="gmirror1"/>
+&prompt.root; <userinput>gmirror label var /dev/ad[01]s1d</userinput>
+&prompt.root; <userinput>gmirror label usr /dev/ad[01]s1e</userinput>
+&prompt.root; <userinput>gmirror label -F swap /dev/ad[01]s1b</userinput> <co xml:id="gmirror2"/>
+&prompt.root; <userinput>newfs /dev/mirror/root</userinput> <co xml:id="newfs"/>
+&prompt.root; <userinput>newfs /dev/mirror/var</userinput>
+&prompt.root; <userinput>newfs /dev/mirror/usr</userinput></screen>
+
+ <calloutlist>
+ <callout arearefs="fdisk">
+ <para>對該硬碟建立 slice 並且在第零軌處將開機表作初始。
+ 請對該機器所有硬碟都作此一動作。</para>
+ </callout>
+
+ <callout arearefs="bsdlabel-writing">
+ <para>對各硬碟寫入 label 以及 bootstrap 碼。</para>
+ </callout>
+
+ <callout arearefs="bsdlabel-editing">
+ <para>現在手動修改該硬碟的 label,至於如何建立分割區(partitions)
+ 請參閱 &man.bsdlabel.8; 說明。
+ 分割區分別建立:<literal>a</literal> 是給 <filename>/</filename> (根目錄),
+ <literal>b</literal> 給 swap,
+ <literal>d</literal> 給 <filename>/var</filename>,
+ <literal>e</literal> 給 <filename>/usr</filename>,
+ 最後,會在稍後步驟把 <literal>f</literal> 給
+ <application>ZFS</application> 使用。</para>
+ </callout>
+
+ <callout arearefs="bsdlabel-restore">
+ <para>把剛剛的 label 設定先匯出,再匯入到第二顆硬碟上,
+ 如此一來兩邊的硬碟 label 設定就會同樣。</para>
+ </callout>
+
+ <callout arearefs="gmirror1">
+ <para>在各分割區上啟用 &man.gmirror.8;</para>
+ </callout>
+
+ <callout arearefs="gmirror2">
+ <para>請注意:<option>-F</option> 選項是用在 swap 上。
+ 這參數會讓 &man.gmirror.8; 認為該硬體是處於可靠狀態,
+ 即使發生電源故障或系統當掉,也不會去同步。</para>
+ </callout>
+
+ <callout arearefs="newfs">
+ <para>在各個有做 mirror 的分割區上建立 <application>UFS2</application>
+ 檔案系統</para>
+ </callout>
+ </calloutlist>
+ </sect2>
+
+ <sect2>
+ <title>系統安裝</title>
+
+ <para>這裡是最重要的一環,
+ 本節介紹實際上如何在先前一節所做好的硬碟安裝最小化的 &os;,
+ 為了完成此一目標,所有檔案系統都必須掛載妥當,才能讓
+ <application>sysinstall</application> 可以把 &os; 裝到硬碟內:</para>
+
+ <screen>&prompt.root; <userinput>mount /dev/mirror/root /mnt</userinput>
+&prompt.root; <userinput>mkdir /mnt/var /mnt/usr</userinput>
+&prompt.root; <userinput>mount /dev/mirror/var /mnt/var</userinput>
+&prompt.root; <userinput>mount /dev/mirror/usr /mnt/usr</userinput></screen>
+
+ <para>做完上述動作之後,請執行 &man.sysinstall.8;。 請從主選單中選擇
+ <guimenuitem>Custom</guimenuitem> 安裝,選
+ <guimenuitem>Options</guimenuitem> 按 <keycap>Enter</keycap>。
+ 然後以方向鍵移動到 <literal>Install Root</literal> 處,按
+ <keycap>Space</keycap> 鍵然後改為 <filename>/mnt</filename>,再按 <keycap>Enter</keycap>
+ 鍵以將修改值存起來,然後按 <keycap>q</keycap> 鍵即可離開這個
+ <guimenuitem>Options</guimenuitem> 畫面。</para>
+
+ <warning>
+ <para>請注意:本步驟極為重要,若忽略的話那麼
+ <application>sysinstall</application> 就沒辦法安裝 &os;。</para>
+ </warning>
+
+ <para>接著選 <guimenuitem>Distributions</guimenuitem>,然後移動游標到
+ <option>Minimal</option> 處,按 <keycap>Space</keycap> 鍵。
+ 本文之所以介紹最小化安裝是為了要節省網路流量,因為系統安裝是透過
+ <application>ftp</application> 方式來進行。 要離開本畫面,請選
+ <option>Exit</option> 即可。</para>
+
+ <note>
+ <para>至於 <guimenuitem>Partition</guimenuitem> 及
+ <guimenuitem>Label</guimenuitem> 步驟則可略過,
+ 因為這些目前已經都設定完畢了。</para>
+ </note>
+
+ <para>在 <guimenuitem>Media</guimenuitem> 選單中請選
+ <option>FTP</option>。 請選最近的 mirror 站,並且讓
+ <application>sysinstall</application> 假設網路已經設妥。
+ 接下來就會回到 <guimenuitem>Custom</guimenuitem> 選單。</para>
+
+ <para>最後,按下 <guimenuitem>Commit</guimenuitem> 即可開始進行安裝。
+ 完成安裝後,即可離開 <application>sysinstall</application>。</para>
+ </sect2>
+
+ <sect2>
+ <title>後續安裝步驟</title>
+
+ <para>此時 &os; 作業系統應該已經裝完,然而還有些後續流程要做。
+ 必須要做一些後續設定,才能讓 &os; 可以開機跟登入。</para>
+
+ <para>現在必須要用 &man.chroot.8; 以切到剛剛新裝好的系統內。
+ 指令如下:</para>
+
+ <screen>&prompt.root; <userinput>chroot /mnt</userinput></screen>
+
+ <para>然後再打下列指令以繼續完成:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>把 <literal>GENERIC</literal> kernel 複製到
+ <filename>/boot/kernel</filename>
+ 目錄:</para>
+
+ <screen>&prompt.root; <userinput>cp -Rp /boot/GENERIC/* /boot/kernel</userinput></screen>
+ </listitem>
+
+ <listitem>
+ <para>建立 <filename>/etc/rc.conf</filename>,
+ <filename>/etc/resolv.conf</filename> 及
+ <filename>/etc/fstab</filename> 檔案。 別忘了,要記得在
+ <filename>/etc/rc.conf</filename> 檔設相關網路設定,以及把
+ <application>sshd</application> 啟用。 此外,
+ <filename>/etc/fstab</filename> 檔應該會長像下面這樣:</para>
+
+ <programlisting># Device Mountpoint FStype Options Dump Pass#
+/dev/mirror/swap none swap sw 0 0
+/dev/mirror/root / ufs rw 1 1
+/dev/mirror/usr /usr ufs rw 2 2
+/dev/mirror/var /var ufs rw 2 2
+/dev/cd0 /cdrom cd9660 ro,noauto 0 0</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>新增 <filename>/boot/loader.conf</filename> 檔,
+ 並且內容填入下列:</para>
+
+ <programlisting>geom_mirror_load="YES"
+zfs_load="YES"</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>執行下列指令,以在下次開機時啟用 <application>ZFS</application>
+ :</para>
+
+ <screen>&prompt.root; <userinput>echo 'zfs_enable="YES"' &gt;&gt; /etc/rc.conf </userinput></screen>
+ </listitem>
+
+ <listitem>
+ <para>使用 &man.adduser.8; 工具來新增其他使用者帳號。 別忘了,
+ 至少要有一個帳號得加入 <systemitem class="groupname">wheel</systemitem> 群組,
+ 才能在重開機後以該帳號切換為 root。</para>
+ </listitem>
+
+ <listitem>
+ <para>再次檢查上述相關的設定,是否有遺漏或打錯。</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>現在該系統終於可以重開機了,請用 &man.reboot.8;
+ 指令以重開機。</para>
+ </sect2>
+ </sect1>
+
+ <sect1 xml:id="zfs">
+ <title>ZFS</title>
+
+ <para>系統重開機完畢之後,應該就可以登入了。 歡迎使用全新的 &os; 安裝方式,
+ 完全透過遠端而不必接上 remote console!</para>
+
+ <para>接下來只剩要調整 &man.zpool.8; 以及建立 &man.zfs.8; 檔案系統而已。
+ <application>ZFS</application> 的建立及管理是相當淺顯易懂。 首先,
+ 建立 mirrored pool:</para>
+
+ <screen>&prompt.root; <userinput>zpool create tank mirror /dev/ad[01]s1f</userinput></screen>
+
+ <para>接著,建立檔案系統:</para>
+
+ <screen>&prompt.root; <userinput>zfs create tank/ports</userinput>
+&prompt.root; <userinput>zfs create tank/src</userinput>
+&prompt.root; <userinput>zfs set compression=gzip tank/ports</userinput>
+&prompt.root; <userinput>zfs set compression=on tank/src</userinput>
+&prompt.root; <userinput>zfs set mountpoint=/usr/ports tank/ports</userinput>
+&prompt.root; <userinput>zfs set mountpoint=/usr/src tank/src</userinput></screen>
+
+ <para>一切就是這樣簡單。 若對 &os; 上的 <application>ZFS</application>
+ 細節部分有興趣,請參閱 &os; Wiki 上的 <link xlink:href="http://wiki.freebsd.org/ZFS">ZFS</link> 一節說明。</para>
+ </sect1>
+</article>
diff --git a/zh_TW.Big5/books/Makefile b/zh_TW.UTF-8/books/Makefile
index 176ffedb82..176ffedb82 100644
--- a/zh_TW.Big5/books/Makefile
+++ b/zh_TW.UTF-8/books/Makefile
diff --git a/zh_TW.UTF-8/books/Makefile.inc b/zh_TW.UTF-8/books/Makefile.inc
new file mode 100644
index 0000000000..dd9acff37a
--- /dev/null
+++ b/zh_TW.UTF-8/books/Makefile.inc
@@ -0,0 +1,5 @@
+#
+# $FreeBSD$
+#
+
+DESTDIR?= ${DOCDIR}/zh_TW.UTF-8/books/${.CURDIR:T}
diff --git a/zh_TW.Big5/books/developers-handbook/Makefile b/zh_TW.UTF-8/books/developers-handbook/Makefile
index 81fed7b836..81fed7b836 100644
--- a/zh_TW.Big5/books/developers-handbook/Makefile
+++ b/zh_TW.UTF-8/books/developers-handbook/Makefile
diff --git a/zh_TW.Big5/books/developers-handbook/book.xml b/zh_TW.UTF-8/books/developers-handbook/book.xml
index 9e8fd8f9ed..6b48de373f 100644
--- a/zh_TW.Big5/books/developers-handbook/book.xml
+++ b/zh_TW.UTF-8/books/developers-handbook/book.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd" [
<!ENTITY % chapters SYSTEM "chapters.ent"> %chapters;
@@ -13,7 +13,7 @@
<info><title>FreeBSD Developers' Handbook</title>
- <author><orgname>FreeBSD pe</orgname></author>
+ <author><orgname>FreeBSD 文件計畫</orgname></author>
<pubdate>August 2000</pubdate>
@@ -48,24 +48,24 @@
<abstract>
<para>
- wϥ Developers' HandbookI
- oOѳ\hH <emphasis>_g</emphasis> ӦA
- ӥB\h`ݧsΪ̤e٬O@ťաA
- pGAQ FreeBSD pA
- бHH &a.doc;C
+ 歡迎使用 Developers' Handbook!
+ 這份文件是由許多人 <emphasis>不斷撰寫</emphasis> 而成的,
+ 而且許多章節仍需更新或者內容還是一片空白,
+ 如果你想幫忙 FreeBSD 文件計劃,
+ 請寄信到 &a.doc;。
</para>
<para>
- ̷s󳣦b <link xlink:href="&url.base;/index.html">FreeBSD x</link> WA
- ]iq <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">FreeBSD FTP server</link> UP榡ơC
- M]iHbL <link xlink:href="&url.books.handbook;/mirrors-ftp.html">mirror</link>UC
+ 最新版的文件都在 <link xlink:href="&url.base;/index.html">FreeBSD 官網</link> 上面,
+ 也可從 <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">FreeBSD FTP server</link> 下載不同格式的資料。
+ 當然也可以在其他的 <link xlink:href="&url.books.handbook;/mirrors-ftp.html">mirror站</link>下載。
</para>
</abstract>
</info>
<part xml:id="Basics">
- <title>򥻷</title>
+ <title>基本概念</title>
&chap.introduction;
&chap.tools;
@@ -84,21 +84,21 @@
</part>
<part xml:id="kernel">
- <title>Kernel(֤)</title>
+ <title>Kernel(核心)</title>
&chap.kerneldebug;
</part>
<part xml:id="architectures">
- <title>Architectures(q[c)</title>
+ <title>Architectures(電腦架構)</title>
&chap.x86;
</part>
<part xml:id="appendices">
- <title></title>
+ <title>附錄</title>
<bibliography>
diff --git a/zh_TW.Big5/books/developers-handbook/chapters.ent b/zh_TW.UTF-8/books/developers-handbook/chapters.ent
index 1a2c61c0be..481ce9a436 100644
--- a/zh_TW.Big5/books/developers-handbook/chapters.ent
+++ b/zh_TW.UTF-8/books/developers-handbook/chapters.ent
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
Creates entities for each chapter in the FreeBSD Developer's
Handbook. Each entity is named chap.foo, where foo is the value
diff --git a/zh_TW.Big5/books/developers-handbook/introduction/chapter.xml b/zh_TW.UTF-8/books/developers-handbook/introduction/chapter.xml
index 2bc7881318..636eff06d5 100644
--- a/zh_TW.Big5/books/developers-handbook/introduction/chapter.xml
+++ b/zh_TW.UTF-8/books/developers-handbook/introduction/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
@@ -6,7 +6,7 @@
Original revision: 1.18
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="introduction">
- <info><title>²</title>
+ <info><title>簡介</title>
<authorgroup>
<author><personname><firstname>Murray</firstname><surname>Stokely</surname></personname><contrib>Contributed by </contrib></author>
<author><personname><firstname>Jeroen</firstname><surname>Ruigrok van der Werven</surname></personname></author>
@@ -15,60 +15,60 @@
<sect1 xml:id="introduction-devel">
- <title>b FreeBSD }o{</title>
- <para>nFڭ̶}laIڷQA FreeBSD wgw˦nFAӥBwgdzƦnnΥgI{FaH
- Onq̶}lOH&os; Ѽg{{ҶܡH
- programer ڥiHOH</para>
+ <title>在 FreeBSD 開發程式</title>
+ <para>好了我們開始吧!我想你的 FreeBSD 已經安裝好了,而且已經準備好要用它寫點程式了吧?
+ 但是要從哪裡開始呢?&os; 有提供寫程式的程式或環境嗎?
+ 身為 programer 的我可以做什麼呢?</para>
- <para>յۦ^A@ǰDAMAN programming {רӻiܦhؼhA
- HuO·AhOLM~A
- DneOw{Ǫ̡A
- MA󨺨Ǥ &os; {}o̦ӨA󤺮e]OQΪC</para>
+ <para>本章試著回答你一些問題,當然,單就 programming 程度來說可分很多種層次,
+ 有的人只是單純當興趣,有的則是他的專業,
+ 本章主要內容是針對程式初學者,
+ 當然,對於那些不熟 &os; 的程式開發者而言,本文件內容也是十分實用的。</para>
</sect1>
<sect1 xml:id="introduction-bsdvision">
<title>The BSD Vision</title>
- <para>FAgXӪ{b &unix; liketΤW㦳}nϥΩʡBįMíwʡA
- ڭ̥AФ@ǵ{(original software tools ideology)C </para>
+ <para>為了讓你寫出來的程式在 &unix; like系統上具有良好的使用性、效能和穩定性,
+ 我們必須跟你介紹一些程式概念(original software tools ideology)。 </para>
</sect1>
<sect1 xml:id="introduction-archguide">
- <title>{[cn</title>
+ <title>程式架構指南</title>
- <para>ڭ̷QЪpU</para>
+ <para>我們想介紹的概念如下</para>
<itemizedlist>
- <listitem><para>bӵ{٨SgeAnW[s\C</para></listitem>
+ <listitem><para>在整個程式還沒寫完前,不要增加新的功能。</para></listitem>
- <listitem><para>t~@ӭINOAAۤvܧA{N|㦳إ\A
- ӤOOHMwAQnh@ɪݨDADAQA{㦳XRʩάۮeʡC</para></listitem>
+ <listitem><para>另外一個重點就是,讓你自己選擇你的程式將會具有何種功能,
+ 而不是讓別人決定,不想要去滿足全世界的需求,除非你想讓你的程式具有擴充性或相容性。</para></listitem>
- <listitem><para>dUOGbSgɡAѦҽdҵ{XҼgXӪ{A
- |ۤv̪żgXӪnC</para></listitem>
+ <listitem><para>千萬記住:在沒有相關經驗時,參考範例程式碼所寫出來的程式,
+ 會比自己憑空寫出來的好。</para></listitem>
- <listitem><para>Ag{SkѨMDɡA̦nkNOnյۭnhѨMC</para></listitem>
+ <listitem><para>當你寫的程式沒辦法完全解決問題時,最好的方法就是不要試著要去解決它。</para></listitem>
- <listitem><para>Y 10% ߤON໴P 90% u@qANγo²klaC</para></listitem>
+ <listitem><para>若用 10% 的心力就能輕鬆完成 90% 的工作份量,就用這個簡單法子吧。</para></listitem>
- <listitem><para>ɥia²ưDC</para></listitem>
+ <listitem><para>盡可能地簡化問題的複雜。</para></listitem>
- <listitem><para>Ѿ(mechanism)AӫDh(policy)C
- 軡AϥΪ̤vѨϥΪ̨ӨMwC</para></listitem>
+ <listitem><para>提供機制(mechanism),而非原則(policy)。
+ 比方說,把使用者介面選擇權交由使用者來決定。</para></listitem>
</itemizedlist>
- <para>HWK Scheifler &amp; Gettys "X Window System" פ</para>
+ <para>以上摘自 Scheifler &amp; Gettys 的 "X Window System" 論文</para>
</sect1>
<sect1 xml:id="introduction-layout">
- <title><filename>/usr/src</filename> [c</title>
+ <title><filename>/usr/src</filename> 的架構</title>
- <para>㪺 FreeBSD lXb} CVS repository C
- q` FreeBSD lX|˦b <filename>/usr/src</filename>A
- ӥB]tUClؿG</para>
+ <para>完整的 FreeBSD 原始碼都在公開的 CVS repository 中。
+ 通常 FreeBSD 原始碼都會裝在 <filename>/usr/src</filename>,
+ 而且包含下列子目錄:</para>
<para>
<informaltable frame="none" pgwide="1">
diff --git a/zh_TW.Big5/books/developers-handbook/ipv6/chapter.xml b/zh_TW.UTF-8/books/developers-handbook/ipv6/chapter.xml
index c28ffa5d1b..a7b78244fb 100644
--- a/zh_TW.Big5/books/developers-handbook/ipv6/chapter.xml
+++ b/zh_TW.UTF-8/books/developers-handbook/ipv6/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
diff --git a/zh_TW.Big5/books/developers-handbook/kerneldebug/Makefile b/zh_TW.UTF-8/books/developers-handbook/kerneldebug/Makefile
index 0f3b90b3e1..0f3b90b3e1 100644
--- a/zh_TW.Big5/books/developers-handbook/kerneldebug/Makefile
+++ b/zh_TW.UTF-8/books/developers-handbook/kerneldebug/Makefile
diff --git a/zh_TW.Big5/books/developers-handbook/kerneldebug/chapter.xml b/zh_TW.UTF-8/books/developers-handbook/kerneldebug/chapter.xml
index 6afe2c893f..a2cd16fa99 100644
--- a/zh_TW.Big5/books/developers-handbook/kerneldebug/chapter.xml
+++ b/zh_TW.UTF-8/books/developers-handbook/kerneldebug/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
diff --git a/zh_TW.Big5/books/developers-handbook/l10n/chapter.xml b/zh_TW.UTF-8/books/developers-handbook/l10n/chapter.xml
index 79cd415edf..548fd08e3a 100644
--- a/zh_TW.Big5/books/developers-handbook/l10n/chapter.xml
+++ b/zh_TW.UTF-8/books/developers-handbook/l10n/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
diff --git a/zh_TW.Big5/books/developers-handbook/policies/Makefile b/zh_TW.UTF-8/books/developers-handbook/policies/Makefile
index 771a262e60..771a262e60 100644
--- a/zh_TW.Big5/books/developers-handbook/policies/Makefile
+++ b/zh_TW.UTF-8/books/developers-handbook/policies/Makefile
diff --git a/zh_TW.Big5/books/developers-handbook/policies/chapter.xml b/zh_TW.UTF-8/books/developers-handbook/policies/chapter.xml
index a76c7ceb30..9dffb99394 100644
--- a/zh_TW.Big5/books/developers-handbook/policies/chapter.xml
+++ b/zh_TW.UTF-8/books/developers-handbook/policies/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
diff --git a/zh_TW.Big5/books/developers-handbook/secure/chapter.xml b/zh_TW.UTF-8/books/developers-handbook/secure/chapter.xml
index 872ac15ade..e382c5fc69 100644
--- a/zh_TW.Big5/books/developers-handbook/secure/chapter.xml
+++ b/zh_TW.UTF-8/books/developers-handbook/secure/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
diff --git a/zh_TW.Big5/books/developers-handbook/sockets/chapter.xml b/zh_TW.UTF-8/books/developers-handbook/sockets/chapter.xml
index 06cc5a6f11..38d74e686c 100644
--- a/zh_TW.Big5/books/developers-handbook/sockets/chapter.xml
+++ b/zh_TW.UTF-8/books/developers-handbook/sockets/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
diff --git a/zh_TW.Big5/books/developers-handbook/testing/chapter.xml b/zh_TW.UTF-8/books/developers-handbook/testing/chapter.xml
index 32f548f012..fde68a1b61 100644
--- a/zh_TW.Big5/books/developers-handbook/testing/chapter.xml
+++ b/zh_TW.UTF-8/books/developers-handbook/testing/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
diff --git a/zh_TW.Big5/books/developers-handbook/tools/chapter.xml b/zh_TW.UTF-8/books/developers-handbook/tools/chapter.xml
index 7f0f4fb633..c9ca702ca2 100644
--- a/zh_TW.Big5/books/developers-handbook/tools/chapter.xml
+++ b/zh_TW.UTF-8/books/developers-handbook/tools/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
@@ -6,7 +6,7 @@
Original revision: 1.46
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="tools">
- <info><title>{}ou</title>
+ <info><title>程式開發工具</title>
<authorgroup>
<author><personname><firstname>James</firstname><surname>Raynard</surname></personname><contrib>Contributed by </contrib></author>
<author><personname><firstname>Murray</firstname><surname>Stokely</surname></personname></author>
@@ -14,93 +14,93 @@
</info>
- <sect1 xml:id="tools-synopsis"><title></title>
+ <sect1 xml:id="tools-synopsis"><title>概敘</title>
- <para>NЦpϥΤ@ FreeBSD ҴѪ{}ou(programing tools)A
- ҤЪu{bL &unix; W]iϥΡA
- b <emphasis>ä|</emphasis> մyzg{ɪCӲӸ`A
- jgTO]AHeSΥuּƪg{gA
- LA٬OƱjhƪ{}oHqso@DZҵoC</para>
+ <para>本章將介紹如何使用一些 FreeBSD 所提供的程式開發工具(programing tools),
+ 本章所介紹的工具程式在其他版本的 &unix; 上也可使用,
+ 在此 <emphasis>並不會</emphasis> 嘗試描述寫程式時的每個細節,
+ 本章大部分篇幅都是假設你以前沒有或只有少數的寫程式經驗,
+ 不過,還是希望大多數的程式開發人員都能從中重新得到一些啟發。</para>
</sect1>
- <sect1 xml:id="tools-intro"><title>²</title>
+ <sect1 xml:id="tools-intro"><title>簡介</title>
- <para>FreeBSD Ѥ@ӫD`Ϊ}oҡA
- pO CBC++BFortran M assembler(զXy)sĶ(compiler),
- b FreeBSD wg]tb򥻪tΤF
- O Perl MLз &unix; uAO<command>sed</command> H <command>awk</command>A
- pGA٬OıoAFreeBSDb Ports collection ٴѨLsĶMĶ(interpreter),
- FreeBSD ۮe\hзǡAO <acronym>&posix;</acronym> M <acronym>ANSI</acronym> CA
- M٦~Ӫ BSD DzΡC
- ҥHb FreeBSD Wg{ݭקγhyLקANiHb\hxWsĶBC</para>
+ <para>FreeBSD 提供一個非常棒的開發環境,
+ 比如說像是 C、C++、Fortran 和 assembler(組合語言)的編譯器(compiler),
+ 在 FreeBSD 中都已經包含在基本的系統中了
+ 更別提 Perl 和其他標準 &unix; 工具,像是<command>sed</command> 以及 <command>awk</command>,
+ 如果你還是覺得不夠,FreeBSD在 Ports collection 中還提供其他的編譯器和直譯器(interpreter),
+ FreeBSD 相容許多標準,像是 <acronym>&posix;</acronym> 和 <acronym>ANSI</acronym> C,
+ 當然還有它所繼承的 BSD 傳統。
+ 所以在 FreeBSD 上寫的程式不需修改或頂多稍微修改,就可以在許多平台上編譯、執行。</para>
- <para>LצpANAqӨSb &unix; xWgL{A]iHPFreeBSD OHLkܩڪgH]OC
- ؼдNOUAֳtWAӼȮɤݲ`JӦhiDDA
- åBѤ@ǰ¦AHAiHAѧڭ̦bǤC</para>
+ <para>無論如何,就算你從來沒在 &unix; 平台上寫過程式,也可以徹底感受到FreeBSD 令人無法抗拒的迷人魔力。
+ 本章的目標就是協助你快速上手,而暫時不需深入太多進階主題,
+ 並且講解一些基礎概念,以讓你可以瞭解我們在講些什麼。</para>
- <para>eänDAo{}ogAΪ̧Au@IIgӤwC
- LAڭ̰]Awg| &unix; tΪ򥻾ާ@A
- ӥB󭫭nOAЫO֩DzߪߺAI</para>
+ <para>本章內容並不要求你得有程式開發經驗,或者你只有一點點的經驗而已。
+ 不過,我們假設你已經會 &unix; 系統的基本操作,
+ 而且更重要的是,請保持樂於學習的心態!</para>
</sect1>
<sect1 xml:id="tools-programming">
- <title>Programming </title>
+ <title>Programming 概念</title>
- <para>²檺A{uO@OXFӳoǫOOΨӧiDqӭn@ǨƱC
- ɭԡAOMe@ӫOGөwC
- N|iDA 2 ӥDnkAAiHqUFoǫ(instruction) <quote>RO(commands)</quote>C
- Ĥ@ӤkNO <firstterm>Ķ(interpreter)</firstterm>A
- ӲĤGӤkO <firstterm>sĶ(compiler)</firstterm>C
- ѩqӨAHyyNLҽkӤzѡA
- ]RO(commands)N`|H@(Φh){ygAΨӫܹqҭn檺Swʧ@C</para>
+ <para>簡單的說,程式只是一堆指令的集合體;而這些指令是用來告訴電腦應該要作那些事情。
+ 有時候,指令的執行取決於前一個指令的結果而定。
+ 本章將會告訴你有 2 個主要的方法,讓你可以對電腦下達這些指示(instruction) 或 <quote>命令(commands)</quote>。
+ 第一個方法就是 <firstterm>直譯器(interpreter)</firstterm>,
+ 而第二個方法是 <firstterm>編譯器(compiler)</firstterm>。
+ 由於對於電腦而言,人類語言的語意過於模糊而太難理解,
+ 因此命令(commands)就常會以一種(或多種)程式語言寫成,用來指示電腦所要執行的特定動作為何。</para>
<sect2>
- <title>Ķ</title>
+ <title>直譯器</title>
- <para>ϥΪĶɡAҨϥΪ{yNܦ@ӷ|MAʪҡC
- bROܦCWWROɡAĶ|YɰөROC
- b{AiHҦQUFROβοJYɮ׸̭hA
- MIsĶhŪɮסAåBAgboɮפOC
- pGҤUO~͡AjhƪĶ|iJҦ(debugger)A
- åBܬ~TAHK{C</para>
+ <para>使用直譯器時,所使用的程式語言就像變成一個會和你互動的環境。
+ 當在命令提示列上打上命令時,直譯器會即時執行該命令。
+ 在比較複雜的程式中,可以把所有想下達的命令統統輸入到某檔案裡面去,
+ 然後呼叫直譯器去讀取該檔案,並且執行你寫在這個檔案中的指令。
+ 如果所下的指令有錯誤產生,大多數的直譯器會進入偵錯模式(debugger),
+ 並且顯示相關錯誤訊息,以便對程式除錯。</para>
- <para>oؤ覡nBbGiHߨݨO浲GAHο~]itץC
- ۹諸A̤jaBKOAQAg{ɵLHɡAoǤHnA@˪ĶC
- ӥBOѤFAL̤]n|ϥΪĶĶ{~C
- MϥΪ̤]Ʊ椣p߫ANiJҦӤұC
- NIJvӨAĶ|ϥΨܦhOA
- ӥBoĶ{Aq`ä|sĶҽsĶ{󦳮IJvC</para>
+ <para>這種方式好處在於:可以立刻看到指令的執行結果,以及錯誤也可迅速修正。
+ 相對的,最大的壞處便是當你想把你寫的程式分享給其他人時,這些人必須要有跟你一樣的直譯器。
+ 而且別忘了,他們也要會使用直譯器直譯程式才行。
+ 當然使用者也不希望不小心按錯鍵,就進入偵錯模式而不知所措。
+ 就執行效率而言,直譯器會使用到很多的記憶體,
+ 而且這類直譯式程式,通常並不會比編譯器所編譯的程式的更有效率。</para>
- <para>̭ӤH{ApGAeSǹL{yA̦nǾDzߪĶy(interpreted languages)A
- O LispASmalltalkAPerl M Basic OA&unix; shell O <command>sh</command> M <command>csh</command>
- ̥NOĶAƹWAܦhHb̦ۤvWgU shell <quote>script</quote>A
- ӶQU <quote>housekeeping(@)</quote> ȡC
- &unix; ϥέǤ@NOѤjqpuA
- èϥ shell script ӲզXBγoǤpuAHKu@󦳮IJvC</para>
+ <para>筆者個人認為,如果你之前沒有學過任何程式語言,最好先學學習直譯式語言(interpreted languages),
+ 像是 Lisp,Smalltalk,Perl 和 Basic 都是,&unix; 的 shell 像是 <command>sh</command> 和 <command>csh</command>
+ 它們本身就是直譯器,事實上,很多人都在它們自己機器上撰寫各式的 shell <quote>script</quote>,
+ 來順利完成各項 <quote>housekeeping(維護)</quote> 任務。
+ &unix; 的使用哲學之一就是提供大量的小工具,
+ 並使用 shell script 來組合運用這些小工具,以便工作更有效率。</para>
</sect2>
<sect2>
- <title>FreeBSD ѪĶ</title>
+ <title>FreeBSD 提供的直譯器</title>
- <para>Uo䦳 &os; Ports Collection ҴѪĶMA٦Qפ@Ǥw諸Ķy</para>
+ <para>下面這邊有份 &os; Ports Collection 所提供的直譯器清單,還有討論一些比較受歡迎的直譯式語言</para>
- <para>ܩpϥ Ports Collection w˪AiѾ\ FreeBSD Handbook
- <link xlink:href="&url.books.handbook;/ports-using.html">Ports`</link>C</para>
+ <para>至於如何使用 Ports Collection 安裝的說明,可參閱 FreeBSD Handbook 中的
+ <link xlink:href="&url.books.handbook;/ports-using.html">Ports章節</link>。</para>
<variablelist>
<varlistentry>
<term><acronym>BASIC</acronym></term>
<listitem>
- <para>BASIC O Beginner's ALL-purpose Symbolic Instruction Code YgC
- BASIC 1950 ~N}loiA̪}ooMyتOFоɷɪjǾǥͦpg{C
- F 1980A<acronym>BASIC</acronym>wgOܦh programmer Ĥ@ӾDzߪ{yFC
- ~ABASIC ]O Visual Basic ¦C</para>
+ <para>BASIC 是 Beginner's ALL-purpose Symbolic Instruction Code 的縮寫。
+ BASIC 於 1950 年代開始發展,最初開發這套語言的目的是為了教導當時的大學學生如何寫程式。
+ 到了 1980,<acronym>BASIC</acronym>已經是很多 programmer 第一個學習的程式語言了。
+ 此外,BASIC 也是 Visual Basic 的基礎。</para>
- <para>FreeBSD Ports Collection ] BASIC ĶC
- Bywater Basic Ķb <package>lang/bwbasic</package>C
- Phil Cockroft's Basic Ķ(]s Rabbit Basic)b <package>lang/pbasic</package>C</para>
+ <para>FreeBSD Ports Collection 也有收錄相關的 BASIC 直譯器。
+ Bywater Basic 直譯器放在 <package>lang/bwbasic</package>。
+ 而 Phil Cockroft's Basic 直譯器(早期也叫 Rabbit Basic)放在 <package>lang/pbasic</package>。</para>
</listitem>
</varlistentry>
@@ -108,21 +108,21 @@
<term>Lisp</term>
<listitem>
- <para>LISP Ob 1950 ~N}loi@ӪĶyAӥB LISP NO@
- <quote>number-crunching</quote> languages(tijqB⪺{y)AbɺO@ӴM{yC
- LISP FOƦr(numbers)AӬO(lists)C
- ӳ̯ܥX LISP S⪺aNbG LISP O <quote>List Processing</quote> YgC
- b<acronym>Huz(Artificial Intelligence, AI)</acronym>W LISP UΫD`MC</para>
+ <para>LISP 是在 1950 年代開始發展的一個直譯式語言,而且 LISP 就是一種
+ <quote>number-crunching</quote> languages(迅速進行大量運算的程式語言),在當時算是一個普遍的程式語言。
+ LISP 的表達不是基於數字(numbers),而是基於表(lists)。
+ 而最能表示出 LISP 特色的地方就在於: LISP 是 <quote>List Processing</quote> 的縮寫。
+ 在<acronym>人工智慧(Artificial Intelligence, AI)</acronym>領域上 LISP 的各式應用非常普遍。</para>
- <para>LISP OD`jB{yAOIO{X|D`jӥBHާ@C</para>
+ <para>LISP 是非常強悍且複雜的程式語言,但是缺點是程式碼會非常大而且難以操作。</para>
- <para>j LISP ĶiHb &unix; tΤWB@AM &os; Ports Collection ]C
- GNU Common Lisp b <package>lang/gcl</package>A
- Bruno Haible M Michael Stoll CLISP b <package>lang/clisp</package>
- A~ CMUCL(]t@Ӥwg̨ΤƪsĶ)A
- HΨL²ƪ LISP Ķ(pH C yg SLispAuδXʦ{XN@jh Common Lisp \)
- hOOb <package>lang/cmucl</package> H
- <package>lang/slisp</package>C</para>
+ <para>絕大部分的 LISP 直譯器都可以在 &unix; 系統上運作,當然 &os; 的 Ports Collection 也有收錄。
+ GNU Common Lisp 收錄在 <package>lang/gcl</package>,
+ Bruno Haible 和 Michael Stoll 的 CLISP 收錄在 <package>lang/clisp</package>
+ ,此外 CMUCL(包含一個已經最佳化的編譯器),
+ 以及其他簡化版的 LISP 直譯器(比如以 C 語言寫的 SLisp,只用幾百行程式碼就實作大多數 Common Lisp 的功能)
+ 則是分別收錄在 <package>lang/cmucl</package> 以及
+ <package>lang/slisp</package>。</para>
</listitem>
</varlistentry>
@@ -130,11 +130,11 @@
<term>Perl</term>
<listitem>
- <para>tκ޲z̦ӨA̷R perl Ӽg scripts H޲zDA
- Pɤ]g`ΨӼg WWW DW <acronym>CGI</acronym> Script {C</para>
+ <para>對系統管理者而言,最愛用 perl 來撰寫 scripts 以管理主機,
+ 同時也經常用來寫 WWW 主機上的 <acronym>CGI</acronym> Script 程式。</para>
- <para>Perl b Ports Collection <package>lang/perl5</package>C
- &os; 4.X hO Perl ˦b <command>/usr/bin/perl</command>C</para>
+ <para>Perl 在 Ports Collection 內的 <package>lang/perl5</package>。
+ 而 &os; 4.X 則是把 Perl 裝在 <command>/usr/bin/perl</command>。</para>
</listitem>
</varlistentry>
@@ -142,14 +142,14 @@
<term>Scheme</term>
<listitem>
- <para>Scheme O LISP t@AScheme SINO Common LISP ٭n²䦳OC
- ѩ Scheme ²AҥHܦhjǮӷ@Ĥ@{yоDZЧC
- ӥBsHӻ]iHֳt}oL̩һݭn{C</para>
+ <para>Scheme 是 LISP 的另一分支,Scheme 的特點就是比 Common LISP 還要簡潔有力。
+ 由於 Scheme 簡單,所以很多大學拿來當作第一堂程式語言教學教材。
+ 而且對於研究人員來說也可以快速的開發他們所需要的程式。</para>
- <para>Scheme b <package>lang/elk</package>A
- Elk Scheme Ķ(ѳ¬ٲzuǰ|ҵoi Scheme Ķ)b
- <package>lang/mit-scheme</package>A
- SCM Scheme Interpreter b <package>lang/scm</package>C</para>
+ <para>Scheme 收錄在 <package>lang/elk</package>,
+ Elk Scheme 直譯器(由麻省理工學院所發展的 Scheme 直譯器)收錄在
+ <package>lang/mit-scheme</package>,
+ SCM Scheme Interpreter 收錄在 <package>lang/scm</package>。</para>
</listitem>
</varlistentry>
@@ -157,9 +157,9 @@
<term>Icon</term>
<listitem>
- <para>Icon ݰ{yAIcon 㦳jjr(String)Mc(Structure)BzOC
- &os; Ports Collection Ҧ Icon ĶhOb
- <package>lang/icon</package>C</para>
+ <para>Icon 屬高階程式語言,Icon 具有強大的字串(String)和結構(Structure)處理能力。
+ &os; Ports Collection 所收錄的 Icon 直譯器版本則是放在
+ <package>lang/icon</package>。</para>
</listitem>
</varlistentry>
@@ -167,11 +167,11 @@
<term>Logo</term>
<listitem>
- <para>Logo OخeDzߪ{yA̱`b@DZоǽҵ{Qӷ@}YdҡC
- pGnpBͶ}lW{yҪܡALogo O۷ܡC
- ]AYϹpBͨӻAn Logo ӨqXhιϧάO۷PeC</para>
+ <para>Logo 是種容易學習的程式語言,最常在一些教學課程中被拿來當作開頭範例。
+ 如果要給小朋友開始上程式語言課的話,Logo 是相當不錯的選擇。
+ 因為,即使對小朋友來說,要用 Logo 來秀出複雜多邊形圖形是相當輕鬆容易的。</para>
- <para>Logo b &os; Ports Collection ̷shOb <package>lang/logo</package>C</para>
+ <para>Logo 在 &os; Ports Collection 的最新版則是放在 <package>lang/logo</package>。</para>
</listitem>
</varlistentry>
@@ -179,12 +179,12 @@
<term>Python</term>
<listitem>
- <para>Python OɦVĶyA
- Python @`Oź Python O̦nJ{yC
- M Python iH²檺}lAONN|鵹LĶy(O Perl M Tcl)A
- ƹҩ Python ]iHӶ}ojBε{C</para>
+ <para>Python 是物件導向的直譯式語言,
+ Python 的擁護者總是宣稱 Python 是最好入門的程式語言。
+ 雖然 Python 可以很簡單的開始,但是不代表它就會輸給其他直譯式語言(像是 Perl 和 Tcl),
+ 事實證明 Python 也可以拿來開發大型、複雜的應用程式。</para>
- <para>&os; Ports Collection b <package>lang/python</package>C</para>
+ <para>&os; Ports Collection 收錄在 <package>lang/python</package>。</para>
</listitem>
</varlistentry>
@@ -192,11 +192,11 @@
<term>Ruby</term>
<listitem>
- <para>Ruby OªɦVĶyC
- Ruby ثeD`yA]bL{ykcAbg{ɪuʡA
- HΤѥͨ㦳oi@jMתOC</para>
+ <para>Ruby 是純物件導向的直譯式語言。
+ Ruby 目前非常流行,原因在於他易懂的程式語法結構,在撰寫程式時的彈性,
+ 以及天生具有輕易的發展維護大型專案的能力。</para>
- <para>&os; Ports Collection b <package>lang/ruby8</package>C</para>
+ <para>&os; Ports Collection 收錄在 <package>lang/ruby8</package>。</para>
</listitem>
</varlistentry>
@@ -204,51 +204,51 @@
<term>Tcl and Tk</term>
<listitem>
- <para>Tcl OOĶyA Tcl iHpsxBΪ]O Tcl өʡC
- Tcl ]iHֳtoi@²O㦳{Ϊ̨㦳\઺{C</para>
+ <para>Tcl 是內嵌式的直譯式語言,讓 Tcl 可以如此廣泛運用的原因是 Tcl 的移植性。
+ Tcl 也可以快速發展一個簡單但是具有雛型的程式或者具有完整功能的程式。</para>
- <para>Tcl \hib &os; WB@Aӳ̷s Tcl Tcl 8.4A
- &os; Ports Collection b <package>lang/tcl84</package>C</para>
+ <para>Tcl 許多的版本都可在 &os; 上運作,而最新的 Tcl 版本為 Tcl 8.4,
+ &os; Ports Collection 收錄在 <package>lang/tcl84</package>。</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2>
- <title>sĶ</title>
+ <title>編譯器</title>
- <para>sĶMĶ̬ۤ񪺸ܡAǤPANO{XβμgJɮ׸̭A
- MᥲsĶӸյ۽sĶ{ApGsĶҼg{AN@ק{A
- sĶBA{sĶɡC
- ~A]iHbܩROCAΦbAsĶn{ݬݥO_iHB@C
+ <para>編譯器和直譯器兩者相比的話,有些不同,首先就是必須先把程式碼統統寫入到檔案裡面,
+ 然後必須執行編譯器來試著編譯程式,如果編譯器不接受所寫的程式,那就必須一直修改程式,
+ 直到編譯器接受且把你的程式編譯成執行檔。
+ 此外,也可以在提示命令列,或在除錯器中執行你編譯好的程式看看它是否可以運作。
<footnote>
- <para>pGbܩROCUA򦳥i| core dumpC</para>
+ <para>如果在提示命令列下執行,那麼有可能會產生 core dump。</para>
</footnote></para>
- <para>ܩ㪺AϥνsĶäĶiHWo쵲GC
- ަpAsĶ\A@ܦhĶiΪ̬OF쪺ƱC
- ҦpGgM@~tαKʪ{AƦܬOAۤvg@~tΡI
- AQngXIJv{ɡAsĶKWγFC
- sĶiHbsĶɶK̨ΤƧA{AOĶoC
- ӽsĶPĶ̤jtObGAQAgn{t~@xW]ɡA
- AunNsĶsĶXӪiɡAsWKiHA
- ӪĶhnDsWAnt@xWۦPĶA
- ~ĶA{I</para>
+ <para>很明顯的,使用編譯器並不像直譯器般可以馬上得到結果。
+ 不管如何,編譯器允許你作很多直譯器不可能或者是很難達到的事情。
+ 例如:撰寫和作業系統密切互動的程式,甚至是你自己寫的作業系統!
+ 當你想要寫出高效率的程式時,編譯器便派上用場了。
+ 編譯器可以在編譯時順便最佳化你的程式,但是直譯器卻不行。
+ 而編譯器與直譯器最大的差別在於:當你想把你寫好的程式拿到另外一台機器上跑時,
+ 你只要將編譯器編譯出來的可執行檔,拿到新機器上便可以執行,
+ 而直譯器則必須要求新機器上,必須要有跟另一台機器上相同的直譯器,
+ 才能組譯執行你的程式!</para>
- <para>sĶ{y]t PascalBC M C++A
- C M C++ O@ӿ˩MOQyAOܾAX㦳g窺 ProgrammerC
- Pascal O@ӳ]pΨӱоǥΪ{yAӥB]ܾAXΨӤJA
- &os; w]èS Pascal Xi base system A
- O GNU Pascal Compiler M Free Pascal Compiler iOb
- <package>lang/gpc</package> M <package>lang/fpc</package> C</para>
+ <para>編譯式的程式語言包含 Pascal、C 和 C++,
+ C 和 C++ 不是一個親和力十足的語言,但是很適合具有經驗的 Programmer。
+ Pascal 其實是一個設計用來教學用的程式語言,而且也很適合用來入門,
+ &os; 預設並沒有把 Pascal 整合進 base system 中,
+ 但是 GNU Pascal Compiler 和 Free Pascal Compiler 都可分別在
+ <package>lang/gpc</package> 和 <package>lang/fpc</package> 中找到。</para>
- <para>pGAΤP{ӼgsĶ{A_as-sĶ--oӴ`֩w|ܷФHA
- F²ơBK{}oy{Aܦhӷ~sĶtӶ}loiҿת <acronym>IDE</acronym>
- (Integrated Development Environments) }oҡA
- FreeBSD w]èS IDE Xi base system A
- OAizL <package>devel/kdevelop</package> w kdevelop
- Ψϥ <application>Emacs</application> IDE }oҡC
- b᭱ <xref linkend="emacs"/> MDNСApH <application>Emacs</application> ӧ@ IDE }oҡC</para>
+ <para>如果你用不同的程式來寫編譯式程式,那麼不斷地編輯-編譯-執行-除錯的這個循環肯定會很煩人,
+ 為了更簡化、方便程式開發流程,很多商業編譯器廠商開始發展所謂的 <acronym>IDE</acronym>
+ (Integrated Development Environments) 開發環境,
+ FreeBSD 預設並沒有把 IDE 整合進 base system 中,
+ 但是你可透過 <package>devel/kdevelop</package> 安裝 kdevelop
+ 或使用 <application>Emacs</application> 來體驗 IDE 開發環境。
+ 在後面的 <xref linkend="emacs"/> 專題將介紹,如何以 <application>Emacs</application> 來作為 IDE 開發環境。</para>
</sect2>
@@ -256,95 +256,95 @@
<sect1 xml:id="tools-compiling">
- <title> <command>cc</command> ӽsĶ{</title>
+ <title>用 <command>cc</command> 來編譯程式</title>
- <para>dҥuw GNU C compiler M GNU C++ compiler @A
- oӦb FreeBSD base system NFA
- <command>cc</command> <command>gcc</command> NiHC
- ܩApΪĶ͵{Aq`ibĶνuW컡A]AحzC</para>
+ <para>本章範例只有針對 GNU C compiler 和 GNU C++ compiler 作說明,
+ 這兩個在 FreeBSD base system 中就有了,
+ 直接打 <command>cc</command> 或 <command>gcc</command> 就可以執行。
+ 至於,如何用直譯器產生程式的說明,通常可在直譯器的文件或線上文件找到說明,因此不再贅述。</para>
- <para>AgAǧ@AUӫKOoӵ{iHb FreeBSD WA
- q`oǭn@ǨBJ~৹AǨBJhݭnP{ӧC</para>
+ <para>當你寫完你的傑作後,接下來便是讓這個程式可以在 FreeBSD 上執行,
+ 通常這些要一些步驟才能完成,有些步驟則需要不同程式來完成。</para>
<procedure>
<step>
- <para>wBz(Pre-process)A{XA{ѡAMLޥA
- O expanding(Xj) C marcoC</para>
+ <para>預先處理(Pre-process)你的程式碼,移除程式內的註解,和其他技巧,
+ 像是 expanding(擴大) C 的 marco。</para>
</step>
<step>
- <para>T{A{ykO_T C/C++ WwApGSŦXܡAsĶ|X{ĵiC</para>
+ <para>確認你的程式語法是否確實遵照 C/C++ 的規定,如果沒有符合的話,編譯器會出現警告。</para>
</step>
<step>
- <para>NlXনզXy &mdash; y(machine code)D`۪AbHizѪd(ڻӬOo)C
+ <para>將原始碼轉成組合語言 &mdash; 它跟機器語言(machine code)非常相近,但仍在人類可理解的範圍內(據說應該是這樣)。
<footnote>
- <para>Y满_ӡAboӶq <command>cc</command> äOul{নզXyA
- ӬOର machine-independent <firstterm>p-code</firstterm>C</para>
+ <para>嚴格說起來,在這個階段 <command>cc</command> 並不是真的把原始程式轉成組合語言,
+ 而是轉為 machine-independent 的 <firstterm>p-code</firstterm>。</para>
</footnote></para>
</step>
<step>
- <para>զXyনy &mdash; OAo̻yNO`쪺 bit M byteA]NO 1 M 0C</para>
+ <para>把組合語言轉成機器語言 &mdash; 是的,這裡說的機器語言就是常提到的 bit 和 byte,也就是 1 和 0。</para>
</step>
<step>
- <para>T{{Ψ쪺禡IsBܼƬO_TA|ҨӻGpYIsFsb禡AsĶ|ĵiC</para>
+ <para>確認程式中用到的函式呼叫、全域變數是否正確,舉例來說:如若呼叫了不存在的函式,編譯器會顯示警告。</para>
</step>
<step>
- <para>pG{Oѵ{XɮרӽsĶAsĶ|X_ӡC</para>
+ <para>如果程式是由程式碼檔案來編譯,編譯器會整合起來。</para>
</step>
<step>
- <para>sĶ|tdͪFAtΤW run-time loader iH{JO餺C</para>
+ <para>編譯器會負責產生東西,讓系統上的 run-time loader 可以把程式載入記憶體內執行。</para>
</step>
<step>
- <para>̫|sĶɦsbwФWC</para>
+ <para>最後會把編譯完的執行檔存在硬碟上。</para>
</step>
</procedure>
- <para>q` <firstterm>sĶ(compiling)</firstterm> O 1 4 ӨBJC
- &mdash; LBJh٬ <firstterm>s(linking)</firstterm>A
- ɭԨBJ 1 ]iHO <firstterm>wBz(pre-processing)</firstterm>A
- ӨBJ 3 BJ 4 hO <firstterm>Ķ(assembling)</firstterm>C</para>
+ <para>通常 <firstterm>編譯(compiling)</firstterm> 是指第 1 到第 4 個步驟。
+ &mdash; 其他步驟則稱為 <firstterm>連結(linking)</firstterm>,
+ 有時候步驟 1 也可以是指 <firstterm>預先處理(pre-processing)</firstterm>,
+ 而步驟 3 到步驟 4 則是 <firstterm>組譯(assembling)</firstterm>。</para>
- <para>BOAAiHβz|HWӸ`AsĶ|۰ʧC
- ] <command>cc</command> uOOӫeݵ{(front end)A|̷ӥTѼƨөIs{ABzC
- uݥG</para>
+ <para>幸運的是,你可以不用理會以上細節,編譯器都會自動完成。
+ 因為 <command>cc</command> 只是是個前端程式(front end),它會依照正確的參數來呼叫相關程式幫你處理。
+ 只需打:</para>
<screen>&prompt.user; <userinput>cc foobar.c</userinput></screen>
- <para>WzO| <filename>foobar.c</filename> }lsĶAçWzʧ@C
- pGA\hɮ׻ݭnsĶAХUCOYiG</para>
+ <para>上述指令會把 <filename>foobar.c</filename> 開始編譯,並完成上述動作。
+ 如果你有許多檔案需要編譯,那請打類似下列指令即可:</para>
<screen>&prompt.user; <userinput>cc foo.c bar.c</userinput></screen>
- <para>Oyk~ˬdNO &mdash; ºˬdyk~P_A
- Ӥ|A˴޿~ApGLjAάOƧǤ覡Q binary sort o˦ bubble sortC
+ <para>記住語法錯誤檢查就是 &mdash; 純粹檢查語法錯誤與否,
+ 而不會幫你檢測任何邏輯錯誤,比如:無限迴圈,或是排序方式想用 binary sort 卻弄成 bubble sort。
<footnote>
- <para>һ binary sort M bubble sort DA
- bwƧǦnǦCAbinary sort jIJv| bubble sort nC</para>
+ <para>剛所說的 binary sort 和 bubble sort 問題,
+ 在已排序好的序列中,binary sort 搜索效率會比 bubble sort 好。</para>
</footnote></para>
- <para><command>cc</command> D`hﶵAizLuWUӬdC
- Uu@ǥnBnﶵAH@ҤlC</para>
+ <para><command>cc</command> 有非常多的選項,都可透過線上手冊來查。
+ 下面只提一些必要且重要的選項,以作為例子。</para>
<variablelist>
<varlistentry>
- <term><option>-o <replaceable>ɦW</replaceable></option></term>
+ <term><option>-o <replaceable>檔名</replaceable></option></term>
<listitem>
- <para><option>-o</option> sĶ᪺ɦWApGSϥγoﶵܡA
- sĶn{w]ɦWN|O <filename>a.out</filename>
+ <para><option>-o</option> 編譯後的執行檔檔名,如果沒有使用這選項的話,
+ 編譯好的程式預設檔名將會是 <filename>a.out</filename>
<footnote>
- <para>ܩ <option>-o</option> ]AhO@ξvgFC</para>
+ <para>至於 <option>-o</option> 的原因,則是一團歷史迷霧了。</para>
</footnote></para>
<informalexample>
- <screen>&prompt.user; <userinput>cc foobar.c</userinput> <lineannotation>ɴNO a.out</lineannotation>
-&prompt.user; <userinput>cc -o foobar foobar.c</userinput> <lineannotation>ɴNO foobar</lineannotation>
+ <screen>&prompt.user; <userinput>cc foobar.c</userinput> <lineannotation>執行檔就是 a.out</lineannotation>
+&prompt.user; <userinput>cc -o foobar foobar.c</userinput> <lineannotation>執行檔就是 foobar</lineannotation>
</screen>
</informalexample>
</listitem>
@@ -354,8 +354,8 @@
<term><option>-c</option></term>
<listitem>
- <para>ϥ <option>-c</option> ɡAu|sĶlXAӤ@s(linking)C
- uQT{ykO_TΨϥ Makefile ӽsĶ{ɡAoӿﶵD`ΡC</para>
+ <para>使用 <option>-c</option> 時,只會編譯原始碼,而不作連結(linking)。
+ 當只想確認語法是否正確或使用 Makefile 來編譯程式時,這個選項非常有用。</para>
<informalexample>
<screen>
@@ -363,8 +363,8 @@
</screen>
</informalexample>
- <para>o|ͥs <filename>foobar</filename> <firstterm>object file</firstterm>(D)C
- oɥiHPL object file sb@_AӦɡC</para>
+ <para>這會產生叫做 <filename>foobar</filename> 的 <firstterm>object file</firstterm>(非執行檔)。
+ 這檔可以與其他的 object file 連結在一起,而成執行檔。</para>
</listitem>
</varlistentry>
@@ -372,24 +372,24 @@
<term><option>-g</option></term>
<listitem>
- <para><option>-g</option> N|@ǵ gdb ΪT]ihɸ̭AҿתTҦpG
- {bĴXXBӵ{ĴX氵禡IsCT<emphasis>D`</emphasis>nΡC
- INOG{ӻAB~T|sĶXӪ{ΨǡC
- <option>-g</option> AήɾbG{٦b}oɨϥδNnA
- ӷAnXA <quote>o檩(release version)</quote>
- Ϊ̽T{{iB@`ܡAN <option>-g</option> oﶵFC</para>
+ <para><option>-g</option> 將會把一些給 gdb 用的除錯訊息包進去執行檔裡面,所謂的除錯訊息例如:
+ 程式在第幾行出錯、那個程式第幾行做什麼函式呼叫等等。除錯資訊<emphasis>非常</emphasis>好用。
+ 但缺點就是:對於程式來說,額外的除錯訊息會讓編譯出來的程式比較肥些。
+ <option>-g</option> 的適用時機在於:當程式還在開發時使用就好,
+ 而當你要釋出你的 <quote>發行版本(release version)</quote>
+ 或者確認程式可運作正常的話,就不必用 <option>-g</option> 這選項了。</para>
<informalexample>
<screen>&prompt.user; <userinput>cc -g foobar.c</userinput>
</screen>
</informalexample>
- <para>oʧ@|ͦtTɡC
+ <para>這動作會產生有含除錯訊息的執行檔。
<footnote>
- <para>Ъ`NA]WҨS <option>-o</option> HwɦW١A
- ҥHɷ|O <filename>a.out</filename> oɡC
- Anp󲣥 <filename>foobar</filename> ɨätTA
- oNdݬݭ̽mߤ@UoC</para>
+ <para>請注意,因為上例沒用 <option>-o</option> 以指定執行檔名稱,
+ 所以執行檔會是 <filename>a.out</filename> 這檔。
+ 那麼,要如何產生 <filename>foobar</filename> 的執行檔並內含除錯訊息,
+ 這就留待看倌們練習一下囉。</para>
</footnote></para>
</listitem>
</varlistentry>
@@ -398,35 +398,35 @@
<term><option>-O</option></term>
<listitem>
- <para><option>-O</option> |ͳ̨ΤƪɡA
- sĶ|ϥΤ@ǧޥA{iH]񥼸g̨Τƪ{٧֡A
- iHbjg O ᭱[WƦrӫQn̨ΤƼhšC
- ǪΤ٬O|@ǿ~A|Ҩӻb FreeBSD 2.10 release <command>cc</command>
- Bw <option>-O2</option> ɡAbYDZΤU|Ϳ~ɡC</para>
+ <para><option>-O</option> 會產生最佳化的執行檔,
+ 編譯器會使用一些技巧,來讓程式可以跑的比未經最佳化的程式還快,
+ 可以在大寫 O 後面加上數字來指明想要的最佳化層級。
+ 但是最佳化還是會有一些錯誤,舉例來說在 FreeBSD 2.10 release 中用 <command>cc</command>
+ 且指定 <option>-O2</option> 時,在某些情形下會產生錯誤的執行檔。</para>
- <para>unXo檩BΪ̥[t{ɡA~ݭnϥγ̨ΤƿﶵC</para>
+ <para>只有當要釋出發行版本、或者加速程式時,才需要使用最佳化選項。</para>
<informalexample>
<screen>&prompt.user; <userinput>cc -O -o foobar foobar.c</userinput>
</screen>
</informalexample>
- <para>o| <filename>foobar</filename> ɪ̨ΤƪC</para>
+ <para>這會產生 <filename>foobar</filename> 執行檔的最佳化版本。</para>
</listitem>
</varlistentry>
</variablelist>
- <para>HUTӰѼƱN|j <command>cc</command> T{{XO_ŦX@ǰڼзǪWdA
- ]NOq` <acronym>ANSI</acronym> зǡA
- <acronym>ANSI</acronym> Y <acronym>ISO</acronym> зǡC</para>
+ <para>以下三個參數將會強迫 <command>cc</command> 確認程式碼是否符合一些國際標準的規範,
+ 也就是通常說的 <acronym>ANSI</acronym> 標準,
+ 而 <acronym>ANSI</acronym> 嚴格來講屬 <acronym>ISO</acronym> 標準。</para>
<variablelist>
<varlistentry>
<term><option>-Wall</option></term>
<listitem>
- <para><option>-Wall</option> <command>cc</command> @̩һ{ȱo`NҦĵiTC
- LoWri|y~ѡAƹWå <command>cc</command> ү`N쪺UĵiTC</para>
+ <para><option>-Wall</option> 顯示 <command>cc</command> 維護者所認為值得注意的所有警告訊息。
+ 不過這名字可能會造成誤解,事實上它並未完全顯示 <command>cc</command> 所能注意到的各項警告訊息。</para>
</listitem>
</varlistentry>
@@ -434,8 +434,8 @@
<term><option>-ansi</option></term>
<listitem>
- <para><option>-ansi</option> <command>cc</command> SYǯSD ANSI C зǥ\C
- LoWri|y~ѡAƹWäOҧA{|ŦX ANSI зǡC</para>
+ <para><option>-ansi</option> 關閉 <command>cc</command> 特有的某些特殊非 ANSI C 標準功能。
+ 不過這名字可能會造成誤解,事實上它並不保證你的程式會完全符合 ANSI 標準。</para>
</listitem>
</varlistentry>
@@ -443,82 +443,82 @@
<term><option>-pedantic</option></term>
<listitem>
- <para> <command>cc</command> үSD <acronym>ANSI</acronym> C зǥ\C</para>
+ <para>全面關閉 <command>cc</command> 所特有的非 <acronym>ANSI</acronym> C 標準功能。</para>
</listitem>
</varlistentry>
</variablelist>
- <para>FoǰѼơA<command>cc</command> ٤\AϥΤ@B~ѼƨNзǰѼơAB~ѼƫD`ΡA
- OڤWäOҦsĶѳoǰѼơC
- ӼзǨӼg{̥DnتNOAƱAgXӪ{iHbҦsĶWsĶBL~A
- {iHFWzتɡAN٬ <firstterm>portable code(өʨ}n{X)</firstterm>C</para>
+ <para>除了這些參數,<command>cc</command> 還允許你使用一些額外的參數取代標準參數,有些額外參數非常有用,
+ 但是實際上並不是所有的編譯器都有提供這些參數。
+ 照標準來寫程式的最主要目的就是,希望你寫出來的程式可以在所有編譯器上編譯、執行無誤,
+ 當程式可以達成上述目的時,就稱為 <firstterm>portable code(移植性良好的程式碼)</firstterm>。</para>
- <para>@ӻAbg{ɴNn`NyөʡzC
- _hCQ{t~@xW]ɭԡANioݭng{C</para>
+ <para>一般來說,在撰寫程式時就應要注意『移植性』。
+ 否則。當想把程式拿到另外一台機器上跑的時候,就可能得需要重寫程式。</para>
<informalexample>
<screen>&prompt.user; <userinput>cc -Wall -ansi -pedantic -o foobar foobar.c</userinput></screen>
</informalexample>
- <para>WzO|T{ <filename>foobar.c</filename> ykO_ŦXзǡA
- åBͦW <filename>foobar</filename> ɡC</para>
+ <para>上述指令會確認 <filename>foobar.c</filename> 內的語法是否符合標準,
+ 並且產生名為 <filename>foobar</filename> 的執行檔。</para>
<variablelist>
<varlistentry>
<term><option>-l<replaceable>library</replaceable></option></term>
<listitem>
- <para>iD gcc bs(linking){ɧAݭnΨ쪺禡wW١C</para>
+ <para>告訴 gcc 在連結(linking)程式時你需要用到的函式庫名稱。</para>
- <para>̱`pNOAAb{ϥΤF C ƾǨ禡wA
- L@~x@˪OAoܾǨ禡bзǨ禡w(library)A
- ]sĶäDo禡wW١AAiDsĶn[W~C</para>
+ <para>最常見的情況就是,當你在程式中使用了 C 數學函式庫,
+ 跟其他作業平台不一樣的是,這函示學函式都不在標準函式庫(library)中,
+ 因此編譯器並不知道這函式庫名稱,你必須告訴編譯器要加上它才行。</para>
- <para>Wh²ApGӨ禡ws <filename>libsomething.a</filename>A
- NbsĶɥ[WѼ <option>-l<replaceable>something</replaceable></option> ~C
- |ҨӻAƾǨ禡ws <filename>libm.a</filename>A
- ҥHA <command>cc</command> ѼƴNO <option>-lm</option>C
- @뱡pUAq`|oѼƥbO̫C</para>
+ <para>規則很簡單,如果有個函式庫叫做 <filename>libsomething.a</filename>,
+ 就必須在編譯時加上參數 <option>-l<replaceable>something</replaceable></option> 才行。
+ 舉例來說,數學函式庫叫做 <filename>libm.a</filename>,
+ 所以你必須給 <command>cc</command> 的參數就是 <option>-lm</option>。
+ 一般情況下,通常會把這參數必須放在指令的最後。</para>
<informalexample>
<screen>&prompt.user; <userinput>cc -o foobar foobar.c -lm</userinput>
</screen>
</informalexample>
- <para>WoO| gcc ƾǨ禡w@sAHKA{iHIs禡wtƾǨ禡C</para>
+ <para>上面這指令會讓 gcc 跟數學函式庫作連結,以便你的程式可以呼叫函式庫內含的數學函式。</para>
- <para>pGAbsĶ{O C++ {XAA٥B~w <option>-lg++</option> Ϊ̬O
- <option>-lstdc++</option>C
- pGA FreeBSD O 2.2(t)H᪩A
- AiHΫO <command>c++</command> ӨN <command>cc</command>C
- b FreeBSD W <command>c++</command> ]iH <command>g++</command> NC</para>
+ <para>如果你正在編譯的程式是 C++ 程式碼,你還必須額外指定 <option>-lg++</option> 或者是
+ <option>-lstdc++</option>。
+ 如果你的 FreeBSD 是 2.2(含)以後版本,
+ 你可以用指令 <command>c++</command> 來取代 <command>cc</command>。
+ 在 FreeBSD 上 <command>c++</command> 也可以用 <command>g++</command> 取代。</para>
<informalexample>
- <screen>&prompt.user; <userinput>cc -o foobar foobar.cc -lg++</userinput> <lineannotation>A FreeBSD 2.1.6 Χ󦭴</lineannotation>
-&prompt.user; <userinput>cc -o foobar foobar.cc -lstdc++</userinput> <lineannotation>A FreeBSD 2.2 Τ᪺</lineannotation>
+ <screen>&prompt.user; <userinput>cc -o foobar foobar.cc -lg++</userinput> <lineannotation>適用 FreeBSD 2.1.6 或更早期的版本</lineannotation>
+&prompt.user; <userinput>cc -o foobar foobar.cc -lstdc++</userinput> <lineannotation>適用 FreeBSD 2.2 及之後的版本</lineannotation>
&prompt.user; <userinput>c++ -o foobar foobar.cc</userinput>
</screen>
</informalexample>
- <para>WzO|ql <filename>foobar.cc</filename> sĶͦW <filename>fooboar</filename> ɡC
- onOb &unix; tΤ C++ {DzγH <filename>.C</filename>B
- <filename>.cxx</filename> Ϊ̬O <filename>.cc</filename> @ɦWA
- ӫD &ms-dos; إH <filename>.cpp</filename> @ɦWRW覡(L]VӶVMF)C
- <command>gcc</command> |̰ɦWӨMwέ@ؽsĶsĶA
- MӡA{bwgAɦWFA
- ҥHiHۥѪϥ <filename>.cpp</filename> @ C++ {XɦWI</para>
+ <para>上述指令都會從原始檔 <filename>foobar.cc</filename> 編譯產生名為 <filename>fooboar</filename> 的執行檔。
+ 這邊要提醒的是在 &unix; 系統中 C++ 程式傳統都以 <filename>.C</filename>、
+ <filename>.cxx</filename> 或者是 <filename>.cc</filename> 作為副檔名,
+ 而非 &ms-dos; 那種以 <filename>.cpp</filename> 作為副檔名的命名方式(不過也越來越普遍了)。
+ <command>gcc</command> 會依副檔名來決定用哪一種編譯器編譯,
+ 然而,現在已經不再限制副檔名了,
+ 所以可以自由的使用 <filename>.cpp</filename> 作為 C++ 程式碼的副檔名!</para>
</listitem>
</varlistentry>
</variablelist>
<sect2>
- <title>` <command>cc</command> D</title>
+ <title>常見的 <command>cc</command> 問題</title>
<qandaset>
<qandaentry>
<question>
- <para>ڥ <function>sin()</function> ܼgڪ{A
- Oӿ~T(pU)AoNۡH</para>
+ <para>我用 <function>sin()</function> 函示撰寫我的程式,
+ 但是有個錯誤訊息(如下),這代表著?</para>
<informalexample>
<screen>/var/tmp/cc0143941.o: Undefined symbol `_sin' referenced from text segment
@@ -527,8 +527,8 @@
</question>
<answer>
- <para>ϥ <function>sin()</function> oƾǨܮɡA
- AiD cc nMƾǨ禡w@s(linking)ANoˡG</para>
+ <para>當使用 <function>sin()</function> 這類的數學函示時,
+ 你必須告訴 cc 要和數學函式庫作連結(linking),就像這樣:</para>
<informalexample>
<screen>&prompt.user; <userinput>cc -o foobar foobar.c -lm</userinput>
@@ -539,7 +539,7 @@
<qandaentry>
<question>
- <para>naAڸյۼg²檺{Aӽmߨϥ -lm ﶵ(ӵ{|B 2.1 6 )</para>
+ <para>好吧,我試著寫些簡單的程式,來練習使用 -lm 選項(該程式會運算 2.1 的 6 次方)</para>
<informalexample>
<programlisting>#include &lt;stdio.h&gt;
@@ -554,14 +554,14 @@ int main() {
</programlisting>
</informalexample>
- <para>MisĶG</para>
+ <para>然後進行編譯:</para>
<informalexample>
<screen>&prompt.user; <userinput>cc temp.c -lm</userinput>
</screen>
</informalexample>
- <para>sĶ{AoUoGG</para>
+ <para>編譯後執行程式,得到下面這結果:</para>
<informalexample>
<screen>&prompt.user; <userinput>./a.out</userinput>
@@ -569,24 +569,24 @@ int main() {
</screen>
</informalexample>
- <para>ܩ㪺A{G<emphasis>O</emphasis>TסA쩳OXH</para>
+ <para>很明顯的,程式結果<emphasis>不是</emphasis>正確答案,到底是哪邊出錯?</para>
</question>
<answer>
- <para>sĶo{AIs@ӨܮɡA|T{Өܪ^ǭ(prototype)A
- pGSSOAhw]^ǭ <type>int()</type>C
- ܩ㪺AA{һݭnäO^ǭO <type>int</type>C</para>
+ <para>當編譯器發現你呼叫一個函示時,它會確認該函示的回傳值類型(prototype),
+ 如果沒有特別指明,則預設的回傳值類型為 <type>int(整數)</type>。
+ 很明顯的,你的程式所需要的並不是回傳值類別為 <type>int</type>。</para>
</answer>
</qandaentry>
<qandaentry>
<question>
- <para>p~iHץһDH</para>
+ <para>那如何才可以修正剛所說的問題?</para>
</question>
<answer>
- <para>ƾǨܪ^ǭ(prototype)|wqb <filename>math.h</filename>A
- pGA include oɡAsĶN|DӨܪ^ǭAp@ӸӹBN|o쥿TGI</para>
+ <para>數學函示的回傳值類型(prototype)會定義在 <filename>math.h</filename>,
+ 如果你有 include 這檔,編譯器就會知道該函示的回傳值類型,如此一來該運算就會得到正確的結果!</para>
<informalexample>
<programlisting>#include &lt;math.h&gt;
@@ -597,7 +597,7 @@ int main() {
</programlisting>
</informalexample>
- <para>[FWzeAAssĶA̫G</para>
+ <para>加了上述內容之後,再重新編譯,最後執行:</para>
<informalexample>
<screen>&prompt.user; <userinput>./a.out</userinput>
@@ -605,21 +605,21 @@ int main() {
</screen>
</informalexample>
- <para>pGΨƾǨ禡A<emphasis>нTw</emphasis>n include <filename>math.h</filename> oɡA
- ӥBOonMƾǨ禡w@sC</para>
+ <para>如果有用到數學函式,<emphasis>請確定</emphasis>要有 include <filename>math.h</filename> 這檔,
+ 而且記得要和數學函式庫作連結。</para>
</answer>
</qandaentry>
<qandaentry>
<question>
- <para>wgsĶn <filename>foobar.c</filename>A
- OsĶ䤣 <filename>foobar</filename> ɡC ӥhOH</para>
+ <para>已經編譯好 <filename>foobar.c</filename>,
+ 但是編譯後找不到 <filename>foobar</filename> 執行檔。 該去哪邊找呢?</para>
</question>
<answer>
- <para>OoADwsĶGɦWA_hw]ɦWO a.outC
- <option>-o&nbsp;<replaceable>filename</replaceable></option> ѼơA
- NiHFҷQnGApG</para>
+ <para>記得,除非有指定編譯結果的執行檔檔名,否則預設的執行檔檔名是 a.out。
+ 用 <option>-o&nbsp;<replaceable>filename</replaceable></option> 參數,
+ 就可以達到所想要的結果,比如:</para>
<informalexample>
<screen>&prompt.user; <userinput>cc -o foobar foobar.c</userinput>
@@ -630,88 +630,88 @@ int main() {
<qandaentry>
<question>
- <para>nAӽsĶn{s <filename>foobar</filename>A
- <command>ls</command> OɥiHݨA
- ɡATooSoɮסCH</para>
+ <para>好,有個編譯好的程式叫做 <filename>foobar</filename>,
+ 用 <command>ls</command> 指令時可以看到,
+ 但執行時,訊息卻說卻沒有這檔案。為什麼?</para>
</question>
<answer>
- <para>P &ms-dos; POADwɪ|A
- _h &unix; tΨä|bثeؿUMAQ檺ɮסC
- bOCU <command>./foobar</command> N
- <quote>boӥؿUW <filename>foobar</filename> {</quote>A
- Ϊ̤]iH <envar>PATH</envar> ܼƳ]wpUAHFĪGG</para>
+ <para>與 &ms-dos; 不同的是,除非有指定執行檔的路徑,
+ 否則 &unix; 系統並不會在目前的目錄下尋找你想執行的檔案。
+ 在指令列下打 <command>./foobar</command> 代表
+ <quote>執行在這個目錄底下名為 <filename>foobar</filename> 的程式</quote>,
+ 或者也可以更改 <envar>PATH</envar> 環境變數設定如下,以達成類似效果:</para>
<informalexample>
<screen>bin:/usr/bin:/usr/local/bin:.
</screen>
</informalexample>
- <para>W@̫᪺ "." N<quote>pGbegLؿ䤣ANثeؿ</quote>C</para>
+ <para>上一行最後的 "." 代表<quote>如果在前面寫的其他目錄找不到,就找目前的目錄</quote>。</para>
</answer>
</qandaentry>
<qandaentry>
<question>
- <para>յ۰ <filename>test</filename> ɡA
- OoSƵo͡A쩳O̥XFH</para>
+ <para>試著執行 <filename>test</filename> 執行檔,
+ 但是卻沒有任何事發生,到底是哪裡出錯了?</para>
</question>
<answer>
- <para>jhƪ &unix; tγ|b| <filename>/usr/bin</filename> \ɡC
- DwϥΦbثeؿ <filename>test</filename>A_h shell |uܦb
- <filename>/usr/bin</filename> <filename>test</filename>A
- nwɦWܡA@kG</para>
+ <para>大多數的 &unix; 系統都會在路徑 <filename>/usr/bin</filename> 擺放執行檔。
+ 除非有指定使用在目前目錄內的 <filename>test</filename>,否則 shell 會優先選擇位在
+ <filename>/usr/bin</filename> 的 <filename>test</filename>,
+ 要指定檔名的話,作法類似:</para>
<informalexample>
<screen>&prompt.user; <userinput>./test</userinput>
</screen>
</informalexample>
- <para>FקKWzxZAЬA{nW٧aI</para>
+ <para>為了避免上述困擾,請為你的程式取更好的名稱吧!</para>
</answer>
</qandaentry>
<qandaentry>
<question>
- <para>ڼg{ɭ}l`A
- UӫoX{ <errorname>core dumped</errorname> ~TCo~T쩳NH</para>
+ <para>當執行我寫的程式時剛開始正常,
+ 接下來卻出現 <errorname>core dumped</errorname> 錯誤訊息。這錯誤訊息到底代表什麼?</para>
</question>
<answer>
- <para> <firstterm>core dumped</firstterm> oӦW٪ѨӡA
- iHl즭 &unix; tζ}lϥ core memory ƱƧǮɡC
- 򥻤W{bܦhpUoͿ~A
- @~tη| core memory TgJ <filename>core</filename> oɮפA
- HK programmer D{쩳OXC</para>
+ <para>關於 <firstterm>core dumped</firstterm> 這個名稱的由來,
+ 可以追溯到早期的 &unix; 系統開始使用 core memory 對資料排序時。
+ 基本上當程式在很多情況下發生錯誤後,
+ 作業系統會把 core memory 中的資訊寫入 <filename>core</filename> 這檔案中,
+ 以便讓 programmer 知道程式到底是為何出錯。</para>
</answer>
</qandaentry>
<qandaentry>
<question>
- <para>uOӯ_FI{~Mo <errorname>core dumped</errorname> FAӫH</para>
+ <para>真是太神奇了!程式居然發生 <errorname>core dumped</errorname> 了,該怎麼辦?</para>
</question>
<answer>
- <para>Х <command>gdb</command> ӤR core G(ԱаѦ <xref linkend="debugging"/>)C</para>
+ <para>請用 <command>gdb</command> 來分析 core 結果(詳情請參考 <xref linkend="debugging"/>)。</para>
</answer>
</qandaentry>
<qandaentry>
<question>
- <para>{wg core memory dump XӫA
- Pɤ]X{t@ӿ~ <errorname>segmentation fault</errorname> oNOH</para>
+ <para>當程式已經把 core memory 資料 dump 出來後,
+ 同時也出現另一個錯誤 <errorname>segmentation fault</errorname> 這意思是?</para>
</question>
<answer>
- <para>򥻤WAoӿ~ܧA{bO餤յ۰@YDkB@(illegal operation)A
- &unix; NOQ]pӫO@ӧ@~tΧKQc誺{}aAҥH~|iDAoӰTC</para>
+ <para>基本上,這個錯誤表示你的程式在記憶體中試著做一個嚴重的非法運作(illegal operation),
+ &unix; 就是被設計來保護整個作業系統免於被惡質的程式破壞,所以才會告訴你這個訊息。</para>
- <para>̱`y<quote>segmentation fault</quote>]q`G</para>
+ <para>最常造成<quote>segmentation fault</quote>的原因通常為:</para>
<itemizedlist>
<listitem>
- <para>յ۹@ <symbol>NULL</symbol> (pointer)@gJʧ@Ap</para>
+ <para>試著對一個 <symbol>NULL</symbol> 的指標(pointer)作寫入的動作,如</para>
<programlisting>char *foo = NULL;
strcpy(foo, "bang!");
@@ -719,21 +719,21 @@ strcpy(foo, "bang!");
</listitem>
<listitem>
- <para>ϥΤ@ө|l(initialized)СApG</para>
+ <para>使用一個尚未初始化(initialized)的指標,如:</para>
<programlisting>char *foo;
strcpy(foo, "bang!");
</programlisting>
- <para>|lƪЪlȱN|OHApGABܡA
- oӫЪlȷ|V kernel wgΨ쪺OmA
- kernel |oӵ{HTOtιB@`CpGABA
- l쪺OmOA{nΨ쪺Ƶc(data structures)mA
- oӱεoͮɵ{N|ҥHMC</para>
+ <para>尚未初始化的指標的初始值將會是隨機的,如果你夠幸運的話,
+ 這個指標的初始值會指向 kernel 已經用到的記憶體位置,
+ kernel 會結束掉這個程式以確保系統運作正常。如果你不夠幸運,
+ 初始指到的記憶體位置是你程式必須要用到的資料結構(data structures)的位置,
+ 當這個情形發生時程式將會當的不知其所以然。</para>
</listitem>
<listitem>
- <para>յۼgJWL}C(array)ӼơApG</para>
+ <para>試著寫入超過陣列(array)元素個數,如:</para>
<programlisting>int bar[20];
bar[27] = 6;
@@ -741,7 +741,7 @@ bar[27] = 6;
</listitem>
<listitem>
- <para>յŪgbŪO(read-only memory)ơApG</para>
+ <para>試著讀寫在唯讀記憶體(read-only memory)中的資料,如:</para>
<programlisting>char *foo = "My string";
strcpy(foo, "bang!");
diff --git a/zh_TW.Big5/books/developers-handbook/x86/chapter.xml b/zh_TW.UTF-8/books/developers-handbook/x86/chapter.xml
index 94cbe2908b..b9e4fc44a3 100644
--- a/zh_TW.Big5/books/developers-handbook/x86/chapter.xml
+++ b/zh_TW.UTF-8/books/developers-handbook/x86/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
diff --git a/zh_TW.Big5/books/faq/Makefile b/zh_TW.UTF-8/books/faq/Makefile
index 7ff38e9d1b..8f5b9cf136 100644
--- a/zh_TW.Big5/books/faq/Makefile
+++ b/zh_TW.UTF-8/books/faq/Makefile
@@ -1,7 +1,7 @@
#
# $FreeBSD$
#
-# Build the FreeBSD Chinese-Big5 FAQ
+# Build the FreeBSD Chinese FAQ
#
MAINTAINER=vanilla@FreeBSD.org ijliao@FreeBSD.org clive@FreeBSD.org \
diff --git a/zh_TW.UTF-8/books/faq/book.xml b/zh_TW.UTF-8/books/faq/book.xml
new file mode 100644
index 0000000000..331d6f5653
--- /dev/null
+++ b/zh_TW.UTF-8/books/faq/book.xml
@@ -0,0 +1,11876 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook XML V4.5-Based Extension//EN"
+ "../../../share/xml/freebsd45.dtd" [
+<!ENTITY bibliography SYSTEM "../../../share/xml/bibliography.xml">
+]>
+
+<!-- The FreeBSD Traditional Chinese Documentation Project -->
+<!-- Original Revision: 1.772 -->
+
+<book lang='zh_tw'>
+ <bookinfo>
+ <title>FreeBSD 5.X、6.X 常見問答集</title>
+
+ <corpauthor>FreeBSD 文件計畫</corpauthor>
+
+ <copyright>
+ <year>1995</year>
+ <year>1996</year>
+ <year>1997</year>
+ <year>1998</year>
+ <year>1999</year>
+ <year>2000</year>
+ <year>2001</year>
+ <year>2002</year>
+ <year>2003</year>
+ <year>2004</year>
+ <year>2005</year>
+ <year>2006</year>
+ <year>2007</year>
+ <year>2008</year>
+ <holder>FreeBSD 文件計畫</holder>
+ </copyright>
+
+ &legalnotice;
+
+ <legalnotice id="trademarks" role="trademarks">
+ &tm-attrib.freebsd;
+ &tm-attrib.3com;
+ &tm-attrib.adobe;
+ &tm-attrib.creative;
+ &tm-attrib.cvsup;
+ &tm-attrib.ibm;
+ &tm-attrib.ieee;
+ &tm-attrib.intel;
+ &tm-attrib.iomega;
+ &tm-attrib.linux;
+ &tm-attrib.microsoft;
+ &tm-attrib.mips;
+ &tm-attrib.netscape;
+ &tm-attrib.opengroup;
+ &tm-attrib.oracle;
+ &tm-attrib.sgi;
+ &tm-attrib.sparc;
+ &tm-attrib.sun;
+ &tm-attrib.usrobotics;
+ &tm-attrib.xfree86;
+ &tm-attrib.general;
+ </legalnotice>
+
+ <releaseinfo>$FreeBSD$</releaseinfo>
+
+ <abstract>
+ <para>這份文件是 FreeBSD 5.X 及 6.X 的常見問答集。
+ 除非有特別加註,否則這些項目都適用於 FreeBSD 5.0 及以後的版本。
+ (如果條目內容中有 &lt;XXX&gt; 則是尚未完成中譯的部份。)
+ 如果您對協助本文件/翻譯計畫的進行有興趣的話,請寄 e-mail 到
+ &a.doc;。此外,隨時可從 <ulink
+ url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/faq/index.html">
+ FreeBSD 網站</ulink> 拿到這份文件的最新版本。
+ 也可以利用 HTTP 來下載一份龐大的 <ulink url="book.html">HTML</ulink>
+ 文件,或是經由 <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">
+ FreeBSD FTP 站</ulink> 下載純文字、&postscript;、或 PDF 版本的檔案。
+ 您也可以在這裡使用 <ulink
+ url="&url.base;/search/search.html">搜尋資料</ulink> 的功能。</para>
+ </abstract>
+ </bookinfo>
+
+ <chapter id="introduction">
+ <chapterinfo>
+ <author>
+ <firstname>Ying-Chieh</firstname>
+ <surname>Liao</surname>
+ <affiliation>
+ <address><email>ijliao@FreeBSD.org</email></address>
+ </affiliation>
+ </author>
+ </chapterinfo>
+
+ <title>前言、一般問題</title>
+
+ <para>歡迎使用 FreeBSD 4.X-6.X FAQ!</para>
+
+ <para>跟其他 Usenet 上的 FAQ 一樣,這份文件涵蓋了有關 FreeBSD
+ 這套作業系統最常被問到的問題 (當然包括了回答!)。
+ 雖然說我們本來的目的是為了減少網路頻寬的浪費,
+ 以及避免同樣的問題一再出現,但事實上 FAQ
+ 已被公認為是值得閱讀的文件資源。</para>
+
+ <para>我們已經儘可能地使這份 FAQ 更豐富了。如果您對如何改善、
+ 進步方面有任何建議,請隨時寄電子郵件給 &a.doc;。</para>
+
+ <qandaset>
+ <qandaentry>
+ <question id="what-is-FreeBSD">
+ <para>什麼是 FreeBSD?</para>
+ </question>
+
+ <answer>
+ <para>簡單地來說,FreeBSD 是一套可以在 Alpha/AXP, AMD64 及
+ &intel; EM64T, &i386; IA-64, PC-98, &ultrasparc; 上執行的
+ UN*X-like 作業系統,它是根據 U.C. Berkeley 所開發出來的
+ <quote>4.4BSD-Lite</quote>,並加上了許多 <quote>4.4BSD-Lite2</quote>
+ 的增強功能。它同時也間接使用了 U.C. Berkeley 所開發出來並由
+ William Jolitz 移植到 i386 的 <quote>Net/2</quote>,也就是
+ <quote>386BSD</quote>,
+ 不過現在 386BSD 的程式碼只剩下極少數還留存在 FreeBSD 中。
+ 您可以在 <ulink url="&url.base;/index.html">FreeBSD 首頁
+ </ulink> 找到 FreeBSD 以及它可以幫您做些什麼的相關資訊。</para>
+
+ <para>FreeBSD 已被廣泛地被世界各地的公司行號、ISP、研究人員、
+ 電腦專家、學生,以及家庭用戶所使用,用在工作、教育以及娛樂上。</para>
+
+ <para>如果想看關於 FreeBSD 更深入的資料,請看
+ <ulink url="&url.books.handbook;/index.html">FreeBSD 使用手冊
+ </ulink>。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="FreeBSD-goals">
+ <para>發展 FreeBSD 的目的是什麼?</para>
+ </question>
+
+ <answer>
+ <para>FreeBSD 計畫的目的是提供可以任意使用且沒有限制的軟體。
+ 我們在程式碼 (以及計晝本身) 上付出了大量心血,
+ 當然不會介意來點金錢上的回饋,不過我們絕對不會如此堅持。
+ 我們相信我們首要的<quote>任務</quote>
+ 就是提供程式碼給每一個使用者,
+ 不管他們打算用來幹嘛;這麼一來,
+ 這些程式碼才能被用在最多地方,也才能發揮它們最大的效益。
+ 我們相信這就是自由軟體最基本的目標之一,
+ 而且我們會盡全力去支持它。</para>
+
+ <para>在我們 source tree 中有部份的程式碼是採用所謂的 <ulink
+ url="http://www.FreeBSD.org/copyright/COPYING">GPL</ulink> 或是
+ <ulink url="http://www.FreeBSD.org/copyright/COPYING.LIB">LGPL
+ </ulink> 版權宣告,
+ 雖然這些版權宣告是用來保障而非限制使用者的權利,
+ 畢竟是不那麼自由了些。
+ 由於這些 GPL 的軟體在商業使用上會引起非常複雜的版權問題,
+ 因此只要有機會,我們會盡量以採用比較寬鬆的
+ <ulink url="http://www.FreeBSD.org/copyright/freebsd-license.html">
+ FreeBSD 版權</ulink>的軟體來取代這些 GPL 版權宣告的軟體。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="bsd-license-restrictions">
+ <para>FreeBSD 版權有任何限制嗎?</para>
+ </question>
+
+ <answer>
+ <para>有的。但是這並不是限制你怎麼去使用這些程式碼,而是你怎麼看待
+ FreeBSD 這個計畫。如果你有版權焦慮症的話,請閱讀<ulink
+ url="http://www.FreeBSD.org/copyright/freebsd-license.html">
+ 版權本文</ulink>。簡單地來說,這份版權的重點可以條列如下。</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>請勿宣稱是您寫了這個程式。</para>
+ </listitem>
+
+ <listitem>
+ <para>如果它出問題了,不要控告我們。</para>
+ </listitem>
+ </itemizedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="replace-current-OS">
+ <para>FreeBSD 可以取代我現在在用的作業系統嗎?</para>
+ </question>
+
+ <answer>
+ <para>對大部份的人來說是這樣沒錯,
+ 但事實上這問題並沒有這麼好回答。</para>
+
+ <para>大部份的人並不是真正在使用一個作業系統。
+ 他們使用的是應用程式;而那些應用程式才是真正用到作業系統的東西。
+ FreeBSD 是設計用來提供一個強韌且功能完整的作業環境給應用程式來執行。
+ 它支援了多種瀏覽器,辦公室套件軟體,電子郵件閱讀軟體,繪圖程式,
+ 程式設計環境,網路伺服器軟體,以及幾乎所有你想要的東西。
+ 大部份的程式都可以靠 <ulink
+ url="http://www.freebsd.org/ports/">Ports Collection</ulink>
+ 來管理。</para>
+
+ <para>但是如果你想要使用的應用程式只能在某個特定的作業系統上面執行
+ 的話,你就不能輕易地把它換掉,或者指望在 FreeBSD 上有很相似的應用
+ 程式才有機會。如果你想要的是一個強健的辦公室或是網路伺服器,或是
+ 一部穩定的工作站,或是想在不被中斷的環境下工作的話,FreeBSD 無疑
+ 是您的最佳選擇。世界各地有很多使用者,包括初學或資深的 &unix; 管理
+ 人員都選用 FreeBSD 當他們唯一的桌上作業系統。</para>
+
+ <para>如果你是從其他的 &unix; 環境轉換到 FreeBSD 的話,
+ 基本上是大同小異的。但是如果你之前用的是圖形界面的作業系統,
+ 例如說是 &windows; 或是比較古老的 &macos; 的話,
+ 可能就要多花一點時間來學習怎麼用 &unix; 的方式來做。
+ 你可以從這份 FAQ 和 <ulink
+ url="&url.books.handbook;/index.html">
+ FreeBSD 使用手冊</ulink> 來入門。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="why-called-FreeBSD">
+ <para>為什麼要叫做 FreeBSD?</para>
+ </question>
+
+ <answer>
+ <itemizedlist>
+ <listitem>
+ <para>您可以免費使用它,即使是用於商業用途。</para>
+ </listitem>
+
+ <listitem>
+ <para>整個 FreeBSD 作業系統完整的原始程式都可以免費取得,而且不
+ 管是在使用,散佈或是整合進其他程式等各方面也只受到最小的限
+ 制 (不論是否用於商業用途)。</para>
+ </listitem>
+
+ <listitem>
+ <para>任何人都可以自由地把他對系統的改良或錯誤修正的程式碼加入
+ source tree 之中 (當然要符合幾個先決條件)。</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>特別值得注意的是這裡的 <quote>free</quote> 出現了兩次,而且它們
+ 的意思是不一樣的:一種代表 <quote>免費</quote>,另一種代表
+ <quote>自由</quote>。您可以拿 FreeBSD 去做任何您想要做的事,除了一些
+ <emphasis>例外</emphasis>,例如您宣稱 FreeBSD 是您寫的。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="differences-to-other-bsds">
+ <para>FreeBSD 及 NetBSD, OpenBSD 以及其他
+ open source BSD 作業系統之間有何不同之處呢?</para>
+ </question>
+
+ <answer>
+ <para>James Howard 在 <ulink url="http://www.daemonnews.org/">
+ DaemonNews</ulink> 上面寫了 <ulink
+ url="http://ezine.daemonnews.org/200104/bsd_family.html">
+ The BSD Family Tree</ulink> 的文件,裡面說明了這些歷史淵源及這些
+ *BSD 家族計畫之間的差異。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="latest-version">
+ <para>最新版的 FreeBSD 是那一版?</para>
+ </question>
+
+<!--
+ This answer is a hack to deal with the fact that for now there are
+ multiple "latest" versions of FreeBSD.
+ 這個有點難以回答,事實上 FreeBSD 有許多種類的『最新版』。
+-->
+
+ <answer>
+ <para>就 FreeBSD 目前的發展而言,有兩個主要發展分支:
+ 由 <emphasis>5-STABLE</emphasis> 所發行(release)的 5.X 系列、
+ 由 <emphasis>6-STABLE</emphasis> 所發行(release)的 6.X
+ 系列這兩個分支。</para>
+
+ <para>在 5.3 release 之前,4.X 系列仍屬
+ <emphasis>-STABLE</emphasis> 分支。
+ 自從 5.3 開始,5.X 系列開始規劃新的
+ <emphasis>-STABLE</emphasis> 分支發展重點,
+ 而 4.X 將只著重在重大問題上(比如:漏洞修補、安全維護)
+ 以及所謂的 &quot;extended support&quot;
+ ,不再會有新的突破性發展。另一方面,5-STABLE
+ 分支雖然仍將繼續發行,但是由於它只是 “legacy” 過渡期分支,
+ 所以大多數主力都已轉移到 6-STABLE 繼續開發。</para>
+
+<!-- note: the entity definitions are out of date -->
+ <para>於 &rel.current.date; 所發行的 <ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE">&rel.current;</ulink>
+ 版是目前最新的 <emphasis>6-STABLE</emphasis> 分支;
+ 而於 &rel2.current.date; 所發行的 <ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel2.current;-RELEASE/">&rel2.current;</ulink>
+ 版則是目前最新的 <emphasis>5-STABLE</emphasis> 分支。</para>
+
+ <para>簡單地來說,<emphasis>-STABLE</emphasis> 的主要訴求對象是對於
+ 穩定性及低變異性的需求遠勝過對最新 <emphasis>-CURRENT</emphasis>
+ snapshot 中特別新功能的需求,例如 ISP 或公司行號的使用者。這兩個
+ branch 都有可能會產生 release 版,但只有當你能接受
+ <emphasis>-CURRENT</emphasis> 遠比 <emphasis>-STABLE</emphasis>
+ 容易更動這一點,才應該用 <emphasis>-CURRENT</emphasis>。</para>
+
+ <para>Release 版<link linkend="release-freq">每幾個月</link>才會發
+ 行一次。雖然如此,有很多人和 FreeBSD 原始碼同步更新(詳見
+ <link linkend="current">&os.current;</link> 和 <link
+ linkend="stable">&os.stable;</link> 的相關問題),但因為原始碼
+ 是一直不斷地在變動的,所以如果要這麼做的話得要花上更多的精
+ 力。</para>
+
+ <para>其他更多相關 FreeBSD 發行情報,可由 FreeBSD 網站上的 <ulink
+ url="http://www.FreeBSD.org/releng/index.html">
+ Release Engineering</ulink> 得知。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="current">
+ <para>什麼是 &os.current;?</para>
+ </question>
+
+ <answer>
+ <para><ulink
+ url="&url.books.handbook;/cutting-edge.html#CURRENT">
+ &os.current;</ulink> 指的是正在發展中的作業系統版本,
+ 它終將在適當的時機成為 &os.stable; 分支。
+ 它實在是只適合給系統發展者以及有毅力的業餘愛好者使用。
+ 如果想要得到有關如何使用 -CURRENT 的深入資訊,請參考 <ulink
+ url="&url.books.handbook;/index.html">使用手冊</ulink> 的 <ulink
+ url="&url.books.handbook;/cutting-edge.html#CURRENT">相關部份
+ </ulink>。</para>
+
+ <para>如果您對作業系統本身並不是很熟悉,或是您沒辦法分辨您遇到的問
+ 題是真的發生了問題亦或是暫時性的小狀況,那麼您就不應該使用
+ &os.current;。這個分支的程式碼有時候變動得很快,而且可能會因此
+ 而使您有好幾天的時間無法更新您的系統。我們假設使用
+ &os.current; 的使用者都有能力去分析他們所遇到的問題並且只回報
+ 真正的問題而非<quote>小狀況</quote>。如果您在 -CURRENT mailing
+ list 中提到類似<quote>make world 造成一些有關 groups 的錯
+ 誤</quote>之類的問題的話,也許會被其他人輕視。</para>
+
+ <para>我們每天都會根據目前 -CURRENT 和 -STABLE 的狀況對這兩個分支各
+ 發行一個 <ulink url="&url.base;/snapshots/">snapshot
+ </ulink> 版。有的時候甚至還會發行可供取得的版本。發表這些 snapshot
+ 的目的在於:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>測試最新版的安裝程式。</para>
+ </listitem>
+
+ <listitem>
+ <para>提供一個簡單的方法給那些喜歡使用 -CURRENT 或是 -STABLE,
+ 但是沒有時間和頻寬去每天昇級的使用者。</para>
+ </listitem>
+
+ <listitem>
+ <para>為了替我們發展中的程式保留一個固定的參考點,以防止我們未
+ 來造成不幸。(雖然一般而言 CVS 可以防止類似這種的可怕事件 :)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>為了確保所有需要測試的新功能都可以得到最多的測試。</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>我們不對 -CURRENT snapshot 做任何形式的<quote>品質保
+ 證</quote>。如果你想要的是一個穩定且經過充分測試過的系統的話,
+ 最好選擇使用完整 release 的版本,或是使用 -STABLE snapshots。</para>
+
+ <para>您可以直接從 <ulink
+ url="&url.base;/snapshots/">
+ snapshots</ulink> 處取得 -CURRENT 的
+ snapshot release。</para>
+
+ <para>對每個有在活動的分支而言,平均每天都會產生一次 snapshots。
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="stable">
+ <para>什麼是 &os.stable;?</para>
+ </question>
+
+ <answer>
+ <para>回溯到 FreeBSD 2.0.5 剛發表的時候,我們決定把 FreeBSD 的發展
+ 分成兩支。一支叫做 <ulink
+ url="&url.books.handbook;/current-stable.html#STABLE">-STABLE
+ </ulink>,我們只對它做錯誤修正及小幅度的修改 (這是給 ISP
+ 和商業公司等,對實驗中功能不感興趣的單位所使用的)。
+ 另外一支叫做 <ulink
+ url="&url.books.handbook;/current-stable.html#CURRENT">-CURRENT
+ </ulink>,從 2.0 版發行以後,就不斷地朝著 6.2-RELEASE
+ (含後續的版本)前進著。</para>
+
+ <para>6-STABLE 分支是從 6.0-RELEASE 開始 (5-STABLE 分支算是
+ 5.3-RELEASE 之後才開始的),然後原本的 &os.current;
+ 就會成為 7-CURRENT。</para>
+
+
+ <para>2.2-STABLE 這個分支隨著 2.2.8 的發表而功成身退。3-STABLE 這個
+ 分支則是結束在 3.5.1 發表之後,它也是 3.X 的最後一次發表。之後除了
+ 安全漏洞的後續修正之外,這些分支就幾乎沒有再更動過。 而
+ 5-STABLE 分支的支援將仍持續一段時間,
+ 但主要焦點僅在於安全方面的漏洞、臭蟲及其他嚴重問題的修補。</para>
+
+ <para>6-STABLE 是目前正在發展中的 -STABLE 分支。 6-STABLE
+ 的最新的一次發表是在 &rel.current.date; 發行的
+ &rel.current;-RELEASE。</para>
+
+ <para>7-CURRENT 這個分支是 &os; 的 -CURRENT 分支,
+ 仍然不斷地在發展當中。 如果想要知道更多關於這個分支的資訊的話,
+ 請參考 <link
+ linkend="current">什麼是 &os;-CURRENT?</link>。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="naming">
+ <para>FreeBSD 版本命名原則是什麼呢?</para>
+ </question>
+
+ <answer>
+ <para>您可能會看到以下幾種 FreeBSD 的版本名稱:</para>
+ <itemizedlist>
+ <listitem>
+ <para>1) 4.4.2-RELEASE、4.4-BETA:最前面的數字 A.B.C 裡,
+ A 表示主要的作業系統版本(Major),
+ B 表示次要的作業系統版本(Minor),
+ C 表示些微修正版本(Patch)。 後面的英文表示是否為正式版,
+ 通常是測試版(ALPHA、BETA、GAMMA)、正式版(RELEASE)。</para>
+ </listitem>
+
+ <listitem>
+ <para>2) 6.0-STABLE、7.0-CURRENT:
+ 通常 FreeBSD 會有一個以發展新功能為主的版本,稱為 -CURRENT
+ ,目前 CURRENT 版本是 7.0; FreeBSD
+ 也會有一個以維護穩定性及系統安全為主的版本,稱為 -STABLE,
+ 目前 STABLE 的版本是 6.0。 雖然如此,並不代表 -STABLE
+ 就沒有新功能,也不代表 _CURRENT 就不穩定不安全,
+ 這兩個版本是相輔相成的,而且終有一天 7.0-CURRENT
+ 會變成 7.0-STABLE,而開始 8.0-CURRENT 的發展。 不過一般來說,
+ 由於 -CURRENT 系統開發的速度相當快,跟 -STABLE
+ 相比較不穩定,而且最好是有相當經驗的使用者才來使用。
+ 如果是商業環境或是伺服器站台,最好還是跑 -STABLE 與
+ -RELEASE 比較好。 由於 -STABLE 與 -CURRENT
+ 都是一直在開發維護中的版本,
+ 因此沒有一個特定的數字版本可以稱呼,
+ 因此通常我們會以編譯日期來代表是哪個時候的 -STABLE 或 -CURRENT
+ ,例如「4.4-STABLE、編譯日期 2001/10/08」。</para>
+ </listitem>
+
+ <listitem><para>
+3) 5.0-011025-SNAP、4.2-010816-RELENG:
+ SNAP 與 RELENG 並不是正式發行的版本,其中 3.0-970625-SNAP 表示是
+ 在 2001 年 10 月 25 日發行的 5.0 測試版(SNAPshot),通常是指 CURRENT
+ 的版本。而 4.2-010816-RELENG 表示是在 2001 年 8 月 16 日發行的
+ 4.2 非正式的穩定版,通常是指 STABLE 的版本。
+ 通常 FreeBSD 核心小組會不定時釋出 SNAP 以供測試,然後有一天 SNAP
+ 會變成 ALPHA->BETA->GAMMA,再來是 RELEASE,而後可能會有不定時的
+ RELENG 以供測試使用,但是 RELENG 的穩定性通常又比前期的 RELEASE
+ 來的好。</para>
+ </listitem>
+ </itemizedlist>
+
+<para>
+您要是習慣微軟的術語,這樣說好了,SNAP 是開發期間的內部流出版,
+那個日期(011025)就是Build Number,而 ALPHA 與 BETA 是搶鮮版,
+RELEASE(RELENG 勉強也算)是正式版,這樣應該了解了吧。
+</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="release-freq">
+ <para>每次新的 FreeBSD 將於什麼時候推出?</para>
+ </question>
+
+ <answer>
+ <para>一般而言,&a.re; 平均每四個月發行一次 release,每次新版本的發表時程都會事先公告,
+ 相關的開發人員就會知道,什麼時候該先把手邊的計劃完成並且測試過,
+ 此外,這些更動都已經完整地測試過,且不會影響系統穩定度。
+ 雖然,等這些好東西進入 -STABLE 的時間令人等得有些不耐煩,
+ 但是大多數的使用者都認為這種謹慎的態度是 FreeBSD 最好的優點之一。</para>
+
+ <para>有關發行情報的更多細節部分(包括 release 的行程表、進度),都可在 FreeBSD 網站上的
+ <ulink url="http://www.FreeBSD.org/releng/index.html">發行情報</ulink> 上面獲得。</para>
+
+ <para>為了滿足那些需要 (或想要) 新鮮刺激感的使用者,
+ 上面(-CURRENT的部分)已經提到我們每天都會發行 snapshots 版可供使用。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="responsible">
+ <para>誰負責 FreeBSD 的發展?</para>
+ </question>
+
+ <answer>
+ <para>如果是一些有關 FreeBSD 計畫的關鍵性決定,像是整個計畫的走向
+ 或是決定誰可以改 source tree 裡的程式碼這類的事,是由一個由 9 個
+ 人所組成的 <ulink
+ url="&url.articles.contributors;/article.html#STAFF-CORE">core
+ team</ulink> 來決定。而有另一群超過 300 個人的 <ulink
+ url="&url.articles.contributors;/article.html#STAFF-COMMITTERS">
+ commiters</ulink> 有權利可以直接修改 FreeBSD 的 source tree。
+ </para>
+
+ <para>無論如何,大多數的改變都會事前在 <link linkend="mailing">
+ mailing lists</link> 先討論過,而且不分角色,每個人都可以參與討論。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="where-get">
+ <para>我要如何取得 FreeBSD?</para>
+ </question>
+
+ <answer>
+ <para>每個 FreeBSD 的重要版本都可以經由匿名 ftp 從 <ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/">FreeBSD FTP 站</ulink>取得:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>如果需要 6-STABLE 的最新版,也就是 &rel.current;-RELEASE,請到 <ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/">&rel.current;-RELEASE </ulink>這個目錄</para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="ftp://current.FreeBSD.org/pub/FreeBSD/">7-CURRENT Snapshot</ulink>
+ 通常也是每天都會做一份,這是從 <link linkend="current">-CURRENT</link> 分支做出來的,
+ 主要是為了提供給那些熱心的測試者和開發人員。</para>
+ </listitem>
+
+ <listitem>
+ <para>如果需要 5-STABLE 的最新版,也就是 &rel2.current;-RELEASE,請到 <ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel2.current;-RELEASE/">&rel2.current;-RELEASE </ulink>這個目錄</para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="ftp://current.FreeBSD.org/pub/FreeBSD/snapshots/">5.X、6X snapshots</ulink>
+ 通常每天都會做一份。</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>FreeBSD 的 CD、DVD,還有其他取得方式可以在 <ulink url="&url.books.handbook;/mirrors.html">使用手冊</ulink> 中找到解答。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="access-pr">
+ <para>我要如何去查詢、提交問題回報(Problem Report,簡稱PR)資料庫呢?</para>
+ </question>
+
+ <answer>
+ <para>所有使用者的變更要求都可以經由網頁介面的
+ <ulink url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query">
+ PR查詢介面</ulink> 來察看 (或是回報) 我們的錯誤回報資料庫。</para>
+
+ <para>也可以使用 &man.send-pr.1; 這個指令透過電子郵件來回報問題、要求變更。
+ 或者是經由 <ulink url="http://www.FreeBSD.org/send-pr.html">網頁介面的 PR</ulink> 來送出問題回報。</para>
+
+ <para>然而,在您回報問題之前,請先閱讀 <ulink
+ url="&url.articles.problem-reports;/article.html">如何撰寫
+ FreeBSD 的問題回報單</ulink>,這是一篇告訴你怎樣才能寫出一篇真正有用的
+ 問題回報單。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="other-info-sources">
+ <para>還有其他有關 FreeBSD 的資訊嗎?</para>
+ </question>
+
+ <answer>
+ <para>詳見 <ulink
+ url="http://www.FreeBSD.org">FreeBSD</ulink> 網站上的 <ulink
+ url="http://www.FreeBSD.org/docs.html">文件</ulink> 列表。</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+ <chapter id="support">
+ <chapterinfo>
+ <author>
+ <firstname>Chin-San</firstname>
+ <surname>Huang</surname>
+ <affiliation>
+ <address><email>chinsan.tw@gmail.com</email></address>
+ </affiliation>
+ </author>
+ </chapterinfo>
+
+ <title>文件與技術支援</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="books">
+ <para>關於 FreeBSD 有哪些好書可以推薦閱讀的嗎?</para>
+ </question>
+
+ <answer>
+ <para>FreeBSD 文件計畫已陸續發表了相當廣泛範圍的文件,可在 <ulink
+ url="http://www.FreeBSD.org/docs.html"></ulink> 取得。另外,
+ FreeBSD 本身的 manual(一般通稱的man)、doc也如同套件軟體一樣,可以輕鬆地裝在您系統上。
+ </para>
+
+ <para>此外,也建議參閱本份 FAQ 最後所列的參考書目表(Bibliography)與 FreeBSD 使用手冊。
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="doc-formats">
+ <para>這些文件有其他格式的嗎?像是:純文字(ASCII)或 &postscript; 之類的格式?</para>
+ </question>
+
+ <answer>
+ <para>有的。這些文件都分別以不同格式儲存以及壓縮處理,放在
+ FTP 上面,可以從各 FreeBSD FTP 站的 <ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">/pub/FreeBSD/doc/</ulink>
+ 目錄內找到你要的。</para>
+
+ <para>文件的分類方面主要是一些不同性質所組成:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>文件名稱,比如:<literal>faq(常見問答集)</literal>或是
+ <literal>handbook(FreeBSD 使用手冊)</literal>等等。</para>
+ </listitem>
+
+ <listitem>
+ <para>各國翻譯的的文件:這主要是由 locale 名稱來決定的
+ (不清楚的話,可參考您的 FreeBSD 作業系統上的 <filename>/usr/share/locale</filename>)
+ 目前文件總共有下列幾種語言(及編碼)有翻譯:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Locale 名稱</entry>
+
+ <entry>說明(所代表的語系、編碼)</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><literal>en_US.ISO8859-1</literal></entry>
+
+ <entry>美式英文(US English)</entry>
+ </row>
+
+ <row>
+ <entry><literal>de_DE.ISO8859-1</literal></entry>
+
+ <entry>德文(German)</entry>
+ </row>
+
+ <row>
+ <entry><literal>es_ES.ISO8859-1</literal></entry>
+
+ <entry>西班牙文(Spanish)</entry>
+ </row>
+
+ <row>
+ <entry><literal>fr_FR.ISO8859-1</literal></entry>
+
+ <entry>法文(French)</entry>
+ </row>
+
+ <row>
+ <entry><literal>it_IT.ISO8859-15</literal></entry>
+
+ <entry>義大利文(Italian)</entry>
+ </row>
+
+ <row>
+ <entry><literal>ja_JP.eucJP</literal></entry>
+
+ <entry>日文(Japanese,編碼方式:EUC)</entry>
+ </row>
+
+ <row>
+ <entry><literal>ru_RU.KOI8-R</literal></entry>
+
+ <entry>俄文(Russian,編碼方式:KOI8-R)</entry>
+ </row>
+
+ <row>
+ <entry><literal>zh_CN.GB2312</literal></entry>
+
+ <entry>簡體中文(Simplified Chinese,編碼方式:GB2312)</entry>
+ </row>
+
+ <row>
+ <entry><literal>zh_TW.UTF-8</literal></entry>
+
+ <entry>正體中文(Traditional Chinese,編碼方式:UTF-8)</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <note>
+ <para>上列的各國翻譯語系文件中,並非所有文件都有翻譯。</para>
+ </note>
+ </listitem>
+
+ <listitem>
+ <para>文件的格式:每份文件都以各種不同格式儲存,每種格式都各有好壞,
+ 有些格式適合線上閱讀,而有些則適合列印出美觀的文件。
+ 我們都提供這些不同格式的文件,來確保無論是螢幕上、列印紙本,每個人都可以正常地閱讀內容,
+ 目前可供使用的格式如下:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>格式</entry>
+
+ <entry>說明</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><literal>html-split</literal></entry>
+
+ <entry>章節模式</entry>
+ </row>
+
+ <row>
+ <entry><literal>html</literal></entry>
+
+ <entry>完整模式</entry>
+ </row>
+
+ <row>
+ <entry><literal>pdb</literal></entry>
+
+ <entry>Palm Pilot 資料格式,使用
+ <ulink url="http://www.iSilo.com/">iSilo</ulink>
+ 程式來閱讀</entry>
+ </row>
+
+ <row>
+ <entry><literal>pdf</literal></entry>
+
+ <entry>Adobe's PDF 格式</entry>
+ </row>
+
+ <row>
+ <entry><literal>ps</literal></entry>
+
+ <entry>&postscript; 格式</entry>
+ </row>
+
+ <row>
+ <entry><literal>rtf</literal></entry>
+
+ <entry>Microsoft's RTF格式<footnote>
+ <para>當使用 MS Word 來開啟 RTF 格式的話,頁數顯示並不會自動更新。
+ (在開啟文件後,要按 <keycombo
+ action="simul"><keycap>CTRL</keycap><keycap>A</keycap></keycombo>,
+ <keycombo
+ action="simul"><keycap>CTRL</keycap><keycap>END</keycap></keycombo>,
+ <keycap>F9</keycap>,這樣子才會更新頁數的顯示。)</para>
+ </footnote>
+ </entry>
+ </row>
+
+ <row>
+ <entry><literal>txt</literal></entry>
+
+ <entry>純文字(ASCII)</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </listitem>
+
+ <listitem>
+ <para>文件的壓縮、打包方式:目前有三種方式:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>當採用
+ <literal>章節模式(html-split)</literal>,章節模式所產生的各檔案會先使用
+ &man.tar.1; 來壓縮。檔名結尾有 <filename>.tar</filename> 的檔案就是 tar 格式。
+ 接著,會再以下列方式再壓縮。
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>其他格式的檔案都會是單一檔案,檔名通常會是:
+ <filename>book.<replaceable>格式</replaceable></filename>
+ (舉例: <filename>book.pdb</filename>,
+ <filename>book.html</filename> 等等..後面通常加上『.格式』).</para>
+ <para>而這些檔案會分別以兩種壓縮型態進行壓縮,而存成兩種壓縮型態。</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>格式</entry>
+
+ <entry>說明</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><literal>zip</literal></entry>
+
+ <entry>Zip 格式,若要在 FreeBSD 上解壓 zip 檔,則必須先安裝
+ <filename role="package">chinese/unzip</filename> 或
+ <filename role="package">archivers/unzip</filename>。
+ </entry>
+ </row>
+
+ <row>
+ <entry><literal>bz2</literal></entry>
+
+ <entry>BZip2 格式,雖然不如 zip 格式的廣泛使用,但是好處在於可壓縮成更小的檔案。
+ 要解壓 bz2 格式的話,需先安裝 <filename role="package">archivers/bzip2
+ </filename>。</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>所以像是 Handbook 的 &postscript; 版格式,會以 BZip2 格式壓縮,
+ 存放在 <filename>handbook/</filename> 目錄內,
+ 檔名就是<filename>book.ps.bz2</filename>。</para>
+ </listitem>
+ </orderedlist>
+ </listitem>
+ </itemizedlist>
+
+ <para>選擇想要下載的文件格式與壓縮型態之後,則要決定是否以 FreeBSD <emphasis>套件(package)</emphasis>
+ 型態來下載。</para>
+
+ <para>下載、安裝『package』的好處在於:可以透過一般 FreeBSD
+ 套件管理方式來進行管理,比如 &man.pkg.add.1; 及
+ &man.pkg.delete.1;。</para>
+
+
+ <para>若決定好要下載、安裝『package』的話,必須要確認所要下載的檔名。
+ 文件計畫的套件(package)通常是放在是 <filename>packages</filename> 的目錄內,
+ 每個文件計畫的套件檔名通常是:
+ <filename><replaceable>文件名稱</replaceable>.<replaceable>語系</replaceable>.<replaceable>編碼</replaceable>.<replaceable>格式</replaceable>.tgz</filename>
+ 。</para>
+
+ <para>舉個例子,英文版的 FAQ (格式選擇 PDF)在 package 就叫做
+ <filename>faq.en_US.ISO8859-1.pdf.tgz</filename>。</para>
+
+ <para>再舉個例子,中文版的 FAQ (格式選擇 PDF)在 package 就叫做
+ <filename>faq.zh_TW.UTF-8.pdf.tgz</filename>。</para>
+
+ <para>知道這點之後,就可以用下面指令來安裝中文版 FAQ 套件:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/packages/faq.zh_TW.UTF-8.pdf.tgz</userinput></screen>
+
+ <para>完成之後,可以用 &man.pkg.info.1; 來找出檔案裝在哪邊:</para>
+
+ <screen>&prompt.root; <userinput>pkg_info -f faq.zh_TW.UTF-8.pdf</userinput>
+Information for faq.zh_TW.UTF-8.pdf:
+
+Packing list:
+ Package name: faq.zh_TW.UTF-8.pdf
+ CWD to /usr/share/doc/zh_TW.UTF-8/books/faq
+File: book.pdf
+ CWD to .
+File: +COMMENT (ignored)
+File: +DESC (ignored)</screen>
+
+ <para>如同您所看到的 <filename>book.pdf</filename> 會被安裝到
+ <filename>/usr/share/doc/zh_TW.UTF-8/books/faq</filename> 內。</para>
+
+ <para>若不想用 package 方式安裝,那麼就需手動下載、解壓縮、複製到你想要擺放的位置去。</para>
+
+ <para>舉例,章節模式(split HTML)版的英文 FAQ (壓縮為 &man.bzip2.1;)會放在
+ <filename>doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2</filename>
+ 要下載、解壓的話,則要打:</para>
+
+ <screen>&prompt.root; <userinput>fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2</userinput>
+&prompt.root; <userinput>bzip2 -d book.html-split.tar.bz2</userinput>
+&prompt.root; <userinput>tar xvf book.html-split.tar</userinput></screen>
+
+ <para>這時你會看到一堆 <filename>.html</filename> 的檔案,
+ 主要的目錄檔為 <filename>index.html</filename>
+ 內含主目錄及連結到其他文件。(若有需要的話,也可以複製或搬移這些檔案到同一目錄下)</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="mailing">
+ <para>哪裡有關於 FreeBSD 的郵遞論壇(mailing lists)呢?</para>
+ </question>
+
+ <answer>
+ <para>這個問題,可以從 FreeBSD 使用手冊上面的 <ulink
+ url="&url.books.handbook;/eresources.html#ERESOURCES-MAIL">郵遞論壇(mailing-lists)</ulink>
+ 部分獲得答案。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="newsgroups">
+ <para>有哪些可以使用的 FreeBSD 新聞群組(news groups)呢?</para>
+ </question>
+
+ <answer>
+ <para>這答案可以從 FreeBSD 使用手冊上面的 <ulink
+ url="&url.books.handbook;/eresources-news.html">新聞群組(newsgroups)</ulink>
+ 部分獲得答案。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="man">
+ <para>在文件中常看到類似 "pf(4)"、"pfctl(8)" 等這些字樣代表什麼意思呢?</para>
+ </question>
+
+ <answer>
+ <para>這表示 man 的章節,系統上一般有八個章節:</para>
+ <itemizedlist>
+ <listitem>
+ <para>1->generl commands</para>
+ </listitem>
+
+ <listitem>
+ <para>2->system calls and error numbers </para>
+ </listitem>
+
+ <listitem>
+ <para>3->C libraries</para>
+ </listitem>
+
+ <listitem>
+ <para>4->devices and device drivers</para>
+ </listitem>
+
+ <listitem>
+ <para>5->file formats</para>
+ </listitem>
+
+ <listitem>
+ <para>6->games</para>
+ </listitem>
+
+ <listitem>
+ <para>7->miscellaneous information pages</para>
+ </listitem>
+
+ <listitem>
+ <para>8->system maintenance and operation commands</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>比如:pf(4) 就是指 <command>man 4 pf</command>。</para>
+ </answer>
+ </qandaentry>
+ <qandaentry>
+ <question id="irc">
+ <para>有哪些 FreeBSD IRC (Internet Relay Chat)頻道呢?</para>
+ </question>
+
+ <answer>
+ <para>有的,大部分的 IRC 主機都有 FreeBSD 聊天頻道:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><ulink url="http://www.efnet.org/index.php">EFNet</ulink> 的
+ <literal>#FreeBSD</literal> 頻道是個 FreeBSD 論壇,
+ 但可不適合那些想不勞而獲或者搬救兵用的。
+ 這裡是聊天用的頻道,話題範圍甚至涉及『性、運動、核武』等,
+ 請注意:我們已經警告過你了!本頻道可經由
+ <hostid>irc.chat.org</hostid> 進入。</para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="http://www.efnet.org/index.php">EFNet</ulink> 的
+ <literal>#FreeBSDhelp</literal> 頻道乃是給 FreeBSD
+ 使用者之間交流的,來這裡提問會比 <literal>#FreeBSD</literal>
+ 好一些,當然請不要一股腦隨便亂問。</para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="http://www.dal.net/">DALNET</ulink> 的
+ <literal>#FreeBSD</literal> 頻道,可由
+ <hostid>irc.dal.net</hostid>(位於美國)及
+ <hostid>irc.eu.dal.net</hostid>(位於歐洲)進入。</para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="http://www.dal.net/">DALNET</ulink> 的
+ <literal>#FreeBSDHelp</literal> 頻道,可由
+ <hostid>irc.dal.net</hostid>(位於美國)及
+ <hostid>irc.eu.dal.net</hostid>(位於歐洲)進入。</para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="http://www.undernet.org/">UNDERNET</ulink> 的
+ <literal>#FreeBSD</literal> 頻道,可由
+ <hostid>us.undernet.org</hostid>(位於美國)及
+ <hostid>eu.undernet.org</hostid>(位於歐洲)進入。
+ 由於這是個輔助新手用的頻道,
+ 請記得閱讀別人向你提及的連結或檔案。</para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="http://www.rusnet.org.ru/">RUSNET</ulink> 的
+ <literal>#FreeBSD</literal> 頻道是俄語國家的 &os; 使用者頻道。
+ 這裡同時也是一般交流的討論好去處。</para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="http://freenode.net/irc_servers.shtml">freebsd-gnome
+ </ulink> 的 <literal>#FreeBSD</literal> 頻道,可由
+ <hostid>irc.freenode.net</hostid> 進入,
+ 這是 Gnome 的 &os; 使用者頻道。</para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="http://freenode.net/irc_servers.shtml">freenode</ulink>
+ 的 <literal>#bsdchat</literal> 頻道,可由
+ <hostid>irc.freenode.net</hostid> 進入,
+ 這是台灣的 &os; 使用者頻道。(UTF-8 編碼)</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>上述每個頻道都不一樣,風格迥異而各具特色,且並沒有相連,
+ 因此,你得多方嘗試才能找到適合自己的頻道。
+ 而有些地方與所有的 IRC 文化類似,就是請注意自己言行是否恰當,
+ 另外可能跟頻道內一些年輕/老一輩的會有些代溝需要適應,
+ 總之請多保持禮貌。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="training">
+ <para>可以從哪邊獲得 FreeBSD 的教育課程訓練及技術支援呢?</para>
+ </question>
+
+ <answer>
+ <para>DaemonNews 有專門提供 FreeBSD 的教育課程訓練及技術支援。
+ 詳情請到 <ulink url="http://www.bsdmall.com/">BSD Mall</ulink>
+ 察看,謝謝。</para>
+
+ <para>FreeBSD Mall 有提供 BSD 技術支援付費服務,
+ 詳情請到 <ulink
+ url="http://www.freebsdmall.com/">FreeBSD Mall</ulink> 察看,謝謝。</para>
+
+
+ <para>其他任何有提供教育課程訓練及技術支援的組織、單位,若也想列表於此的話,
+ 請與 &a.doc; 聯絡,謝謝。</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+ <chapter
+ id="install">
+ <chapterinfo>
+ <author>
+ <firstname>Nik</firstname>
+ <surname>Clayton</surname>
+ <affiliation>
+ <address><email>nik@FreeBSD.org</email></address>
+ </affiliation>
+ </author>
+ </chapterinfo>
+
+ <title>安裝</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="floppy-download">
+ <para>若要用軟碟片開機來安裝 FreeBSD 的話,要下載哪些檔案呢?</para>
+ </question>
+
+ <answer>
+ <para>&os; 4.X 的話,需要兩個 image 檔:
+ <filename>floppies/kernel.flp</filename> 及
+ <filename>floppies/mfsroot.flp</filename>。image 檔必須用工具像是
+ <command>fdimage</command> 或 &man.dd.1; 來傳送到磁片上。
+ 若是在 &os; 5.3 (及之後版本)有重新規劃開機片架構,所以要抓的是
+ <filename>floppies/boot.flp</filename> 以及 <filename>floppies/kern<replaceable>X</replaceable></filename>
+ 檔案(目前 X 為 1 跟 2 兩個,加上 <filename>floppies/boot.flp</filename>,總共是 3 個檔案)。</para>
+
+ <para>若想自己下載 distributions 的話(比如以 &ms-dos; 檔案系統格式安裝),
+ 以下是建議要抓的 distributions :</para>
+
+
+ <itemizedlist>
+ <listitem>
+ <para>base/ (4.X 版本則為 bin/)</para>
+ </listitem>
+
+ <listitem>
+ <para>manpages/</para>
+ </listitem>
+
+ <listitem>
+ <para>compat*/</para>
+ </listitem>
+
+ <listitem>
+ <para>doc/</para>
+ </listitem>
+
+ <listitem>
+ <para>src/ssys.*</para>
+ </listitem>
+ </itemizedlist>
+
+
+ <para>完整安裝步驟以及大部分的安裝問題,請參閱 FreeBSD 使用手冊的
+ <ulink url="&url.books.handbook;/install.html">安裝 FreeBSD</ulink> 章節</para>
+
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="floppy-image-too-large">
+ <para>若磁片裝不下 image 檔的話,該怎麼辦呢?</para>
+ </question>
+
+ <answer>
+ <para>一張 3.5 英吋(1.44MB) 的磁碟片是可以裝上 1474560 bytes 的資料
+ ,而開機片的 image 檔案大小實際上也是 1474560 bytes。</para>
+
+ <para>在製作開機片時,常見錯誤有:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>使用 <acronym>FTP</acronym> 來下載檔案時,
+ 未選擇 <emphasis>binary</emphasis> 傳輸模式來下載。</para>
+
+
+ <para>有些 FTP client端程式,是預設將傳輸模式設定為
+ <emphasis>ascii</emphasis> 模式,而且會修改接收到的檔案行尾字串為 client 端的作業系統方式
+ ,比如 newline(&unix;格式) 到了作業系統為 &windows; 的 client 端會被改為 CR-LF(&ms-dos;格式),
+ 這會使得 image 檔本身遭到修改而無法正常使用。因此,如果下載的 image
+ 檔案大小若與 FTP 主機上面的檔案『<emphasis>不一致</emphasis>』
+ 的話,請重新使用 binary 傳輸模式下載即可。</para>
+
+ <para>FTP 指令: 進入 FTP 之後,打 <emphasis>binary</emphasis>
+ 指令,即可切換到 binary 傳輸模式,然後再下載相關 image 檔案。</para>
+ </listitem>
+
+ <listitem>
+ <para>直接用 &ms-dos; 的 <command>copy</command> 指令(或類似
+ 的 GUI 程式、或是視窗上直接複製)來複製開機用的 image 檔到磁片上。
+ </para>
+
+ <para>不可以用像是 <command>copy</command> 這類程式直接將 image
+ 檔複製到磁片上,因為 image 檔本身包含了完整的磁軌資料,所以不能單純用複製方式,
+ 而必須使用低階工具程式(像是 <command>fdimage</command> 或 <command>rawrite</command>),
+ 以 <quote>raw</quote> 方式傳送到磁片上。(這部分可參閱 FreeBSD 使用手冊上的 <ulink
+ url="&url.books.handbook;/install.html">安裝 FreeBSD</ulink>)</para>
+ </listitem>
+ </itemizedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="install-instructions-location">
+ <para>可以在哪邊找到安裝 FreeBSD 的解說步驟呢?</para>
+ </question>
+
+ <answer>
+ <para>安裝步驟的解說,請參閱 FreeBSD 使用手冊上的
+ <ulink url="&url.books.handbook;/install.html">安裝 FreeBSD</ulink> 章節部分。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="need-to-run">
+ <para>要跑 FreeBSD 需要什麼的配備呢?</para>
+ </question>
+
+ <answer>
+ <para>&os; 4.X 之前的版本,硬體需求為 386 或更高級的 PC
+ ,記憶體(RAM)至少要 5 MB 或更多,硬碟空間至少要 60 MB 或更多。
+ 不過,&os; 『系統安裝程式』的記憶體(RAM)需求為至少 16 MB。</para>
+
+ <para>從 &os; 5.X 起,硬體需求為 486 或更高級的 PC
+ ,記憶體(RAM)至少要 24 MB 或更多,硬碟空間至少要 150 MB 或更多。
+ </para>
+
+ <para>&os; 的所有版本都可以只用低階的 MDA 規格顯示卡,不過...要跑 X11R6 視窗的話,
+ 還是至少用 VGA 或更好規格的顯示卡來用吧。</para>
+
+ <para>這部分也可參閱 <xref linkend="hardware"/>。</para>
+
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="four-meg-ram-install">
+ <para>我電腦 RAM 只有 4MB 而已,可以裝 FreeBSD 嗎?</para>
+ </question>
+
+ <answer>
+ <para>安裝 &os; 4.X 的記憶體需求為至少 5 MB ,而
+ 安裝 &os; 5.X (含之後版本) 則是至少要 8 MB 。</para>
+
+ <para>在 5.X 之前的所有 &os; 版本,都可以只用 4 MB 的記憶體來
+ <emphasis>『運作』</emphasis>,不過,前面那節我們說過了『系統安裝程式』的話,
+ 則無法只用 4 MB 的記憶體來執行。因此,你可以先在『系統安裝程式』這步驟之前,
+ 先將記憶體加到 16 MB 以上,安裝完 FreeBSD 之後,就可以把多餘的記憶體拿下來。
+ 或者是,先把要安裝的硬碟拿到有足夠記憶體的機器上先裝好,
+ 然後再把硬碟放回原機器。</para>
+
+ <para>此外,只用 4 MB 的記憶體來運作的話,必須要自製 kernel(拿掉不必要的以及犧牲一些東西)。
+ 也有人成功只用 2 MB 的記憶體以 &os; 開機(雖然這樣的系統幾乎等於廢了..)</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="custom-boot-floppy">
+ <para>要怎樣才能自行打造專用的開機、安裝磁片呢?</para>
+ </question>
+
+ <answer>
+ <para>目前,還沒有辦法<emphasis>『只』</emphasis>自製專用的開機、安裝磁片。
+ 必須透過自行打造完整作業系統的 release(發行),這樣裡面才會包括自己的開機、安裝磁片。</para>
+
+ <para>若想自行打造、發行(release)一個完整的作業系統,請參閱這篇
+ <ulink url="&url.articles.releng;/article.html">Release Engineering</ulink> 文章。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="windows-coexist">
+ <para>&windows; 可以與 FreeBSD 共存於電腦上嗎?</para>
+ </question>
+
+ <answer>
+ <para>先裝 &windows; 再裝 FreeBSD。
+ 那麼 FreeBSD 多重開機管理員(boot manager)就會出現選單讓你選擇要以 &windows; 或
+ FreeBSD 來開機。不過,若你是先裝 FreeBSD 再裝 &windows; 的話,
+ 那麼 &windows; 將會不問先宰,把 FreeBSD 的多重開機管理員(boot manager)蓋掉,
+ 當你遇上這種情況時,請參考下一節說明。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="win95-damaged-boot-manager">
+ <para>嗚.. &windows; 把我的多重開機管理員(boot manager)拿掉了!要怎麼救回來呢?</para>
+ </question>
+
+ <answer>
+ <para>可以用以下三種方式之一,來救回你的 FreeBSD 多重開機管理員(boot manager):</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>可以從各 FreeBSD FTP 站的 <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">/pub/FreeBSD/tools/</ulink>
+ 找到 <filename>bootinst.exe</filename> 及 <filename>boot.bin</filename> 這兩個檔,
+ 以 binary 傳輸模式下載後,複製到磁片上,再用 DOS 開機片開機,
+ 接著打類似下面的指令:</para>
+
+ <screen><prompt>&gt;</prompt> <userinput>bootinst.exe boot.bin</userinput></screen>
+
+ <para>這樣,多重開機管理員(boot manager)就會重裝完畢了。</para>
+ </listitem>
+
+ <listitem>
+ <para>用 FreeBSD 開機片開機,然後選單那邊選 Custom installation(自訂安裝),
+ 再選 Partition,接著選擇你要裝多重開機管理員(boot manager)的硬碟(通常是第一顆),
+ 然後會出現 partition editor 的畫面,這時請不要做任何修改,直接按 W 儲存,
+ 這時程式就會問是否要確定 Write ,最後出現 Boot Manager 選擇畫面,
+ 記得要選 <quote>Boot Manager</quote> ,這樣就會重新將多重開機管理員(boot manager)
+ 安裝到硬碟上。現在,就大功告成可以離開安裝選單並重開機了。</para>
+ </listitem>
+
+ <listitem>
+ <para>用 FreeBSD 開機片或是開機光碟開機,然後選單那邊選 <quote>Fixit</quote>
+ ,或是以 Fixit 開機片或是光碟安裝的第二片(選擇 <quote>live</quote> filesystem
+ 選項)然後就會進入 fixit shell 了,接著打下列指令:</para>
+
+ <screen><prompt>Fixit#</prompt> <userinput>fdisk -B -b /boot/boot0 <replaceable>bootdevice</replaceable></userinput></screen>
+
+ <para>請將上面的 <replaceable>bootdevice</replaceable> 修改為您實際的開機硬碟代號
+ 比如 <devicename>ad0</devicename> (第一顆 IDE 硬碟)
+ ,或是<devicename>ad4</devicename> (first IDE disk on
+ auxiliary controller), <devicename>da0</devicename> (第一顆
+ SCSI 硬碟)等等。</para>
+ </listitem>
+ </itemizedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="boot-on-thinkpad">
+ <para>IBM Thinkpad A系列、T系列或 X系列的筆記型電腦裝完 FreeBSD 之後重開機,就當了,該怎麼辦呢?</para>
+ </question>
+
+ <answer>
+ <para>(本問題主要是發生在 2000 ~ 2001 四月間時)這些 IBM 機器上的 BIOS 早期版本有個臭蟲(bug)會把
+ FreeBSD 分割區誤認為是 FAT 格式分割區,然後當 BIOS 試著偵測 FreeBSD 分割區時,就會當了。</para>
+
+ <para>根據 IBM 方面的說法<footnote><para>一封來自 Keith
+ Frechette 的 e-mail <email>kfrechet@us.ibm.com</email>。</para></footnote>
+ ,以下型號/BIOS版本的機種,已經都有修正:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>型號</entry>
+ <entry>BIOS 版本</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>T20</entry>
+ <entry>IYET49WW(含之後)</entry>
+ </row>
+
+ <row>
+ <entry>T21</entry>
+ <entry>KZET22WW(含之後)</entry>
+ </row>
+
+ <row>
+ <entry>A20p</entry>
+ <entry>IVET62WW(含之後)</entry>
+ </row>
+
+ <row>
+ <entry>A20m</entry>
+ <entry>IWET54WW(含之後)</entry>
+ </row>
+
+ <row>
+ <entry>A21p</entry>
+ <entry>KYET27WW(含之後)</entry>
+ </row>
+
+ <row>
+ <entry>A21m</entry>
+ <entry>KXET24WW(含之後)</entry>
+ </row>
+
+ <row>
+ <entry>A21e</entry>
+ <entry>KUET30WW</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>這些後期的 IBM BIOS 修訂版大多已經修正此一臭蟲。Jacques Vidrine 寫給 &a.mobile; 的
+ <ulink url="http://docs.FreeBSD.org/cgi/mid.cgi?20010427133759.A71732">這封信
+ </ulink> 上面說明了若你新的 IBM 筆記型電腦無法順利以 FreeBSD 開機的解法步驟
+ (假設可以升級或降級 BIOS 版本的話)。</para>
+
+ <para>如果機器用的是較古早版本的 BIOS,而且不適合更新 BIOS 的話,那麼以下我們會介紹暫時解法,
+ 教你如何修改 FreeBSD 分割區所使用的 ID ,並安裝相關修補程式。</para>
+
+ <para>First, you will need to restore the machine to a state where
+ it can get through its self-test screen. Doing this requires
+ powering up the machine without letting it find a FreeBSD
+ partition on its primary disk. One way is to remove the hard disk
+ and temporarily move it to an older ThinkPad (such as a ThinkPad
+ 600) or a desktop PC with an appropriate conversion cable. Once
+ it is there, you can delete the FreeBSD partition and move the hard
+ disk back. The ThinkPad should now be in a bootable state
+ again.</para>
+
+ <para>With the machine functional again, you can use the workaround
+ procedure described here to get a working FreeBSD
+ installation.</para>
+
+ <procedure>
+ <step>
+ <para>從 <ulink url="http://people.FreeBSD.org/~bmah/ThinkPad/"></ulink>
+ 來下載 <filename>boot1</filename> 及 <filename>boot2</filename> 這兩個檔。
+ 把這兩個檔案放在磁片、光碟或其他硬碟上。</para>
+ </step>
+
+ <step>
+ <para>以一般安裝 FreeBSD 裝到 ThinkPad 上,記得
+ <emphasis>『不要用』</emphasis> <literal>Dangerously
+ Dedicated</literal> 模式。 此外,<emphasis>『不要』</emphasis>
+ 在完成安裝之後就重開機。</para>
+ </step>
+
+ <step>
+ <para>進入 shell:(按 <keycombo action="simul"><keycap>ALT</keycap><keycap>F4</keycap></keycombo>)
+ 切換到<quote>Emergency Holographic Shell</quote> 或是選單上面選擇
+ <quote>fixit</quote> shell。</para>
+ </step>
+
+ <step>
+ <para>用 &man.fdisk.8; 把 FreeBSD 分割區 ID 由 <literal>165</literal> 改為
+ <literal>166</literal>(OpenBSD所使用的ID)。</para>
+ </step>
+
+ <step>
+ <para>把剛剛提的 <filename>boot1</filename> 跟
+ <filename>boot2</filename> 這兩個檔案放到目前的硬碟檔案系統上。</para>
+ </step>
+
+ <step>
+ <para>以 &man.disklabel.8; 把 <filename>boot1</filename> 及
+ <filename>boot2</filename> 存到你的 FreeBSD slice 上面。</para>
+
+ <screen>&prompt.root; <userinput>disklabel -B -b boot1 -s boot2 ad0s<replaceable>n</replaceable></userinput></screen>
+
+ <para><replaceable>「n」</replaceable> 是你裝 FreeBSD 的 slice,
+ 請將 <replaceable>「n」</replaceable> 改為符合你系統現況的 slice。</para>
+ </step>
+
+ <step>
+ <para>重開機,在 boot prompt 會看到有 <literal>OpenBSD</literal> 的選項,
+ 選它,這樣就會以 FreeBSD 開機。</para>
+ </step>
+ </procedure>
+
+ <para>另外,至於如何讓 OpenBSD 及 FreeBSD 並存在同一台 IBM ThinkPad 上...
+ 這個問題就交給各位看倌們去嘗試了 :p</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="install-bad-blocks">
+ <para>有壞軌的硬碟可以拿來裝 FreeBSD 嘛?</para>
+ </question>
+
+ <answer>
+ <para>(如果很堅持的話)也是可以,不過這想法顯然不太明智。:(</para>
+
+ <para>如果在一般較新的 IDE 硬碟上看到有壞軌,很有可能代表:這顆硬碟即將掛點了。
+ (因為目前所有較新的 IDE 硬碟,內部都有自動 remapping 壞軌的能力。
+ 如果看到有壞軌,則表示它內部自動 remapping 功能失效,無法處理壞軌,
+ 也就是說這顆硬碟已經是嚴重損壞程度了。)我們建議買顆新硬碟比較乾脆些唷。</para>
+
+ <para>如果是 SCSI 硬碟有壞軌的話,請試著參考這個
+ <link linkend="awre">解法</link>。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="boot-floppy-strangeness">
+ <para>用安裝磁片開機時,卻有些怪現象發生!這是什麼情況呢?</para>
+ </question>
+
+ <answer>
+ <para>若看到一些怪異現象,像是開機片開機開到一半就當了,磁碟機完全沒任何動作、
+ 或是不斷反覆重開機,請先檢查以下幾個線索:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>請確定是否為全新、沒有磁軌錯誤的磁片?
+ (最好使用新買的,而非雜誌、書本附贈的,甚至還放在床底下三年了...=_="")</para>
+ </listitem>
+
+ <listitem>
+ <para>請確定是否有用 binary(或image)傳輸模式來下載 image 檔?
+ (不用覺得不好意思,即使是我們也曾意外以 ASCII 傳輸模式來下載 binary 檔案!)</para>
+ </listitem>
+
+ <listitem>
+ <para>若你是 &windows; 95/98/ME/NT/2000/XP/2003 來下載、製作開機磁片的話,
+ 請確定是否有在 DOS 模式使用 <command>fdimage</command> 或
+ <command>rawrite</command> 這兩個工具程式?剛講的這些作業系統,
+ 都會影響程式去直接寫入硬體,像是製作開機片之類的動作。
+ 有時候,在 GUI 介面上的 DOS shell 也可能會發生這樣的問題。
+ </para>
+ </listitem>
+ </orderedlist>
+
+ <para>此外,直接透過 &netscape; 瀏覽器下載 image 檔的話,也有類似現象。
+ 所以,如果可以的話,請改用其他可以調整設定的 FTP client端程式來進行下載。
+ (當然,要記得調 binary 傳輸模式)</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="no-install-cdrom">
+ <para>用光碟開機片來安裝,但光碟開機後,安裝程式說找不到光碟...這是怎麼了?</para>
+ </question>
+
+ <answer>
+ <para>通常問題在於光碟機設定錯誤。目前很多電腦的出廠標準配備都有光碟機,並且
+ 會預先設定為 IDE 通道上面 Secondary 的 Slave 設備,而 Secondary 上面的
+ 卻沒有 Master 設備。以 ATAPI 的規格而言,這是錯誤的設定,然而 &windows; 的作法
+ 是不理會這些規格上的設定問題,而且開機時 BIOS 偵測也會略過這點。
+ 這也就是為什麼 BIOS 可以看到光碟,並且可用光碟開機,但 FreeBSD
+ 無法正常抓到光碟以順利進行安裝。</para>
+
+ <para>解法:重新設定系統,讓光碟成為它所連接那條 IDE 通道的 Master,
+ 或者只有一條 IDE 通道的話,那就讓光碟機成為 Slave
+ ,當然該 IDE 通道上至少要有 Master 設備。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="install-PLIP">
+ <para>我可以用 PLIP(Parallel Line IP)方式來安裝 FreeBSD 到筆記型電腦上嗎?</para>
+ </question>
+
+ <answer>
+ <para>可以,用一條普通的 Laplink 線就可以囉。若有這方面需求的話,請參閱 FreeBSD 使用手冊中的
+ <ulink url="&url.books.handbook;/network-plip.html">PLIP
+ 章節</ulink> 的細部設定</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="geometry">
+ <para>該用哪一種硬碟設定參數(geometry)呢?</para>
+ </question>
+
+ <answer>
+ <note>
+ <para>這裡的『硬碟設定參數(geometry)』,指的是硬碟上的
+ 「cylinders」、「heads」、「sectors/track」 這三個設定參數。
+ 接下來的文章內,為了方便介紹,將簡稱為『C/H/S』。
+ 這些設定參數是讓 PC 上的 BIOS 能順利地正常判別硬碟,
+ 與硬碟本身讀寫的重要因素。</para>
+ </note>
+
+ <para>對剛接手的系統管理者新手而言,這些設定參數常造成一些困擾。
+ 首先,SCSI 硬碟上的 <emphasis>physical</emphasis> geometry
+ 跟 FreeBSD 上的 disk blocks 是完全無關的。事實上,
+ 就硬碟上磁區密度的變化而言,並沒有所謂『physical geometry』這種東西。
+ 硬碟製造商所說的『physical geometry』通常是指:
+ 硬碟上所使用最小空間來存放資料的設定參數(geometry)。
+ 以 IDE 硬碟而言,FreeBSD 用以存取硬碟設定的方式是 C/H/S ,
+ 然而,目前市面上的硬碟早就在內部運作時,就自動轉換為 block 方式
+ 了。</para>
+
+ <para>真正關鍵的地方,其實是在於 『<emphasis>logical</emphasis>
+ geometry』— 這是 BIOS 偵測硬碟時所得到的設定,並且用來決定硬碟存取方式。
+ 由於 FreeBSD 是採用 BIOS 的偵測設定值,所以如何來讓 BIOS 偵測到的設定值保持正確,
+ 是十分重要。尤其是同一顆硬碟上有多個作業系統的情況,
+ 它們都必須採用一致的硬碟設定參數(geometry),
+ 否則就會有開機進不去作業系統的嚴重問題了。</para>
+
+ <para>以 SCSI 硬碟而言,硬碟設定參數(geometry)是由 SCSI 卡上的
+ extended translation(通常指的是有標示 <quote>support &gt;1GB</quote>(支援 1GB 以上容量,或類似名詞)
+ 支援與否來作決定。
+ 如果不支援,那麼就會採用 <replaceable>N</replaceable> cylinders、
+ 64 heads、 32 sectors/track 作為硬碟設定參數(geometry),這裡講的『<replaceable>N</replaceable>』
+ 是指硬碟的容量(單位:MB)。舉個例子來說,一顆 2GB 硬碟應該是
+ 2048 cylinders、64 heads、32 sectors/track。</para>
+
+ <para>如果該 SCSI 有支援使用 extended translation 的話,
+ (通常這個方式在 &ms-dos; 使用上有某些限制),並且硬碟容量大於 1GB,
+ 那麼硬碟設定參數(geometry)就會使用像是:
+ M cylinders、255 heads、每磁軌 63 sectors(請注意:不是『64』哦),
+ 這裡講的『<literal>M</literal>』是指硬碟的容量(單位:MB)再除以
+ 7.844238 所得出的數值喔!所以,這個例子的話,同樣是 2GB 硬碟應該是
+ 261 cylinders、255 heads、每磁軌 63 sectors。</para>
+
+ <para>若對上面講的不瞭解,或是 FreeBSD 在安裝時所偵測到的硬碟設定參數(geometry)
+ 有問題的話,最簡單的解法通常是在硬碟上建立一塊小小的 DOS 分割區(partition)。
+ 這樣一來,就可以偵測到正確的硬碟設定參數了,而且,
+ 如果不想繼續留著那小塊 DOS 分割區的話,可以隨時用 partition editor
+ 來拿掉它。或者把它留著當作網路卡驅動程式使用,或隨你高興怎麼用它。</para>
+
+ <para>此外呢,有個免費好用的工具程式叫做『<filename>pfdisk.exe</filename>』,
+ 這個程式放在各 FreeBSD FTP 站或光碟的 <filename>tools</filename> 目錄下,
+ 它可以用來找出硬碟上其他作業系統所使用的硬碟設定參數,
+ 然後就可以在 partition editor 內輸入剛剛找到的那些設定參數就可以了。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="disk-divide-restrictions">
+ <para>分割磁碟機時有任何限制嗎﹖</para>
+ </question>
+
+ <answer>
+ <para>有,你必須確認你的 root 分割區是在 1024 cylinders 之內,讓
+ BIOS 可以從其中啟動核心。(注意:這是 PC 的 BIOS 功能限制,而不
+ 是 FreeBSD 的)</para>
+
+ <para>以 SCSI 硬碟而言,通常是把 <literal>root</literal> (<filename>/</filename>)
+ 分割區放到硬碟最前面的 1024MB (如果有支援 extended translation 的話,
+ 那麼是最前面的 4096MB — 這點請參考上一小節)。而 IDE 硬碟的話,相對應的則是 504MB。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="disk-manager">
+ <para>可以使用哪些磁碟管理程式(disk managers)呢?</para>
+ </question>
+
+ <answer>
+ <para>FreeBSD 可以用 Ontrack Disk Manager 並且運作正常,
+ 至於其他的 disk manager 則不在正式支援之列。</para>
+
+ <para>若整顆硬碟只裝 FreeBSD ,那麼就不用再裝 disk manager 了。
+ 只要把硬碟設定為 BIOS 所能抓到的最大空間,那麼 FreeBSD 就可算出實際上可使用的空間了。
+ 如果,正在使用的是古早 MFM 控制卡的舊式硬碟,
+ 那麼就需要在 FreeBSD內作 cylinders 相關設定了。</para>
+
+ <para>如果想在磁碟上使用 FreeBSD 和另外的作業系統,也可以不裝 disk manager,
+ 只要確定 FreeBSD 的啟動分割區跟其他作業系統的 slice 都位於開始的 1024 cylinders
+ 內就可以了。如果你相當地高明的話,一個 20MB 的啟動分割區應該就夠用了。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="missing-os">
+ <para>FreeBSD 安裝完畢後重開機,但是電腦卻說 <errorname>Missing Operating
+ System</errorname>這是怎麼了?</para>
+ </question>
+
+ <answer>
+ <para>通常原因出在 FreeBSD 及 DOS 或其他作業系統在硬碟的 <link
+ linkend="geometry">設定參數(geometry)</link>上的規劃有相衝。解法是重裝,但是請照
+ 上述的相關章節步驟來做。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="stop-at-boot-manager">
+ <para>為什麼機器上多重開機管理員(boot manager)出現了 <prompt>F?</prompt> 這個選單畫面,
+ 但卻不會自動跳過而繼續開機呢?</para>
+ </question>
+
+ <answer>
+ <para>這個症狀是本文上面所提的另外一個問題了,原因在於 BIOS 上跟 FreeBSD
+ 上面兩邊的硬碟的 <link linkend="geometry">設定參數(geometry)</link> 並不一致。
+ 若你硬碟或 BIOS 支援 cylinder translation
+ (通常會被標為 <quote>support &gt;1GB(支援 1 GB以上容量)</quote>的話,
+ 試試看更改相關設定,並重裝 FreeBSD。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="need-complete-sources">
+ <para>安裝 FreeBSD 時,需要安裝完整的 sources 嗎?</para>
+ </question>
+
+ <answer>
+ <para>一般來說,這是用不著的。然而,我們強烈建議您的 source 至少要裝
+ <literal>base</literal>(包含了本文中所提的一些檔案)、以及
+ <literal>sys</literal> (kernel 的 source 檔)。
+ 雖然,作業系統本身運是不需要裝 source 檔,但是 &man.config.8; 這個 kernel設定程式則需要 src 。
+ 若沒裝 kernel 的 source 檔,仍然可以用其他地方透過 NFS 掛載的唯讀檔案系統,
+ 來編譯程式。
+ 但由於 kernel-source 本身的限制,我們建議不要直接 mount 在 <filename>/usr/src</filename>,
+ 最好是用 symbolic link(參閱 &man.ln.1;) 將掛載的路徑,設定連結到<filename>/usr/src</filename>
+ 目錄。</para>
+
+ <para>在機器上直接裝有 source 並且瞭解相關編譯過程,這樣子日後升級
+ FreeBSD 會來得方便多。</para>
+
+ <para>若忘了裝相關 source 的話,可以事後用 <command>sysinstalll</command>
+ (&os; 5.2 之前版本則是 <command>/stand/sysinstall</command>) 來補裝,選單:Configure → Distributions → src。
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="need-kernel">
+ <para>需要重新 build kernel 嗎?</para>
+ </question>
+
+ <answer>
+ <para>在很久很久以前,原本重新 build kernel 在 FreeBSD 安裝過程中,
+ 是絕對必需的步驟之一。但目前早就不用這麼麻煩了,
+ 目前主要常見的版本都使用更友善的 kernel 設定指令。
+ &os; 4.X(含之前版本),在 FreeBSD 啟動提示號(boot:)時,使用 <option>"-c"</option> flag
+ 就會進入設定畫面,來對 kernel 作常見的 ISA 卡細節設定。
+ 而 &os; 5.X(含之後版本)的話,則是以更具彈性的 "hints" 設定方式。</para>
+
+ <para>如果想更節省 RAM 的使用、縮短開機流程,那麼建議:新的 kernel 設定檔只要包含你需要的驅動程式,
+ 然後重新編譯、安裝 kernel 並重開機。然而呢,這點對大多數的系統來說,
+ 這不一定是必要的。</para>
+
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="password-encryption">
+ <para>密碼編碼該採用 DES、Blowfish 或 MD5 的哪一種?該怎麼設定呢?</para>
+ </question>
+
+ <answer>
+ <para>FreeBSD 預設的密碼編碼方式是採 <emphasis>MD5</emphasis>。
+ 就密碼編碼方式而言,MD5 方式一般被視為比傳統 &unix; 的 <emphasis>DES</emphasis> 方式較為安全。
+ 然而,若有需要在使用舊環境(較不安全的密碼編碼方式的),DES 密碼編碼方式一樣可以使用。
+ (若使用 sysinstall 時有選擇 <quote>crypto</quote> 套件,或是從 source 內編譯安裝)
+ 有裝 crypto 的話,crypto libraries 也支援更安全的 Blowfish 編碼方式。</para>
+
+ <para>密碼編碼的方式是由 <filename>/etc/login.conf</filename> 內的
+ <quote>passwd_format</quote> 欄位來決定的。該欄設定值,(若有裝 crypto 的話)可以是
+ <quote>des</quote> 或 <quote>blf</quote> 或是原本的 <quote>md5</quote>。
+ 詳情請參閱 &man.login.conf.5; 說明。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="boot-floppy-hangs">
+ <para>為什麼開機磁片開到一半,就出現
+ <literal>Probing Devices...</literal> 的畫面訊息,然後就停住了?</para>
+ </question>
+
+ <answer>
+
+ <para>若機器上有裝 IDE 介面的 Iomega &iomegazip; 或是 &jaz; 的話,
+ 因為這些設備可能跟開機片有相衝,請先拿掉這些設備再重試。
+ 當整個作業系統裝好後,就可以把這些設備接回去使用了。
+ 希望這點在日後 release 的 FreeBSD 可以獲得徹底解決。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="panic-on-install-reboot">
+ <para>系統裝完並重開機後,為什麼卻出現 <errorname>panic: can't mount root</errorname>?</para>
+ </question>
+
+ <answer>
+ <para>這個錯誤是因為啟動磁區跟 kernel 兩者對磁碟裝置的認知不相同。
+ 通常這問題會發生在有兩顆 IDE 硬碟的系統,比如:硬碟 Jumper 設定為 Master、
+ 或是兩條 IDE 排線各只連接一顆硬碟,但是裝 FreeBSD 那顆開機硬碟,
+ 卻接在 Secondary IDE 排線上。
+ 如此一來,在開機時當 kernel 指定第二個 IDE 控制器的第一個磁碟機 ad2,
+ 啟動磁區卻認為系統是裝在 ad0(BIOS偵測的第二顆硬碟)!
+ 偵測完裝置後,kernel 試著把啟動磁區所認為的開機硬碟(ad0) mount
+ 起來,事實上應該是 ad2 才對,所以就會出現上面的錯誤訊息了。</para>
+
+ <para>解法如下,請選擇其中一種方式就好:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>重開機並在出現『<literal>Booting kernel in 10 seconds; hit [Enter] to interrupt</literal>』
+ 提示的時候,按下 <keycap>Enter</keycap>鍵。
+ 這樣子就會進入 boot loader 畫面:</para>
+
+ <para>請輸入
+ <literal>
+ set
+ root_disk_unit="<replaceable>disk_number</replaceable>"
+ </literal> 這裡的『<replaceable>disk_number</replaceable>』請依據情況換成相關代號:
+ 若 FreeBSD 硬碟是設定裝在 Primary IDE 接線的 Master,就設為 0 ;
+ 若是 Primary IDE 接線的 Slave,就設為 1;
+ 若是 Secondary IDE 接線的 Master,就設為 2;
+ 若是 Secondary IDE 接線的 Slave,就設為 3。</para>
+
+ <para>接著請再輸入 <literal>boot</literal>,然後系統應該就可以正常開機了。</para>
+
+ <para>若要每次開機都自動設定,而不必每次都打一次,那麼就在 <filename>/boot/loader.conf.local</filename>
+ 檔案內加上 <literal>root_disk_unit="<replaceable>disk_number</replaceable>"</literal>
+ 這行
+ (當然,『<replaceable>disk_number</replaceable>』要改成相關代號)</para>
+ </listitem>
+
+ <listitem>
+ <para>把 FreeBSD 硬碟改接到 Primary IDE 接線上,如此一來就可順利使用。</para>
+ </listitem>
+ </orderedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="memory-limits">
+ <para>記憶體最大限制為多少?</para>
+ </question>
+
+ <answer>
+ <para>一般 &i386; 機器上最多可支援到 4 GB(gigabytes)。
+ 而自 &os; 4.9 及 5.1 可以開始使用 &man.pae.4; 來支援更多的記憶體。
+ 有關這點,需要在 kernel 設定檔內加入下列內容並重新編譯 kernel,才能使用 PAE。</para>
+
+ <programlisting>options PAE</programlisting>
+
+ <para>&os; 在 pc98 機器上最多則只支援 4 GB ,而且不能使用 PAE。
+ 在 Alpha 機器上,記憶體限制方面要視所使用的型號支援程度而定,這點請參閱
+ 所使用的 Alpha 硬體規格表。至於其他架構的 &os; 理論上最多可使用的記憶體,有較多的限制。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ffs-limits">
+ <para>檔案系統最大限制為多少?</para>
+ </question>
+
+ <answer>
+ <para>就檔案系統方面,理論上的限制是最多到 8TB(2G blocks),
+ 或是使用內定 8K block 大小時,限制是 16TB。
+ 實際上,目前軟體使用上限制只能用到 1 TB,
+ 然而如果是有另行改造過檔案系統,那麼達到 4TB 的目標是可行的
+ (也有人成功過)。</para>
+
+ <para>單一檔案的大小方面,假如 block 以 4K 作規劃的話,
+ 則最大是趨近 1G blocks(4TB)。</para>
+
+ <table>
+ <title>檔案大小的最大限制</title>
+
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>檔案系統 block 大小</entry>
+
+ <entry>works</entry>
+
+ <entry>should work</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>4K</entry>
+
+ <entry>4T-1</entry>
+
+ <entry>&gt;4T</entry>
+ </row>
+
+ <row>
+ <entry>8K</entry>
+
+ <entry>&gt;32G</entry>
+
+ <entry>32T-1</entry>
+ </row>
+
+ <row>
+ <entry>16K</entry>
+
+ <entry>&gt;128G</entry>
+
+ <entry>32T-1</entry>
+ </row>
+
+ <row>
+ <entry>32K</entry>
+
+ <entry>&gt;512G</entry>
+
+ <entry>64T-1</entry>
+ </row>
+
+ <row>
+ <entry>64K</entry>
+
+ <entry>&gt;2048G</entry>
+
+ <entry>128T-1</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <para>When the fs block size is 4K, triple indirect blocks work
+ and everything should be limited by the maximum fs block number
+ that can be represented using triple indirect blocks (approx.
+ 1K^3 + 1K^2 + 1K), but everything is limited by a (wrong) limit
+ of 1G-1 on fs block numbers. The limit on fs block numbers
+ should be 2G-1. There are some bugs for fs block numbers near
+ 2G-1, but such block numbers are unreachable when the fs block
+ size is 4K.</para>
+
+ <para>block 大小如果是 8K 或更大,檔案系統 block 數目會被限制在 2G-1
+ ,但實際上應該說限制是 1G-1 才對,因為採用 2G-1 block 的檔案系統會導致一些問題。
+ </para>
+
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="archsw-readin-failed-error">
+ <para>為何在啟動新的 kernel 時,看到
+ <errorname>archsw.readin.failed</errorname> 錯誤訊息?</para>
+ </question>
+
+ <answer>
+ <para>原因出在你的 world 以及 kernel 並不同步,舉例:kernel 用 4.11,
+ 而 world 卻是 4.8,這樣是會有問題的。
+ 請再次確認,是否有以 <command>make buildworld</command> 及
+ <command>make buildkernel</command> 來正常更新 kernel。</para>
+
+ <para>在啟動 loader 之前,會看到 "|" 這個符號在轉動,這時可以按任何鍵中斷,
+ 然後再指定要載入哪個 kernel 來開機。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="security-profiles">
+ <para><quote>security profiles</quote> 是指什麼?</para>
+ </question>
+
+ <answer>
+ <para>A <quote>security profile</quote> is a set of configuration
+ options that attempts to achieve the desired ratio of security
+ to convenience by enabling and disabling certain programs and
+ other settings. For full details, see the <ulink
+ url="&url.books.handbook;/install-post.html#SECURITYPROFILE">Security
+ Profile</ulink> section of the Handbook's <ulink
+ url="&url.books.handbook;/install-post.html">post-install
+ chapter</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="boot-acpi">
+ <para>在開機時,選擇使用 ACPI 則在安裝過程就掛了,該怎麼辦?</para>
+ </question>
+
+ <answer>
+ <para>試試看關閉 ACPI support。 當在載入 bootloader時,按下空白鍵。
+ 系統會顯示 <screen>OK</screen> 這時輸入
+ <screen><userinput>unset acpi_load</userinput></screen> 接著打
+ <screen><userinput>boot</userinput></screen>
+ 以繼續開機,這樣子應該就可以了。</para>
+ </answer>
+ </qandaentry>
+
+ </qandaset>
+ </chapter>
+
+ <chapter
+ id="hardware">
+ <title>硬體支援方面</title>
+
+ <sect1 id="compatibility-general">
+ <title>一般問題</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="which-hardware-to-get">
+ <para>我想組裝自己的 FreeBSD 機器,有哪些型號、品牌、規格是支援程度最好的呢?</para>
+ </question>
+
+ <answer>
+ <para>有關這點,在 FreeBSD 討論區上時常有人討論。雖然硬體汰換速度很快,
+ 可能隨時有新規格、新產品出現,然而這些都在我們意料之中,
+ 我們 <emphasis>仍然</emphasis> 強烈建議:在詢問有關最新規格硬體的支援問題之前,
+ 請先參閱 &os;
+ <ulink url="&rel.current.hardware;">&rel.current;</ulink>
+ 或
+ <ulink url="&rel2.current.hardware;">&rel2.current;</ulink>的支援硬體列表,
+ 或是搜尋<ulink url="http://www.FreeBSD.org/search/#mailinglists">討論區的舊文章</ulink>,
+ 也許,上週才剛恰巧有人討論過你所要問的硬體。</para>
+
+ <para>如果要找有關筆記型電腦方面,請到 FreeBSD-mobile 筆記型電腦討論區。
+ 不然,就到 FreeBSD-questions 討論區,或是特定硬體規格(比如 pc98, Alpha)的專屬討論區吧。
+ </para>
+ </answer>
+ </qandaentry>
+
+ </qandaset>
+ </sect1>
+
+ <sect1 id="compatibility-processors">
+ <title>硬體架構及 CPU</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="architectures">
+ <para>FreeBSD 有支援 x86 之外的硬體架構平台嗎?</para>
+ </question>
+
+ <answer>
+
+ <para>有的,FreeBSD 目前可以在 Intel x86 and DEC
+ (現在的 HP-Compaq) Alpha 架構上面運作。自 FreeBSD 5.0 之後的版本,則
+ 可支援 AMD64 及 Intel EM64T, IA-64 以及 &sparc64; 架構。
+ 未來平台支援上還會有 &mips; 及
+ &powerpc;,細節請分別參閱 &a.mips; 或 &a.ppc;。
+ 一般而言,新的硬體架構平台方面,都是到 &a.platforms; 討論。</para>
+
+ <para>若你機器不是以上架構或是比較奇特的,而想立刻試試看 BSD 的魔力,
+ 我們建議你可以考慮使用 <ulink
+ url="http://www.netbsd.org/">NetBSD</ulink> 或 <ulink
+ url="http://www.openbsd.org/">OpenBSD</ulink>。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="smp-support">
+ <para>FreeBSD 支援 CPU 對稱多工處理(SMP, Symmetric Multiprocessing)嗎?</para>
+ </question>
+
+ <answer>
+ <para>有的。 SMP 在 &os; 5.2 預設的 kernel(<emphasis>GENERIC</emphasis>)已有啟動。
+ </para>
+
+ <para>在 &os; 5.3 要 release 時,SMP相關設定也是預設就有啟動。
+ 然而,在一些較新型的機器(像是 emt64)上卻又有些問題,
+ 所以還是決定在相關問題、安全議題未獲解決前,先關閉 SMP 的相關啟動。
+ 這點,正是 &os; 5.4 所優先考慮的方向。</para>
+
+ <para>&os; 4.X 的話,預設的 kernel 並沒有啟動 SMP,
+ 因此,必須要把 options SMP 加入 kernel 設定檔並重新編譯才能啟動。
+ 至於還有哪些相關設定要放入 kernel 設定檔,請參閱<filename>/sys/i386/conf/LINT</filename>。
+ </para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </sect1>
+
+ <sect1 id="compatibility-drives">
+ <title>硬碟、磁帶機以及光碟、DVD、燒錄機</title>
+
+ <qandaset>
+
+ <qandaentry>
+ <question id="supported-hard-drives">
+ <para>FreeBSD 可支援哪些種類的硬碟呢?</para>
+ </question>
+
+ <answer>
+ <para>FreeBSD 都支援 EIDE 及 SCSI 介面的硬碟(以及 SCSI 卡,請看下一節說明)
+ 以及 <quote>Western Digital</quote> 介面的硬碟 (MFM、 RLL、
+ ESDI,當然包含 IDE),不過有一些少數的 ESDI 晶片組的(型號:WD1002/3/6/7)
+ 可能無法正常運作。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="supported-scsi-controllers">
+ <para>支援哪些 SCSI 卡、設備呢?</para>
+ </question>
+
+ <answer>
+ <para>請參閱 &os; 的硬體支援表(
+ <ulink url="&rel.current.hardware;">&rel.current;</ulink> 或
+ <ulink url="&rel2.current.hardware;">&rel2.current;</ulink>)</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="tape-support">
+ <para>支援哪些磁帶機呢?</para>
+ </question>
+
+ <answer>
+
+ <para>FreeBSD 支援 SCSI 及 QIC-36 (QIC-02 介面) 規格的磁帶機。
+ 同時包含了 8-mm (也就是 Exabyte) 及 DAT 磁帶機。</para>
+
+ <para>有些早期版本的 8-mm 磁帶機並不是完全相容於 SCSI-2 規格,
+ 所以可能在 FreeBSD 上表現不是很好。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="tape-changer-support">
+ <para>FreeBSD 支援磁帶自動換帶機嗎?</para>
+ </question>
+
+ <answer>
+ <para>FreeBSD 可以用 &man.ch.4; 上面所列的機種,搭配 &man.chio.1; 指令,
+ 來使用 SCSI 種類的自動換帶機,細節部分請參閱 &man.chio.1; 說明。</para>
+
+ <para>If you are not using <application>AMANDA</application>
+ or some other product that already understands changers,
+ remember that they only know how to move a tape from one
+ point to another, so you need to keep track of which slot a
+ tape is in, and which slot the tape currently in the drive
+ needs to go back to.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="supported-cdrom-drives">
+ <para>FreeBSD 可支援哪些種類的光碟機呢?</para>
+ </question>
+
+ <answer>
+ <para>只要是有支援的 SCSI 卡上所接的任一 SCSI 光碟機都有支援。</para>
+
+ <para>此外,也支援下列的光碟機:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Mitsumi LU002 (8bit), LU005 (16bit) 及 FX001D
+ (16bit 2x Speed)</para>
+ </listitem>
+
+ <listitem>
+ <para>Sony CDU 31/33A</para>
+ </listitem>
+
+ <listitem>
+ <para>Sound Blaster 非 SCSI 介面的光碟機</para>
+ </listitem>
+
+ <listitem>
+ <para>Matsushita/Panasonic 光碟機</para>
+ </listitem>
+
+ <listitem>
+ <para>相容 ATAPI 規格的 IDE CDROMs</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>相對於 SCSI 機種而言,其他非 SCSI 的光碟機都是比較慢,
+ 此外,有些 ATAPI 種類的光碟機可能無法順利運作</para>
+
+ <para>Daemon News 以及 FreeBSD Mall 所發行的正式 FreeBSD 光碟以及燒錄用的影像檔(ISO),
+ 都可以直接用於開機光碟使用。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="supported-cdrw-drives">
+ <para>FreeBSD 支援哪些光碟燒錄機的驅動程式呢?</para>
+ </question>
+
+ <answer>
+ <para>FreeBSD 支援任何相容 ATAPI 標準的 IDE CD-R 或 CD-RW 光碟燒錄機,
+ 細節請參閱 &man.burncd.8; 說明。</para>
+
+ <para>FreeBSD 也支援任何 SCSI CD-R 或 CD-RW 光碟燒錄機。
+ 請用 port 或 packag 機制來安裝、使用 <command>cdrecord</command> ,
+ 並確定您的 kernel 內有將 <devicename>pass</devicename>設備一併編譯在內。
+ (預設的 kernel.GENERIC 都會有 device pass 這段)</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="zip-support">
+ <para>FreeBSD 支援 Iomega &iomegazip; 嗎?</para>
+ </question>
+
+ <answer>
+ <para>FreeBSD 支援外接式的 SCSI 及 ATAPI(IDE) 介面的 Iomega &iomegazip;。
+ 不過 SCSI ZIP 只能被設為 SCSI ID 5 或是 6 才可以運作,但如果
+ SCSI 卡上的 BIOS 支援它,你甚至可以用它來開機。
+ 我們不曉得哪一塊卡可以把卡的 ID 設在除了 0 或 1 以外的地方而開機成功,
+ 因此,如果想改 SCSI ID 的話,請務必參閱該型號的說明手冊。</para>
+
+ <para>FreeBSD 同時也支援 Parallel Port Zip磁碟機。請檢查 kernel
+ 設定檔是否有:
+ <devicename>scbus0</devicename>、
+ <devicename>da0</devicename>、
+ <devicename>ppbus0</devicename>,以及
+ <devicename>vp0</devicename> 這些驅動程式 (預設的 GENERIC kernel
+ 除了 <devicename>vp0</devicename> 沒包進去,其他三者都會有)。
+ 加了這幾個驅動程式之後,Parallel Port Zip 就會成為
+ <devicename>/dev/da0s4</devicename>。</para>
+
+ <para>這時,就可以用像是 <command>mount /dev/da0s4 /mnt</command> 或
+ (DOS 檔案系統)<command>mount_msdos /dev/da0s4 /mnt</command>
+ 之類的指令來掛載、讀寫。</para>
+
+ <para>也可以參閱下面有關<link linkend="media-change">隨身磁片
+ </link>部分,以及<link
+ linkend="removable-drives">抽取碟、隨身碟的『格式化』討論</link>
+ 的部分</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="jaz-zip-removable-support">
+ <para>FreeBSD 有支援 &jaz;、EZ 及其他類似的隨身磁片嗎?</para>
+ </question>
+
+ <answer>
+ <para>可以啊,除了 IDE 的 EZ drive 外,其他的應該都是 SCSI 介面,
+ 所以在 FreeBSD 上都會以 SCSI 硬碟來處理。</para>
+
+ <para>當然,你必須確定在開機時,這些設備的電源是打開的,
+ 以便讓 FreeBSD 可以偵測到。</para>
+
+ <para><anchor id="media-change"/>如果在磁碟運中狀態中,要更換磁片的話,
+ 記得先看一下 &man.mount.8;、&man.umount.8;、
+ 以及(SCSI的話)&man.camcontrol.8; 或 &man.atacontrol.8; 還有 FAQ 後面有關
+ <link linkend="removable-drives">使用抽取碟、隨身碟的討論
+ </link>。</para>
+ </answer>
+ </qandaentry>
+
+ </qandaset>
+
+ </sect1>
+
+ <sect1 id="compatibility-kbd-mice">
+ <title>鍵盤、滑鼠</title>
+
+ <qandaset>
+
+ <qandaentry>
+ <question id="usbkbd">
+ <para>FreeBSD 有支援 USB 鍵盤嗎?</para>
+ </question>
+
+ <answer>
+ <para>FreeBSD (尤其是有支援 USB keyboards。 Enable USB support in
+ <filename>/etc/rc.conf</filename>.</para>
+
+ <para>若有開 USB 鍵盤支援而且同時接上 AT 跟 USB 鍵盤的話,那麼 AT 鍵盤會變成
+ <devicename>/dev/kbd0</devicename>,而 USB 鍵盤則是
+ <devicename>/dev/kbd1</devicename>。如果只接 USB 鍵盤,那麼它就是
+ <devicename>/dev/ukbd0</devicename> 囉。</para>
+
+ <para>如果想在 console 上使用 USB 鍵盤的話,那麼必須設定 console 指定用 USB 鍵盤。
+ 可以在系統開機程序時,加上下列指令:</para>
+
+ <screen>&prompt.root; <userinput>kbdcontrol -k /dev/kbd1 &lt; /dev/ttyv0 &gt; /dev/null</userinput></screen>
+
+ <para>注意:若只有 USB 鍵盤的話,也就是 <devicename>/dev/ukbd0</devicename>,
+ 那麼請改用下列指令:</para>
+
+ <screen>&prompt.root; <userinput>kbdcontrol -k /dev/ukbd0 &lt; /dev/ttyv0 &gt; /dev/null</userinput></screen>
+
+ <para>建議:可以把上述指令放入 <filename>/etc/rc.i386</filename> 。</para>
+
+ <para>設定成功之後,USB 鍵盤不用作任何特別設定,就可以在 X 視窗環境上正常運作囉。</para>
+
+ <para>USB 鍵盤的熱插拔(Hot-plugging and unplugging)在 &os; 可能還無法完全正常運作,
+ 建議:在系統開機前就先接上鍵盤,直到關機為止,以避免不必要的困擾。</para>
+
+ <para>相關細節請參閱 &man.ukbd.4; 的說明。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="busmouse">
+ <para>古早的 bus 滑鼠,要怎麼設定呢?</para>
+ </question>
+
+ <answer>
+ <para>FreeBSD 支援一些廠商(像是:Microsoft、Logitech、ATI)所做的 bus 及 InPort bus 介面的滑鼠。
+ 然而,預設的 kernel(GENERIC)已經不內含它們的驅動程式。
+ 因此,要加入下列到 kernel 設定檔並重新編譯、安裝,才能啟用:</para>
+
+ <programlisting>device mse0 at isa? port 0x23c irq5</programlisting>
+
+ <para>Bus 滑鼠通常要搭配專用的介面卡才能使用。
+ 這些卡可以設定 port address 及 IRQ 值,這些細節請參閱你的滑鼠說明手冊及
+ &man.mse.4; 說明。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ps2mouse">
+ <para>PS/2 (<quote>mouse port</quote> 或
+ <quote>keyboard</quote>)的滑鼠要怎麼設定才好呢?</para>
+ </question>
+
+ <answer>
+ <para>PS/2 滑鼠都有支援,所需要用到的驅動程式 <devicename>psm</devicename>
+ 在預設的 kernel(GENERIC)已有內含了。</para>
+
+ <para>若你自訂的 kernel 內漏了 psm 的話,那麼就再把下列內容加到 kernel
+ 設定檔並重新編譯、安裝:</para>
+
+ <programlisting>device psm0 at atkbdc? irq 12</programlisting>
+
+ <para>當開機時 kernel 有正確偵測到 <devicename>psm0</devicename>
+ ,請務必確認在 <filename>/dev</filename> 內有
+ <devicename>psm0</devicename> 。
+ 如果沒有的話,那麼就用 <username>root</username> 來打下列指令來建立吧:</para>
+
+ <screen>&prompt.root; <userinput>cd /dev; sh MAKEDEV psm0</userinput></screen>
+
+ <note>
+ <para>如果是 &os; 5.0-RELEASE(含之後版本)的話,因為採用 &man.devfs.5; 機制的因素,
+ 所以會自動在 <filename>/dev</filename> 下建立相關設備的節點,因此就可以略過上面這一步。</para>
+ </note>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="moused">
+ <para>如果不用 X Window 環境的話,也可以用滑鼠嗎?</para>
+ </question>
+
+ <answer>
+ <para>若使用 console 的預設驅動程式(也就是 &man.syscons.4;),
+ 那麼就可以在文字介面的 console 上面用滑鼠來剪貼文字了。
+ 那麼要啟動 &man.moused.8; 並開啟游標顯示,
+ 請打下列指令:</para>
+
+ <screen>&prompt.root; <userinput>moused -p /dev/<replaceable>xxxx</replaceable> -t <replaceable>yyyy</replaceable></userinput>
+&prompt.root; <userinput>vidcontrol -m on</userinput></screen>
+
+ <para>其中『<replaceable>xxxx</replaceable>』是滑鼠的設備名稱,而
+ 『<replaceable>yyyy</replaceable>』則是滑鼠所使用的 protocol 種類。
+ 目前的 moused 可以自動偵測(除了舊式的 serial
+ 滑鼠之外)大多數滑鼠所使用的 protocol 種類,而不用刻意去指定。
+ 『protocol 種類』設定用
+ <literal>auto</literal> 就會自動偵測了。若自動偵測失敗的話,請參閱 &man.moused.8;
+ 裡面的 type 那段說明。</para>
+
+ <para>如果用的是 PS/2 滑鼠,只要把
+ <literal>moused_enable="YES"</literal> 加到
+ <filename>/etc/rc.conf</filename> ,這樣每次開機就會自動啟動了。
+ 此外,如果要在所有 virtual terminals 上也能使用滑鼠,
+ 而不限定只有 console 的話,那麼請再把
+ <literal>allscreens_flags="-m on"</literal> 加到 <filename>/etc/rc.conf</filename> 裡面即可。</para>
+
+ <para>moused 在執行中的時候,如果要使用滑鼠相關功能,都必須透過 moused
+ 或其他程式像是 X 視窗來進行。請參閱 FAQ 中有關<link
+ linkend="x-and-moused">『為什麼不能在 X 視窗裡使用滑鼠?』</link>以瞭解相關細節。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="text-mode-cut-paste">
+ <para>在文字模式的 console 環境要怎麼用滑鼠來剪貼文字呢?</para>
+ </question>
+
+ <answer>
+ <para>當執行 moused 後,(參閱<link linkend="moused">前一節</link>)
+ 按住左鍵,接著移動滑鼠來選擇一個區域之後放開,這樣就完成『複製』。
+ 要『貼上』的話,按滑鼠中鍵就可以了。
+ 要『延伸選取區』的話,按滑鼠右鍵</para>
+
+
+ <para>如果你的滑鼠沒有中鍵,你可以用模擬的方式,或是重新定義滑鼠按鍵的方式,
+ 來達成「延伸」的功能。詳情請參閱 &man.moused.8; 說明。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="mouse-wheel-buttons">
+ <para>我滑鼠上面的滾輪、滾輪按鈕,可以在 console 上使用嗎?</para>
+ </question>
+
+ <answer>
+ <para>這個答案嘛...,很不幸地,在大多數的情況下不行。
+ 這些有滾輪的滑鼠需要用特殊驅動程式才行,
+ 除非,滑鼠驅動程式或使用者自己的應用程式有支援,
+ 不然,這些滑鼠只能夠當成是普通的兩鍵或三鍵的滑鼠來用而已。
+ </para>
+
+ <para>如果要在 X 視窗環境上使用滾輪的話,請參閱
+ <link linkend="x-and-wheel"> X 視窗上的滾輪使用
+ </link>說明。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="laptop-mouse-trackball">
+ <para>要怎麼在筆記型電腦上使用滑鼠、軌跡球、觸控板呢?</para>
+ </question>
+
+ <answer>
+ <para>請參閱<link linkend="ps2mouse">前面的 PS/2 滑鼠的問答
+ </link>。</para>
+ </answer>
+ </qandaentry>
+
+ </qandaset>
+
+ </sect1>
+
+ <sect1 id="compatibility-networking">
+ <title>網路跟 serial 設備</title>
+
+ <qandaset>
+
+ <qandaentry>
+ <question id="network-cards">
+ <para>FreeBSD 支援哪些網路卡呢?</para>
+ </question>
+
+ <answer>
+ <para>請參考 &os; 各版本的硬體支援列表。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="internal-plugnplay-modem">
+ <para>為什麼 FreeBSD 找不到 PnP(隨插隨用,Plug &amp; Play)規格的 modem?</para>
+ </question>
+
+ <answer>
+ <para>原因在於:需要把 modem 的 PnP ID 加到 serial 驅動程式的 PnP ID 表,作法如下:</para>
+ <orderedlist>
+ <listitem>
+ <para>首先,在 kernel 設定檔內加入 <literal>controller pnp0</literal>,
+ 並重新編譯、安裝 kernel,最後重開機就會啟動 PnP 支援。</para>
+ </listitem>
+
+ <listitem>
+ <para>然後,kernel 會把偵測到所有設備上的 PnP ID 都列出。
+ 這時,修改 <filename>/usr/src/sys/isa/sio.c</filename>(大約第752行左右的地方),
+ 可以搜尋 <literal>SUP1310</literal> 當關鍵字(位於 <literal>sio_ids[]</literal> 表內),
+ 請將剛才 kernel 顯示的 modem 的 PnP ID 複製到相關位置。</para>
+ </listitem>
+
+ <listitem>
+ <para>這時,再重新編譯、安裝 kernel,最後重開機應該就會正確偵測到 modem 了。</para>
+ </listitem>
+ </orderedlist>
+
+ <para>此外,也可以在開機時以 <literal>pnp</literal> 指令來手動設定 PnP 設備,
+ 來讓 kernel 得以正確偵測,舉例:</para>
+
+ <programlisting>pnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8</programlisting>
+
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="support-winmodem">
+ <para>FreeBSD 支援像是 Winmodems 之類的軟體 modem 嗎?</para>
+ </question>
+
+ <answer>
+ <para>FreeBSD 可以安裝額外的軟體來支援軟體 modem。
+ 像是 <filename role="package">comms/ltmdm</filename> 可支援常見的 Lucent LT 晶片,
+ <filename role="package">comms/mwavem</filename> 則可支援 IBM Thinkpad 600 及 700
+ 筆記型電腦上面的 modem。</para>
+
+ <para>然而,並不能用軟體 modem 來安裝 FreeBSD,
+ 因為:這類軟體必須在作業系統安裝完畢之後,才能安裝。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="support-broadcom">
+ <para>有 Broadcom 43xx 無線網卡的原生驅動程式(Native driver)嗎?</para>
+ </question>
+
+ <answer>
+ <para>沒有,而且也不太可能會有。</para>
+
+ <para>Broadcom 拒絕公開有關無線網卡晶片的驅動程式相關說明,
+ 主因大概是他們用軟體來控制無線傳輸方式。
+ 事實上,因為要能通過美國聯邦電信委員會(FCC)檢磁安規的話,
+ 必須確保產品不能讓使用者不能隨意更動相關設定,比如:電磁波頻率、相關模組參數、輸出電源等。
+ 但是,如果我們不知道如何去控制晶片的話,那麼撰寫驅動程式之路恐怕不太可行。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="multiport-serial-support">
+ <para>FreeBSD 支援哪些 multi-port serial卡呢?</para>
+ </question>
+
+ <answer>
+ <para>請參閱使用手冊上的 <ulink
+ url="&url.books.handbook;/install.html#INSTALL-MISC">安裝篇—其他硬體
+ </ulink> 列表。</para>
+
+ <para>雖然有些卡是沒牌的(尤其是有標明:相容 AST 規格)但也可以正常使用。</para>
+
+ <para>至於卡的設定方面,請參閱 &man.sio.4; 的說明。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="serial-console-prompt">
+ <para>在 serial console 上要如何才會出現 boot: 提示呢?</para>
+ </question>
+
+ <answer>
+ <orderedlist>
+ <listitem>
+ <para>kernel 設定檔加入
+ <literal>options COMCONSOLE</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>建立 /boot.config 檔,並且該檔裡面內容只填上 <option>-P</option></para>
+ </listitem>
+
+ <listitem>
+ <para>把鍵盤從機器上拔掉</para>
+ </listitem>
+ </orderedlist>
+
+ <para>細節請看
+ <filename>/usr/src/sys/i386/boot/biosboot/README.serial</filename>
+ </para>
+ </answer>
+ </qandaentry>
+
+ </qandaset>
+
+ </sect1>
+
+ <sect1 id="compatibility-sound">
+ <title>音效卡</title>
+
+ <qandaset>
+
+ <qandaentry>
+ <question id="sound-card-support">
+ <para>FreeBSD 支援哪些音效卡?</para>
+ </question>
+
+ <answer>
+ <para>&os; 支援各種音效卡,包括了 &soundblaster;、
+ &soundblaster; Pro、&soundblaster; 16、Pro Audio Spectrum 16、
+ AdLib、及 Gravis UltraSound sound cards (細節請參閱
+ <ulink url="&url.base;/releases/">&os; 發行情報</ulink>
+ 以及 &man.snd.4; 的說明)。
+ 此外,對 MPU-401 及 MIDI 相容規格的也有一定程度的支援,而
+ &microsoft; Sound System 規格也有支援。</para>
+
+ <note>
+ <para>驅動程式僅適用於『音效』部分! 除了 &soundblaster; 之外,
+ 目前音效驅動程式並不支援這些音效卡上的光碟機, SCSI設備或搖桿。
+ &soundblaster; 的 SCSI 介面及某些非 SCSI 的光碟機是有支援,但無法用來開機。
+ </para>
+ </note>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="es1370-silent-pcm">
+ <para>&man.pcm.4; 所支援的音效卡沒有聲音,有什麼暫時解決方式嗎?</para>
+ </question>
+
+ <answer>
+ <para>因為有些像是 es1370 晶片的音效卡會在每次開機時把音量調為零。
+ 暫時解法是在每次開機時執行下面指令,或是加到 /etc/rc.local 內:</para>
+
+ <screen>&prompt.root; <userinput>mixer pcm 100 vol 100 cd 100</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ </qandaset>
+
+ </sect1>
+
+ <sect1 id="compatibility-other">
+ <title>其他怪異問題(ACPI、重開機後掛了..等)</title>
+
+ <qandaset>
+
+ <qandaentry>
+ <question id="other-device-support">
+ <para>FreeBSD 還支援其他哪些硬體呢?</para>
+ </question>
+
+ <answer>
+ <para>請參閱使用手冊上的 <ulink
+ url="&url.books.handbook;/install.html#INSTALL-MISC">安裝篇—其他硬體</ulink>
+ 。</para>
+
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="power-management-support">
+ <para>FreeBSD 支援筆記型電腦的省電管理功能嗎?</para>
+ </question>
+
+ <answer>
+ <para>FreeBSD 4.X(含之後版本)在某些機種上都有支援 <acronym>APM</acronym>。
+ 細節請參閱 &man.apm.4; 的說明。</para>
+
+ <para>FreeBSD 5.X(含之後版本)支援在目前大部分機種上都有的
+ <acronym>ACPI</acronym> 功能。
+ 細節請參閱 &man.acpi.4; 的說明。若機器上同時都有 <acronym>APM</acronym>
+ 及 <acronym>ACPI</acronym> 功能的話,我們建議你可以兩者都試試看,
+ 看看哪一種比較符合你的需求。</para>
+
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="disable-acpi">
+ <para>該如何關閉 ACPI?</para>
+ </question>
+
+ <answer>
+ <para>把 <screen>hint.acpi.0.disabled="1"</screen>
+ 這段加到 <filename>/boot/device.hints</filename> 即可。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="micron-hang-boot">
+ <para>Micron 電腦總是在 &os; 啟動時就掛掉,該怎麼辦呢?</para>
+ </question>
+
+ <answer>
+ <para>有些 Micron 主機板上的 BIOS 在 PCI 方面會有問題,
+ 這會導致 PCI 設備會被 BIOS 偵測為不正確設定,而進入 FreeBSD 就掛掉。</para>
+
+ <para>暫時解決方式:關閉 BIOS 內 <quote>Plug and Play Operating System</quote>
+ 的設定。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="micron-3comnic-failure">
+ <para>&tm.3com; PCI 介面網路卡無法在 Micron 電腦上使用,該怎麼辦?</para>
+ </question>
+
+ <answer>
+ <para>這問題跟前面的問題因素一樣,總之,就是關閉 BIOS 中有關 OS PnP 的設定。</para>
+
+ <para>暫時解決方式:關閉 BIOS 內 <quote>Plug and Play Operating System</quote>
+ 的設定。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="asusk7v-boot-failure">
+ <para>主機板是用華碩(ASUS) K7V,可是用開機片開到一半就當了,怎麼辦呢?</para>
+ </question>
+
+ <answer>
+ <para>進入 BIOS 設定,並關閉 <quote>boot virus protection</quote> 設定即可。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="newcard-does-not-work">
+ <para>PCMCIA 卡無法使用,並出現錯誤訊息
+ <quote>cbb0: unsupported card type detected.</quote>
+ 該怎麼辦?</para>
+ </question>
+
+ <answer>
+ <para>可以試試看改用舊的方式,請先修改 kernel 設定檔,拿掉下面這幾行:
+ <programlisting>device cbb
+device pccard
+device cardbus</programlisting>
+ 然後加上:
+ <programlisting>device pcic
+device card 1</programlisting>
+ 最後請參閱 Handbook 中
+ <ulink url="&url.books.handbook;/kernelconfig.html">調整 FreeBSD Kernel</ulink>
+ 章節,以重新編譯、安裝新的 kernel。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="dell-poweredge-failure">
+ <para>為什麼 &dell; &poweredge; 2850 裝完 FreeBSD 之後,重開機接著鍵盤就掛了?</para>
+ </question>
+
+ <answer>
+ <para>(本題由 cdsheen 提供)嚐試在 &dell; &poweredge; 2850 上面安裝 &os; 6.0,
+ 不過安裝完成、並重新開機之後,發現 console 的鍵盤不能動了,
+ 同樣的情況似乎也存在於 &os; 5.3 及 &os; 5.4,
+ 經過一番搜尋,發覺是因為這台機器上面有一個 <quote>Dell Remote Access Controller (DRAC)</quote>,
+ 這個裝置會被系統辨識成一個 USB Keyboard,所以導致開完機之後,正常的 PS/2 鍵盤反而不能動了!</para>
+
+ <para>暫時解決方式如下:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>先以 Single User Mode 進入系統</para>
+ </listitem>
+
+ <listitem>
+ <para>在命令列模式下,先執行下列命令:</para>
+ <screen>&prompt.root; <userinput>fsck -y <filename>/</filename></userinput></screen>
+ <screen>&prompt.root; <userinput>mount -u <filename>/</filename></userinput></screen>
+ </listitem>
+
+ <listitem>
+ <para>然後編輯 <filename>/etc/devd.conf</filename>,把對於 USB Keyboard 的支援暫時拿掉,
+ 也就是把下面幾行開頭加上 #</para>
+ <programlisting>
+# When a USB keyboard arrives, attach it as the console keyboard.
+#attach 100 {
+# device-name "ukbd0";
+# action "kbdcontrol -k /dev/ukbd0 &lt; /dev/console &amp;&amp; /etc/rc.d/syscons restart";
+#};
+#detach 100 {
+# device-name "ukbd0";
+# action "kbdcontrol -k /dev/kbd0 &lt; /dev/console";
+#};
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>然後輸入 <command>exit</command>離開 Single User Mode 之後,
+ 就可以順利進入系統、而且鍵盤也可以正常運作,下次開機也不會有問題!</para>
+ </listitem>
+ </orderedlist>
+
+ <para>另外,&dell; 的 DRAC/BMC 看起來有蠻多不錯的遠端存取功能,有興趣的人可以玩玩看...</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+
+ </sect1>
+
+ </chapter>
+
+ <chapter id="troubleshoot">
+ <chapterinfo>
+ <author>
+ <firstname>William</firstname>
+ <surname>Liao</surname>
+ <affiliation>
+ <address><email>chliao@tpts4.seed.net.tw</email></address>
+ </affiliation>
+ </author>
+ </chapterinfo>
+
+ <title>常見問題解決</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="pae">
+ <para>為什麼 &os; 抓到錯誤的記憶體容量?</para>
+ </question>
+
+ <answer>
+ <para>抓到錯誤的記憶體容量是因為物理位址跟虛擬位址兩者是不同的。</para>
+
+ <para>The convention for most PC hardware is to use the memory area
+ between 3.5G and 4G for a special purpose (usually for PCI). This
+ address space is used to access PCI hardware. As a result real,
+ physical memory can not appear in that address space.</para>
+
+ <para>What happens to the memory that should appear in that location
+ is dependent on your hardware. Unfortunately, some hardware does
+ nothing and the ability to use that last 500M of RAM is entirely
+ lost.</para>
+
+ <para>Luckily, most hardware remaps the memory to a higher location
+ so that it can still be used. However, this can cause some
+ confusion if you watch the boot messages.</para>
+
+ <para>On a 32 bit version of &os;, the memory appears lost, since it
+ will be remapped above 4G, which a 32 bit kernel is unable to
+ access. In this case, the solution is to build a PAE enabled
+ kernel. See <link linkend="memory-limits">this FAQ entry</link>
+ for more information.</para>
+
+ <para>On a 64 bit version of &os;, or when running a PAE-enabled
+ kernel, &os; will correctly detect and remap the memory so it is
+ usable. During boot, however, it may seem as if &os; is detecting
+ more memory than the system really has. This is normal and the
+ available memory will be corrected as the boot process
+ completes.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="awre">
+ <para>硬碟有壞軌時該怎麼辦?</para>
+ </question>
+
+ <answer>
+ <para>若是 SCSI 硬碟的話,那麼磁碟機應該有能力自動作 re-mapping
+ 的動作。然而,因為一些未知的因素,在出廠時,很多硬碟的這項
+ 功能是關閉的...</para>
+
+ <para>要將其重新開啟,您需要編輯裝置的第一個 page 模式
+ (first device page mode),在 FreeBSD 上可以用下面的指令辦到
+ (以 <username>root</username>身分執行)</para>
+
+ <screen>&prompt.root; <userinput>scsi -f /dev/rsd0c -m 1 -e -P 3</userinput></screen>
+
+ <para>然後將 AWRE 和 ARRE 的數值從 0 變成 1:-</para>
+
+ <programlisting>AWRE(Auto Write Reallocation Enbld): 1
+ARRE(Auto Read Reallocation Enbld): 1</programlisting>
+
+ <para>以下這段是由 Ted Mittelstaedt
+ <email>tedm@toybox.placo.com</email>所提供:</para>
+
+ <para>若為 IDE 硬碟,任何的壞軌通常都是麻煩的預兆。目前所有較新的
+ IDE 硬碟,內部都有自動 remapping 壞軌的能力。目前所有 IDE 硬碟
+ 製造商,都提供了更久的保證,而且會幫您更換出現壞軌的硬碟。</para>
+
+ <para>如果您仍想要修復產生壞軌的 IDE 硬碟,您仍可以試著去下載 IDE
+ 硬碟製造商所提供的檢測程式,並用它來檢查您的硬碟。有時這些軟體可
+ 以強迫重新檢查硬碟的壞軌,並將它們標示出來。</para>
+
+ <para>對 ESDI,RLL 及 MFM 的硬碟來說,通常壞軌是正常現象,也不是什
+ 麼麻煩的前兆。在 PC 上,磁碟控制卡和 BIOS 負責標示壞軌的任務。這
+ 對一些使用 BIOS來存取磁碟的作業環境(如 DOS)是沒有問題的。然而,
+ FreeBSD 的磁碟驅動程式並不經過 BIOS 來存取磁碟,所以,有個 bad144
+ 的機制用來取代這項功能。bad144 只能用在 wd 這個磁碟驅動程式上(這
+ 個代表了 FreeBSD 4.0 並不支援它),它也無法用在 SCSI 硬碟上。
+ bad144的工作方法是將所有找到的壞軌資料存到一個特別的檔案裏。</para>
+
+ <para>使用 bad144 的警告 - 存著壞軌資料的特別檔案是放在硬碟的最後
+ 一軌上。因為這個檔案儲存的壞軌資料中,有可能有些資料是指向硬碟最
+ 前端所發生的壞軌情形,就是可能儲存 /kernel 這個檔的地方,所以它
+ 一定要能被開機程式所讀取,而開機程式是透過 BIOS 來讀取 kernel
+ 檔。這表示了使用 bad144 的硬碟絕不能擁有超過 1024 個 cylinder,
+ 16 個 head 及 63 個 sector。而這使得欲使用 bad144 的硬碟的大小不
+ 能大於 500 MB。</para>
+
+ <para>要使用 bad144 很簡單,只要在開始安裝時,在 FreeBSD fdisk 畫面
+ 把<quote>Bad Block</quote> 掃瞄設為 ON 即可。在 FreeBSD 2.2.7 以
+ 後都可以使用此方法。但這個硬碟的 cylinder 一定要在 1024 以下。使
+ 用前,我們建議這個硬碟要至少先使用四個小時,以便熱膨脹與磁軌偏移
+ 達一般狀態。</para>
+
+ <para>如果這個硬碟擁有超過 1024 個 cylinder(像大容量的 ESDI 硬碟)
+ ,ESDI 控制卡利用一個特別的轉換模式使它能在 DOS 下工作。而如果您
+ 在 fdisk 裏的 <quote>set geometry</quote> 中輸入
+ <quote>轉換過</quote> 的 geometry,wd 這個驅動程式能了解這些轉換
+ 模式。您也絕對不能使用 dangerously dedicated 模式來建立 FreeBSD
+ 的分割區,因為它會忽略 geometry 這個參數。此外,就算 fdisk 使用
+ 您所輸入的 geometry 參數,它依然會去讀取這硬碟的真正資料,而會嘗
+ 試去建立一個過大的 FreeBSD 分割區。如果磁碟的 geometry 已經被
+ <quote>轉換</quote> 過了,那麼 這個分割區 <quote>必須</quote>
+ 以手動輸入 block 數目的方法來建立。</para>
+
+ <para>一個快速的小技巧是利用 ESDI 控制卡來設定大容量的 ESDI 硬碟,
+ 用 DOS 開機片開機,再將它 format 為 DOS 的分割區。然後重開機進入
+ FreeBSD 安裝程序,在 fdisk 畫面,把DOS 分割區的 blocksize 和
+ block number 抄下來。然後重新設定 geometry 使其跟 DOS 使用的一樣。
+ 刪除 DOS 分割區,然後使用您剛剛抄下的 blocksize 來建立一個
+ <quote>cooperative</quote> FreeBSD 分割區。然後設定這個分割區為可
+ 開機,再打開壞軌掃瞄。在真正的安裝過程中,bad144 會在任何檔案系統
+ 被建立前先被執行。(您可以按 Alt-F2 來監看這一切)如果在建立壞軌資
+ 料檔時發生了問題,您會需要設定一個較大的磁碟 geometry - 這表示您
+ 需要重開機,然後全部再重新開始(包括重新分割以及在 DOS 下重新
+ format)。</para>
+
+ <para>如果 remapping 的功能已經啟動了,而您依然一直看到壞軌產生,
+ 那麼考慮換一台硬碟吧。壞軌的情形只會隨時間增加而更為嚴重。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="hpnetserver-scsi-failure">
+ <para>為什麼 FreeBSD 抓不到 HP Netserver 的 SCSI 控制卡?</para>
+ </question>
+
+ <answer>
+ <para>基本上這個是一個已知的問題。在 HP Netserver 機器上的 on-board
+ EISA 介面 SCSI 控制卡占據了定址為第 11 的 EISA 槽,因此所有的
+ <quote>真實</quote> EISA 槽都在它之前。可是,在 EISA 定址空間
+ &gt;= 10 時,會與指定給 PCI 用的定址空間相衝突,且 FreeBSD 的
+ auto-configuration 無法正確的處理這個情形。</para>
+
+ <para>因此,現在你能做的最好事情就是在 kernel 裏設定
+ <literal>EISA_SLOTS</literal> 這個選項為 12 ,然後當作沒有這個
+ 問題 :)。請依照 <ulink url="../../handbook/kernelconfig.html">
+ Handbook 中有關 kernel 的設定</ulink> 裏所說的方法來設定與編譯
+ 您的 kernel。</para>
+
+ <para>當然,在安裝 FreeBSD 到這種機器上時,這是一個雞生蛋蛋生雞的
+ 問題。為了解決這個問題,在 <emphasis>UserConfig</emphasis> 中有
+ 一個特別的方法,安裝時不要進入 <quote>visual</quote> 介面,相反
+ 的,在命令列模式中,鍵入</para>
+
+ <programlisting>eisa 12
+quit</programlisting>
+
+ <para>然後就如以往一樣安裝您的系統。不過我們建議您編譯與安裝一個
+ 屬於自己的 kernel,但</para>
+
+ <para>希望在未來的版本中能對這個問題有一個好的解決方法。</para>
+
+ <note>
+ <para>您無法在 HP Netserver 上使用
+ <literal>dangerously dedicated</literal> 磁碟模式。您可以參考
+ <link linkend="dedicate">這份註解</link> 以獲得更多資訊。</para>
+ </note>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ed1-timeout">
+ <para>一直看到類似
+ <errorname>ed1: timeout</errorname> 的訊息。它們是什麼意思呢?
+ </para>
+ </question>
+
+ <answer>
+ <para>這個通常是由於中斷衝突(interrupt conflict)所造成的
+ (例如:兩塊卡使用到了相同的 IRQ)。 FreeBSD 在 2.0.5 版以前都容許這個情形,
+ 就算有 IRQ 衝突情形,網路卡也應該仍可正常運作。然而,在 2.0.5 版及其以後,
+ 已不再容許有 IRQ 衝突的情形了。請於開機時使用 -c 這個選項,
+ 然後更改 ed0/de0/..等的設定,使其和您網路卡本身的設定一致。</para>
+
+ <para>如果您是使用您網路卡上的 BNC 接頭,您或許也會因不良的終端電阻設定,
+ 而發生裝置(device) timeout 的情形。要檢查是否有這種情形,
+ 您可以在網路卡上直接接上終端電阻(不要接網路線),
+ 然後,看看這個錯誤訊息是不是就消失了。</para>
+
+ <para>有些 NE2000 的相容卡,如果它的 UTP 埠沒有接網路線,
+ 或是該網路線並沒被使用的話,也會出現這個錯誤訊息。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="bad-3c509">
+ <para>&tm.3com; 3C509 網路卡莫名其妙罷工?</para>
+ </question>
+
+ <answer>
+ <para>這塊卡有個不好的地方在於它常常會遺失本身的設定資料。請使用該
+ 卡的 DOS 工具 <command>3c5x9.exe</command> 來更新卡上設定。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="printer-slow">
+ <para>平行埠印表速度破天荒的慢,該怎麼辦?</para>
+ </question>
+
+ <answer>
+ <para>如果唯一的問題就是速度很慢的話,試著改變您的 <ulink
+ url="../handbook/printing-intro-setup.html#PRINTING-PARALLEL-PORT-MODE">
+ 印表機連接埠設定</ulink> 這個在手冊中的
+ <ulink url="../handbook/printing-intro-setup.html">印表機設定
+ </ulink> 這個章節有加以討論。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="signal11">
+ <para>程式有時會因 <errorname>Signal 11</errorname> 錯誤而停止?</para>
+ </question>
+
+ <answer>
+ <para>Signal 11 這個錯誤是因為你的 process 嘗試要存取一塊記憶體,
+ 而你的作業系統並不允許它做這個動作而發生的。如果這種情形常常不
+ 定時發生,那麼你應該要開始看看是不是哪裡出問題了。</para>
+
+ <para>這些問題可能是與下列情形有關:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>如果這個問題只在某一個您自己寫的某個特定程式發生,那
+ 麼很有可能是您的程式碼有問題。</para>
+ </listitem>
+
+ <listitem>
+ <para>如果這個問題是在 FreeBSD 的某些系統檔案發生,有可能是
+ 因為程式有問題,但通常在我們這群讀 FAQ 的使用者去跑這些有
+ 問題的程式碼前,它們早就就已經被解決了(這是 -current 在做
+ 的事)。</para>
+ </listitem>
+ </orderedlist>
+
+ <para>尤其如果你在編譯一個程式,但是每次編譯器跑出來的結果都不一樣
+ 的話,這是一個無解的問題,而<emphasis>不是</emphasis> FreeBSD 臭蟲。</para>
+
+ <para>舉例來說,假設您正在跑 <quote>make buildworld</quote>,
+ 而 compiler 在將 <filename>ls.c</filename> 編譯成
+ <filename>ls.o</filename> 時發生錯誤,這時請再跑一次
+ <quote>make buildworld</quote>,如果 compiler 依然在同樣的地方發
+ 生問題,那麼就是程式碼有問題--請更新原始碼然後再試試看。而如果
+ compiler 是在其他的地方發生錯誤,那麼幾乎可以確定是硬體的問題了。
+ </para>
+
+ <para>您這時應該做什麼:</para>
+
+ <para>如果是第一種情形,可以使用一些 debugger,如:gdb,來找出程式
+ 是在那兒會去嘗試存取錯誤的記憶體位址,然後再修正它。</para>
+
+ <para>如果是第二種情形,就需要檢查看看是不是硬體的問題了。</para>
+
+ <para>一些造成硬體不穩的原因包括:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>可能是硬碟過熱:請檢查機殼內的風扇是否運作正常,因為您
+ 的硬碟(或者還有其他的硬體裝置)過熱了。</para>
+ </listitem>
+
+ <listitem>
+ <para>處理器過熱:這個有可能是因為超頻,或者是處理器的風扇掛了。
+ 不論是哪種原因,您都需要將所有的元件回復到它們原先設定的工作狀
+ 態,這樣才能解決這個問題。舉個例子來說:將處理器調回原先的工作
+ 頻率。</para>
+
+ <para>如果您還是堅持要超頻的話,請謹記,與其燒壞而需要換新的一台
+ 主機,不如將速度調慢一點!除此之外,不管你覺得它安不安全,一般
+ 人對於您因為超頻而發生的問題,是不會有什麼同情心的。</para>
+ </listitem>
+
+ <listitem>
+ <para>不穩定的記憶體:如果主機上有安裝數根 SIMM/DIMM 記憶體,
+ 試著把它們全拆下來,然後一根一根插上去做測試,藉此縮小範圍,
+ 以便找出有問題的某根記憶體或是某種記憶體組合。</para>
+ </listitem>
+
+ <listitem>
+ <para>最佳化過頭的主機板設定:在 BIOS 裏或是有些主機板的 jumper
+ 上,有時可以更改一些 timing,但在大多數的情形裏,使用預設值就
+ 已經足夠了。況且有時候把 RAM 的 wait states 設太小,或是在
+ BIOS 裏,把 <quote>RAM Speed: Turbo</quote> 這個或是其他類似
+ 的選項打開都有可能會造成一些不正常的現象。一個解決的方法是把
+ BIOS 設回預設值,不過在這之前記得先記下目前的設定!</para>
+ </listitem>
+
+ <listitem>
+ <para>供給主機板的電力不乾淨或是不足。試著把系統內沒有用到的
+ I/O 卡.硬碟或是 CDROM 暫時拆掉或是拔掉電源線,看看你的電源
+ 供應器是不是能夠在小一點的負荷下正常工作。不然就是換上另一
+ 個新的電源供應器,最好是瓦數高一點的(打個比方來說,如果原
+ 先的電源供應器是 250 瓦的,那麼就換上 300 瓦的試試)。</para>
+ </listitem>
+
+ </orderedlist>
+
+ <para>請順便參閱 SIG11 FAQ(連結在下面),雖然它是站在 Linux 的角
+ 度寫的,可是裡面對這些問題有許多很棒的解說。它裡面也有討論為什麼
+ 有問題的記憶體能通過軟體或硬體的測試的原因。</para>
+
+ <para>最後,如果上面這些原因都排除了,那麼有可能是遇到了 FreeBSD
+ 裏的一隻臭蟲,請參閱指示做一個問題回報。</para>
+
+ <para>這兒有一個更詳細的 FAQ - <ulink
+ url="http://www.bitwizard.nl/sig11/">
+ the SIG11 problem FAQ</ulink></para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="trap-12-panic">
+ <para>當機時出現:<errorname>Fatal trap 12: page fault in kernel mode</errorname>
+ ,或是 <errorname>panic:</errorname> 以及一堆錯誤訊息,該怎麼辦?</para>
+ </question>
+
+ <answer>
+ <para>FreeBSD 的開發者對於這些錯誤訊息相當的有興趣,但是他們需要
+ 更詳細的一些細節。請把您的當機的訊息全部複製下來,接著查閱 FAQ
+ 裏 <link linkend="kernel-panic-troubleshooting">kernel
+ panics</link> 這節,依說明編譯一個含除錯碼的 kernel,以取得函式
+ 呼叫順序(backtrace)。這個聽起來很難,但實際上並不需要任何程式
+ 設計的能力,您只需要依照指示做即可。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="screen-loses-sync">
+ <para>為什麼當我開機時,螢幕變黑,且不停閃動?</para>
+ </question>
+
+ <answer>
+ <para>這個問題,已知是由 ATI Mach 64 顯示卡所引起的。因為這塊卡
+ 使用到 <literal>2e8</literal> 這個位址,而這與第四個序列埠
+ (serial port)所使用的位址相同。而在 &man.sio.4; 這個驅動
+ 程式裏,不知道是 bug 或是功能(feature),就算您沒有第四個序
+ 列埠,或是已經將 sio3(第四個序列埠)取消了,它
+ <emphasis>依然</emphasis>會去嘗試驅動它。</para>
+
+ <para>直到這個問題被解決以前,您可以使用這個方法:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>在看到開機提示時輸入 <option>-c</option>
+ (這會讓 kernel 進入設定模式)。</para>
+ </listitem>
+
+ <listitem>
+ <para>取消 <devicename>sio0</devicename> ,
+ <devicename>sio1</devicename> ,
+ <devicename>sio2</devicename> 和
+ <devicename>sio3</devicename>(全部)。
+ 這可以讓 sio 驅動程式不動作 -&gt; 於是問題解決。</para>
+ </listitem>
+
+ <listitem>
+ <para>輸入 exit 以繼續啟動程序。</para>
+ </listitem>
+ </orderedlist>
+
+ <para>如果您想要使用您的序列埠,您需要修改
+ <filename>/usr/src/sys/i386/isa/sio.c</filename>,在該檔中找出
+ <literal>0x2e8</literal> 這個字串,移除這個字串及它前面的逗號
+ (保留後面的),然後重新編譯一個新的 kernel。</para>
+
+ <para>就算使用了上面這些方法,X Window 仍然有可能無法順利執行。
+ 如果發生了這種情形,請確定你用的 XFree86 的版本是最新的 XFree86
+ 3.3.3 或是其後的版本。它們有內建支援 Mach 64 這張卡,甚至為了這
+ 些卡還附有一個特別的 X Server</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="reallybigram">
+ <para>為什麼我的系統裝有 128 MB 的 RAM,而 FreeBSD 只用了其中的
+ 64MB?</para>
+ </question>
+
+ <answer>
+ <para>因為 FreeBSD 是使用呼叫 BIOS 來取得記憶體大小的方法,因此它
+ 只能偵測到 16 bits 位元長度的 KByte 大小(65535 KBytes = 64MB)
+ (或者更少..。有些 BIOS 將最高記憶體大小限為只有 16MB)
+ 如果您擁有 64MB 以上的 RAM,FreeBSD 會嘗試去偵測出它,但是有可能
+ 會失敗。</para>
+
+ <para>要解決這個問題,您需要使用下面所提的 kernel 設定選項。雖然有
+ 方法可以從 BIOS 中取得記憶體的完整資訊,但是目前我們在開機區中並
+ 沒有多餘的空間來做這件事。當某天開機區空間不足的情形獲得解決時,
+ 我們將會使用 BIOS 的延伸功能來取得記憶體的完整資訊...但現在我們
+ 將它放在 kernel 設定選項中。</para>
+
+ <para><literal>options "MAXMEM=<replaceable>n</replaceable>"</literal></para>
+
+ <para><replaceable>n</replaceable> 是指您的記憶體大小,以 KB
+ 為單位。以一台有 128MB RAM 的機器來說,您可使用
+ <literal>131072</literal>這個數字。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="kmem-map-too-small">
+ <para>機器上的 RAM 有 1GB 以上,可是為何卻收到 <quote>kmem_map too small</quote>
+ 的 panic 錯誤訊息?
+ </para>
+ </question>
+
+ <answer>
+ <para>通常 FreeBSD 會依據機器狀況來自動調整 kernel 相關參數設定,比如:
+ 根據機器所裝的 RAM 大小來決定同時可開啟的檔案數量多寡。
+ 然而,在 1GB RAM(含以上) 的機器上,這個『自動調整』的機制可能有時會高估:
+ 比方說..開機時,kernel 會先配置各種不同用途的表格及其他架構放到記憶體上,
+ 然後,當整個作業系統都開始運作之後,kernel 就會開始不夠空間來做記憶體配置的動態調整,
+ 於是就 panic 掛了。</para>
+
+ <para>解法是:把 <option>VM_KMEM_SIZE_MAX</option> 加到 kernel 設定檔內,
+ 並重新編譯 kernel,比如:</para>
+
+ <para><literal><option>options VM_KMEM_SIZE_MAX=419430400</option></literal></para>
+
+ <para>
+ 這樣會設定 400&nbsp;MB 來給 kernel 使用,而且採用 400&nbsp;MB 的話,
+ 目前在 6GB RAM 的機器上都可被有效運用。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="panic-kmemmap-too-small">
+ <para>機器上 RAM 不到 1GB ,但仍會出現
+ <errorname>kmem_map too small!</errorname> 的 panic 錯誤訊息
+ </para>
+ </question>
+
+ <answer>
+ <para>之所以 panic 的原因在於系統用光了給 network buffer 用途的 virtual memory
+ (尤其是 mbuf clusters)。解法是增加給 mbuf clusters 用的 virtual memory
+ 數量,這步驟請參閱 FreeBSD 使用手冊的
+ <ulink
+ url="&url.books.handbook;/configtuning-kernel-limits.html#NMBCLUSTERS">網路限制篇</ulink>
+ 。</para>
+ </answer>
+ </qandaentry>
+
+<!--
+以下為舊版 faq 內容
+ <para>這個 panic 的原因是表示系統用光了給網路緩衝區的所有的虛
+ 擬記憶體(特別是 mbuf clusters)。您可以增加給 mbuf clusters
+ 的 VM 的數量,只要加入:</para>
+
+ <para><literal>options "NMBCLUSTERS=<replaceable>n</replaceable>"</literal></para>
+
+ <para>在您的 kernel 設定檔中,<replaceable>n</replaceable>
+ 是一個在 512-4096 間的數字,依您想提供多少同時的 TCP 連接數目
+ 多寡而定。我會建議試試 2048 - 這數字應該可以完全避免這個 panic
+ 了。您可以執行: <command>netstat -m</command>
+ (see &man.netstat.1;)來監看有多少 mbuf clusters 在系統上正被
+ 配置/使用。NMBCLUSTERS 的數值內定為 <literal>512 + MAXUSERS * 16
+ </literal>。</para>
+-->
+
+ <qandaentry>
+ <question id="proc-table-full">
+ <para>為什麼我一直看到 <errorname>/kernel: proc: table
+ is full</errorname> 這個錯誤訊息?</para>
+ </question>
+
+ <answer>
+ <para>FreeBSD kernel 只允許一定數量的 process 在同一時間裡同
+ 時運作。而這個數目是根據 kernel 設定檔裡面的
+ <literal>MAXUSERS</literal> 值來決定的。<literal>MAXUSERS</literal>
+ 這個值也會影響其他的 kernel 內定值,比如說 network buffer
+ (請參閱<link linkend="panic-kmemmap-too-small">這個</link>之前討
+ 論過的問題)。如果機器負荷(load)很重,您可能需要增加
+ <literal>MAXUSERS</literal> 這個值。這麼作會一併提高系統的其他內
+ 定值,包括最大可擁有的 process 數等。</para>
+
+ <para>若要調整 <literal>MAXUSERS</literal>,請參閱 FreeBSD 使用手冊中的 <ulink
+ url="&url.books.handbook;/configtuning-kernel-limits.html#KERN-MAXFILES">
+ 檔案/Process的限制</ulink> 章節。
+ (雖然該處指的是『檔案的開啟數量限制』,但也適用於 process部分。)</para>
+
+ <para>在 FreeBSD 4.4 之後,<literal>MAXUSERS</literal> 已經變成可
+ 以靠著更改 <filename>/boot/loader.conf</filename> 裏的
+ <varname>kern.maxusers</varname> 這個值而調整的變數了。而在之前
+ 的 FreeBSD 版本中,這個值只能在 kernel 設定檔裏調整。</para>
+
+ <para>如果機器負荷並不重,而您只是需要同時跑很多很多 process,
+ 那麼也可以直接用 sysctl 調整 <varname>kern.maxproc</varname> 值。
+ 假如這些 process 都是屬於某個使用者的,那麼您還需要另
+ 外調整 <varname>kern.maxprocperuid</varname> 這個值,使它比新
+ 的 <varname>kern.maxproc</varname> 這個值少 1 (一定要少 1 ,
+ 因為 &man.init.8; 這個系統程式絕對要保持在運作狀態)。</para>
+
+ <para>如果想在每次開機都要更改 sysctl 的值,而且您的 FreeBSD 是
+ 最近的版本的話,請在 <filename>/etc/sysctl.conf</filename> 這
+ 個檔中設定,而如果是舊的版本,可以在
+ <filename>/etc/rc.local</filename> 中作設定。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="cmap-busy-panic">
+ <para>為什麼用新 kernel 開機時,出現 <errorname>CMAP
+ busy</errorname> 這個錯誤訊息?</para>
+ </question>
+
+ <answer>
+ <para>用來偵測 <filename>/var/db/kvm_*.db</filename> 過時檔案的機制偶爾會發生問題,而使用到了一個不協調
+ (mismatch)的檔案有時就會導致 panic。</para>
+
+ <para>如果發生了這個問題,請重新開機,進入 single 使用者模式,然後執行:</para>
+
+ <screen>&prompt.root; <userinput>rm /var/db/kvm_*.db</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="brkadrint-illegal-host-access">
+ <para>請問這個訊息:<errorname>ahc0: brkadrint, Illegal Host Access at seqaddr 0x0</errorname>
+ 是什麼意思?</para>
+ </question>
+
+ <answer>
+ <para>這是一個和 Ultrastor SCSI 控制卡有關的衝突(conflict)。</para>
+
+ <para>在開機時,進入 kernel 設定選單取消
+ <devicename>uha0</devicename>,它是造成這個問題的原因。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="aci0-illegal-cable">
+ <para>開機時,看到這個錯誤訊息 <errorname>ahc0: illegal cable configuration</errorname>。
+ 我的排線確定有接對。 是出了什麼問題呢?</para>
+ </question>
+
+ <answer>
+ <para>您的主機板可能不支援自動終端電阻設定。請進到 SCSI 的 BIOS
+ 裡面手動指定正確的終端電阻順序,而不要使用自動設定。
+ AIC7XXX 的驅動程式並無法知道有沒有這些排線偵測(以及自動終端電阻設定)的電路(external logic)
+ 存在。如果 EEPROM 裡面的設定是 "automatic termination" 時,它只會單純假定這些電路當然是存在的。
+ 若缺少了這個電路,驅動程式在設定終端電阻時就常常出問題。
+ 而這種問題將導致 SCSI 匯流排的可靠性降低。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="mail-loopback">
+ <para>為什麼 Sendmail 一直出現
+ <quote><errorname>mail loops back to myself</errorname></quote>
+ 這個錯誤訊息?</para>
+ </question>
+
+ <answer>
+ <para>這個問題在 sendmail 的 FAQ 中是這樣回答的:-</para>
+
+<literallayout> * 我一直收到有關 "Local configuration error" 的信件,例如:
+
+ 553 relay.domain.net config error: mail loops back to myself
+ 554 &lt;user@domain.net&gt;... Local configuration error
+
+ 我要如何解決這個問題?
+
+ 您利用 MX 設定,讓要寄到某 domain(如: domain.net)的信件,
+ 寄到您所指定的機器(在這個例子中為 relay.domain.net),但是這
+ 部機器並未被設定接受 domain.net 的信件。請把 domain.net 加到
+ /etc/sendmail.cw 中(如果您有使用 FEATURE(use_cw_file)) 或是
+ 在 sendmail.cf 中加入 "Cw domain.net"
+ </literallayout>
+
+ <para>最新版本的 <ulink url="ftp://rtfm.mit.edu/pub/usenet/news.answers/mail/sendmail-faq">sendmail
+ FAQ</ulink> 現在已不再隨著 sendmail <quote>出貨</quote>。
+ 它目前是被定期的發表在 <ulink
+ url="news:comp.mail.sendmail">comp.mail.sendmail</ulink>,
+ <ulink url="news:comp.mail.misc">comp.mail.misc</ulink>,<ulink
+ url="news:comp.mail.smail">comp.mail.smail</ulink>,<ulink
+ url="news:comp.answers">comp.answers</ulink>,和 <ulink
+ url="news:news.answers">news.answers</ulink>. 您也可以寄一封
+ Email 到 <email>mail-server@rtfm.mit.edu</email>,然後在信件內文
+ 中寫上
+ <literal>send usenet/news.answers/mail/sendmail-faq</literal>
+ 以取得這份 FAQ 文件。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="remote-fullscreen">
+ <para>為什麼執行遠端機器(remote machine)的全螢幕的軟體時,
+ 有不正常的情形?</para>
+ </question>
+
+ <answer>
+ <para>或許遠端機器並非將您的終端機模式設為 FreeBSD console 所用的
+ <literal>cons25</literal>,而是設為其它模式。</para>
+
+ <para>這兒有幾個解決這個問題的方法:</para>
+ <itemizedlist>
+ <listitem>
+ <para>在 logging 進遠端機器後,更改您的 shell 變數 TERM 為
+ <literal>ansi</literal> 或是 <literal>sco</literal>
+ ﹙如果遠端機器支援這些模式的話)。</para>
+ </listitem>
+
+ <listitem>
+ <para>使用支援 VT100 的模擬軟體,如 FreeBSD console 下的
+ <application>screen</application> 軟體。
+ <application>screen</application> 提供您在一個 terminal
+ 裏同時跑好幾個 session 的能力,而且它本身也是一個相當好
+ 的軟體。每個 <application>screen</application> 都像是一個
+ VT100 的終端機,所以遠端機器的 TERM 變數應該設為
+ <literal>vt100</literal>。</para>
+ </listitem>
+
+ <listitem>
+ <para>在遠端機器的終端機資料庫(terminal database)中加入
+ <literal>cons25</literal> 的資料。加入的方法視遠端機器的
+ 作業系統不同而有所差異。請參閱遠端機器給系統管理員的說明
+ 書,應該會有所幫助。</para>
+ </listitem>
+
+ <listitem>
+ <para>啟動 FreeBSD 的 X 伺服器,然後使用一些 X Window 下的
+ 終端機模擬器來登入遠端機器,例如 <command>xterm</command>
+ 或 <command>rxvt</command>。而遠端機器的 TERM 變數應該要
+ 設為 <literal>xterm</literal> 或 <literal>vt100</literal>。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="calcru-negative">
+ <para>為什麼我的機器一直顯示
+ <errorname>calcru: negative time...</errorname>?</para>
+ </question>
+
+ <answer>
+ <para>跟中斷(interrupt)有關的不同硬體 與/或 軟體的搭配都有可能造成
+ 這個問題。這有可能是 bug 或是某個裝置本身的問題。在平行埠上使用
+ 大的 MTU 來作 TCP/IP 傳輸可以重現這個問題。若是圖形加速卡造成這個
+ 問題的話,您應該先檢查卡的中斷設定。</para>
+
+ <para>這個問題的邊際效應是會造成有些 process 出現
+ <quote>SIGXCPU exceeded cpu time limit</quote> 的訊息,而不正常
+ 停止。</para>
+
+ <para>若是 FreeBSD 3.0 或是 1998 年 11 月 29 日以後其他版本,萬一
+ 這個問題一直無法以其他方法解決,就只能設定 sysctl 變數:</para>
+
+ <screen>&prompt.root; <userinput>sysctl -w kern.timecounter.method=1</userinput></screen>
+
+ <para>這樣會對效能有些影響,但是若考慮到這個問題帶來的後果,這樣做
+ 是值得的。如果這個問題還是存在的話,讓 sysctl 那個值依然設為 1,
+ 然後增加 kernel 設定檔中 <literal>NTIMECOUNTER</literal> 這個選
+ 項的數值。如果您將 <literal>NTIMECOUNTER</literal> 增加到 20 依
+ 然無法解決這個問題,那麼您機器上的中斷已經多到無法讓計數器維持在
+ 可靠的狀態了。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="pcm0-not-found">
+ <para>出現 <errorname>pcm0 not found</errorname> 這個訊息,或者是
+ 我的音效卡變成了 <devicename>pcm1</devicename>,但在 kernel 設定
+ 檔裏我是設 <literal>device pcm0</literal> 啊。這是怎麼回事呢?
+ </para>
+ </question>
+
+ <answer>
+ <para>如果您在 FreeBSD 3.x 上使用 PCI 音效卡就會發生這種問題。
+ 因為<devicename>pcm0</devicename> 這個 device 是內定保留給 ISA
+ 的音效卡的,所以如果您有一張 PCI 的音效卡,您就會遇到這個問題,
+ 而您的卡會變成 <devicename>pcm1</devicename>。</para>
+
+ <note>
+ <para>如果您只把 kernel 設定檔中的設定改成
+ <literal>device pcm1</literal> 是無法除去這個警告訊息的,
+ 這樣會造成 <devicename>pcm1</devicename> 被保留給 ISA 音效卡,
+ 而 PCI 音效卡則會變成 <devicename>pcm2</devicename>
+ (外加 <errorname>pcm1 not found</errorname> 的警告訊息)。
+ </para>
+ </note>
+
+ <para>如果您有一張 PCI 的音效卡,您需要 make
+ <devicename>snd1</devicename> 這個 device,而不是
+ <devicename>snd0</devicename>:</para>
+
+ <screen>&prompt.root; <userinput>cd /dev</userinput>
+&prompt.root; <userinput>./MAKEDEV snd1</userinput></screen>
+
+ <para>這個問題在 FreeBSD 4.x 上並不會發生,因為很多人投下了許多心
+ 力讓它更<emphasis>PnP 導向</emphasis>,而且
+ <devicename>pcm0</devicename> 這個 device 也不再是只保留給 ISA
+ 的音效卡了。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="pnp-not-found">
+ <para>為什麼在更新到 FreeBSD 4.X 後會抓不到我的 PnP 卡
+ (或者是抓成 <literal>unknown</literal>)?</para>
+ </question>
+
+ <answer>
+ <para>FreeBSD 4.X 現在已經更 <emphasis>PnP 導向</emphasis>了,
+ 而邊際效應就是會發生有些在 FreeBSD 3.X 可以用的 PnP 裝置
+ (如音效卡或是內插式數據機)變成無法使用。</para>
+
+ <para>這個原因可以用一封由 Peter Wemm 發到 freebsd-questions
+ 這個 mailing list 上的信來解釋,它原本是解釋為什麼有一個內
+ 插式數據機,在系統升級到 FreeBSD 4.x 後,就沒法被抓到了
+ (在 <literal>[]</literal> 裏的是另外加的註解,讓內容更易懂)。
+ </para>
+
+ <blockquote>
+ <para>The PNP bios preconfigured it [the modem] and left it
+ laying around in port space,so [in 3.x] the old-style ISA
+ probes <quote>found</quote> it there.</para>
+
+ <para>Under 4.0,the ISA code is much more PnP-centric. It was
+ possible [in 3.x] for an ISA probe to find a
+ <quote>stray</quote> device and then for the PNP device id to
+ match and then fail due to resource conflicts. So,it
+ disables the programmable cards first so this double probing
+ cannot happen. It also means that it needs to know the PnP
+ id's for supported PnP hardware. Making this more user
+ tweakable is on the TODO list.</para>
+ </blockquote>
+
+ <para>如果要讓裝置能再度運作,我們需要找出它的 PnP id,然後再將它
+ 加入一份在偵測 ISA 裝置時會使用的表中。可以執行 &man.pnpinfo.8;
+ 來偵測這個裝置,舉例來說,下面是 &man.pnpinfo.8; 抓到的一個內插
+ 式數據機的資料:</para>
+
+ <screen>&prompt.root; <userinput>pnpinfo</userinput>
+Checking for Plug-n-Play devices...
+
+Card assigned CSN #1
+Vendor ID PMC2430 (0x3024a341),Serial Number 0xffffffff
+PnP Version 1.0,Vendor Version 0
+Device Description: Pace 56 Voice Internal Plug & Play Modem
+
+Logical Device ID: PMC2430 0x3024a341 #0
+ Device supports I/O Range Check
+TAG Start DF
+ I/O Range 0x3f8 .. 0x3f8,alignment 0x8,len 0x8
+ [16-bit addr]
+ IRQ: 4 - only one type (true/edge)</screen>
+
+ <para>[more TAG lines elided]</para>
+
+ <screen>TAG End DF
+End Tag
+
+Successfully got 31 resources,1 logical fdevs
+-- card select # 0x0001
+
+CSN PMC2430 (0x3024a341),Serial Number 0xffffffff
+
+Logical device #0
+IO: 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8
+IRQ 5 0
+DMA 4 0
+IO range check 0x00 activate 0x01</screen>
+
+ <para>您所需要的資訊是一開始看到的 <quote>Vendor ID</quote>
+ 這一行。括號中的十六位元碼(這個例子中是 0x3024a341)就是
+ PnP id,而在這之前的字串(PMC2430)則是一個獨一無二的 ASCII id。
+ 而這些資料需要被加到 <filename>/usr/src/sys/isa/sio.c</filename>
+ 這個檔案裏。</para>
+
+ <para>為了防止任何東西出錯,您應該要先備份目前的
+ <filename>sio.c</filename>。而且您要 submit PR 時也需要這個
+ 原始檔案來做出 patch(您應該會將它 submit PR 吧..:)..)。
+ 接著就編輯 <filename>sio.c</filename> 找尋下面這行</para>
+
+ <programlisting>static struct isa_pnp_id sio_ids[] = {</programlisting>
+
+ <para>接著往下捲動,找個正確的位置來插入您的裝置資訊。您看到的就
+ 下面這個樣子,它們是照右邊註解裡面的 ASCII 這個 Vender ID 做排
+ 序的,或是 &man.pnpinfo.8; 所找到的一部分
+ <emphasis>裝置描述</emphasis>:</para>
+
+ <programlisting>{0x0f804f3f,NULL}, /* OZO800f - Zoom 2812 (56k Modem) */
+{0x39804f3f,NULL}, /* OZO8039 - Zoom 56k flex */
+{0x3024a341,NULL}, /* PMC2430 - Pace 56 Voice Internal Modem */
+{0x1000eb49,NULL}, /* ROK0010 - Rockwell ? */
+{0x5002734a,NULL}, /* RSS0250 - 5614Jx3(G) Internal Modem */</programlisting>
+
+ <para>把您這個裝置的十六進位的 Vender ID 加到正確的地方,存檔,
+ 然後重新編一個 kernel,再重開機。之後這個裝置應該就會像在
+ FreeBSD 3.X 下,被偵測為 <literal>sio</literal> 裝置了。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="nlist-failed">
+ <para>為什麼我常常在跑一些程式(例如 <command>top</command> 或
+ <command>systat</command>)的時候出現
+ <errorname>nlist failed</errorname> 這個錯誤訊息?</para>
+ </question>
+
+ <answer>
+ <para>這個問題是因為您跑的程式需要一個特別的 kernel symbol,可是
+ 不知道什麼原因而找不到﹔而會發生這個問題可能是因為下面兩個原因:
+ </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>您的 kernel 和 userland 的檔案版本並不一致(例如說,您
+ 編了一個新的 kernel,但是並沒有執行對應的
+ <maketarget>installworld</maketarget>,或是其他類似情形),
+ 因此 symbol table 的內容就和應用程式編譯時的不太一樣了。如
+ 果是這種情形,請執行完整的升級步驟(請參閱
+ <filename>/usr/src/UPDATING</filename> 以得知正確的流
+ 程)。</para>
+ </listitem>
+
+ <listitem>
+ <para>您沒有用 <command>/boot/loader</command> 來載入您的
+ kernel,而是直接由 boot2 開機(請參閱 &man.boot.8;)。
+ 雖然說跳過 <command>/boot/loader</command> 並沒有什麼錯,
+ 但是它在 kernel symbols 跟應用程式的溝通方面佔了很重的份量。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="connection-delay">
+ <para>為什麼我用 <command>ssh</command> 或 <command>telnet</command>
+ 連到我的電腦時,會等待很長的一段時間才能連上?</para>
+ </question>
+
+ <answer>
+ <para>症狀:TCP 連線建立之後和詢問密碼之前(如果是在說 &man.telnet.1;
+ 的話,則是 login 提示符號跳出來之前),要等待很長的一段時
+ 間。</para>
+
+ <para>問題所在:這種延遲情形常常是因為伺服軟體(server software)
+ 嘗試要將客戶端(client)的 IP 位址轉換成主機名稱。因為很多伺服
+ 軟體,包括 FreeBSD 內建的 Telnet 和 SSH,為了將主機名稱寫入紀
+ 錄檔中以供管理者作參考,而會做這項動作。</para>
+
+ <para>解決方法:如果這個問題在您連接不同的伺服器時都會發生,那麼
+ 問題是在您客戶端這一方﹔同樣的,如果別人只有在連到您的伺服器上
+ 才會發生這個情形,那麼問題就是在伺服器這邊了。</para>
+
+ <para>如果是客戶端這方有問題,唯一的方法就是將 DNS 伺服器修好,
+ 這樣對方伺服器才能正確的轉換名稱。如果問題是在內部區域網路發
+ 生的,這應該是伺服器有問題,請詳細檢查一下﹔相反的,如果是您
+ 在上 Internet 時發生的,那麼您需要跟您的 ISP 聯絡,請他們解決
+ 這個問題。</para>
+
+ <para>如果是伺服器這邊的問題,而且是發生在內部區域網路,那麼您需
+ 要設定這個伺服器,使它能正確將內部網路的 IP 位址轉換為主機名稱。
+ 請參閱 &man.hosts.5; 和 &man.named.8; 的說明以獲得更多資訊。如
+ 果是在 Internet 上的伺服器發生這個問題,那麼有可能是您伺服器的
+ 轉換功能出問題。您可以試試查詢另一個主機名稱,比如:
+ <hostid>www.yahoo.com</hostid>。如果查不到,那麼可以確定是您這
+ 邊出問題了。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="stray-irq">
+ <para><errorname>stray IRQ</errorname> 這個錯誤訊息是什麼意思?</para>
+ </question>
+ <answer>
+ <para>Stray IRQs 是硬體 IRQ 有點小問題的現象,大多是因為硬體本身
+ 在發出中斷需求後,又取消了它自己的中斷要求。</para>
+ <para>有三個方法可以應付這個問題:</para>
+ <itemizedlist>
+ <listitem>
+ <para>不理會這個警告。反正一個 irq 出現五次警告後系統就不會
+ 再顯示了。</para>
+ </listitem>
+ <listitem>
+ <para>把 <function>isa_strayintr()</function> 裏的值,由 5
+ 改成 0,這樣所有的警告訊息都不會出現。</para>
+ </listitem>
+ <listitem>
+ <para>安裝使用 irq 7 的平行埠硬體設備,以及它的 PPP 驅動程式
+ (這個大部分系統都有做),接著安裝 ide 硬碟或是其他會使用
+ irq 15 的硬體設備以及它的驅動程式。</para>
+ </listitem>
+ </itemizedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="file-table-full">
+ <para>為什麼 <errorname>file: table is full</errorname> 這個訊息
+ 一直在 dmesg 裏重複出現?</para>
+ </question>
+ <answer>
+ <para>這個錯誤訊息代表了您系統的 file descriptors 已經使用光了。
+ 請參閱手冊內 <ulink url="../handbook/configtuning-kernel-limits.html">
+ Tuning Kernel Limits</ulink> 裡面的 <ulink
+ url="../handbook/configtuning-kernel-limits.html#KERN-MAXFILES">
+ kern.maxfiles</ulink> 這個章節,裡面有一些討論及解決方法。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="laptop-clock-skew">
+ <para>為什麼我筆記型電腦上的時鐘一直顯示錯誤的時間?</para>
+ </question>
+
+ <answer>
+ <para>您的筆記型電腦裡有兩個以上的時鐘,而 FreeBSD 選到了錯的
+ 那個。</para>
+
+ <para>執行 &man.dmesg.8;,檢查一下有 <literal>Timecounter</literal>
+ 字串的那幾行。最後一行是 FreeBSD 選用的,通常是
+ <literal>TSC</literal>。</para>
+
+ <screen>&prompt.root; <userinput>dmesg | grep Timecounter</userinput>
+Timecounter "i8254" frequency 1193182 Hz
+Timecounter "TSC" frequency 595573479 Hz</screen>
+
+ <para>您可以執行 &man.sysctl.3; 看一下
+ <varname>kern.timecounter.hardware</varname> 這個值做確認。</para>
+
+ <screen>&prompt.root; <userinput>sysctl kern.timecounter.hardware</userinput>
+kern.timecounter.hardware: TSC</screen>
+
+ <para>BIOS 可能在一些情形下會更改 TSC 的時脈&mdash;有時候是因為
+ 在使用電池工作時會更改處理器的速度,另外也有可能是進入了省電模
+ 式,可是 FreeBSD 並不會察覺到這些調整,而會發生時間增加或是減
+ 少的情形。</para>
+
+ <para>在上面的例子當中,我們看到還有 <literal>i8254</literal>
+ 這個時鐘可以選擇,執行 &man.sysctl.3; 用手動的方式將這個值寫入
+ <varname>kern.timecounter.hardware</varname> 中。</para>
+
+ <screen>&prompt.root; <userinput>sysctl -w kern.timecounter.hardware=i8254</userinput>
+kern.timecounter.hardware: TSC -&gt; i8254</screen>
+
+ <para>這樣您的筆記型電腦應該就可以保持正確的時間了。</para>
+
+ <para>如果要讓這個更改的動作再每次開機時自動執行,在
+ <filename>/etc/sysctl.conf</filename> 裏加入下面這行。</para>
+
+ <programlisting>kern.timecounter.hardware=i8254</programlisting>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="null-null">
+ <para>為什麼我的筆記型電腦無法正確的偵測到 PC card ?</para>
+ </question>
+
+ <answer>
+ <para>這個問題常常發生在灌了多個作業系統的筆記型電腦上。有些非
+ BSD 的作業系統會讓 PC card 的硬體裝置處在一個不一致的狀態下
+ (inconsistent state)。使得 <command>pccardd</command> 在偵
+ 測這片卡時,無法抓到正確的型號,而是
+ <errorname>"(null)""(null)"</errorname>。</para>
+
+ <para>您需要移除 PC card 插槽的電源以重置這個硬體裝置。一個方法是
+ 將您的筆記型電腦關機(不是休眠模式,也不是待命模式﹔要完全的關
+ 機)。等個幾秒鐘再重開機。這樣您的 PC card 應該就正常了。</para>
+
+ <para>有時有些筆記型電腦雖然看起來已經關機了,但實際上並沒有。
+ 如果您發現上面那個方法沒有用,請關機,移除電池,等個幾秒鐘,
+ 把電池裝上去然後重開機。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="boot-read-error">
+ <para>為什麼在 BIOS 畫面之後,FreeBSD 的 boot loader 顯示
+ <errorname>Read error</errorname> 然後就停止不動了?</para>
+ </question>
+
+ <answer>
+ <para>這是因為FreeBSD 的 boot loader 無法正確的找出硬碟的
+ geometry。這樣的話,就需要在用 fdisk 分割或是修改 FreeBSD
+ 的 slice 時,手動將正確的值輸入進去了。</para>
+ <para>正確的硬碟 geometry 值在 BIOS 裡面可以查的到。注意該硬碟的
+ cylinders,heads 以及 sectors 這些數值。</para>
+ <para>在執行 &man.sysinstall.8;的 fdisk 時,按下 <keycap>G</keycap>
+ 以便手動設定硬碟的 geometry。</para>
+ <para>這時會有一個對話框跳出來,詢問您有關 cylinders,heads 以及
+ sectors 這些東西的值。請將剛剛在 BIOS 查到的數字,以 / 作分隔輸
+ 入進去。</para>
+ <para>舉例來說,如果是 5000 cylinders,250 sectors 和 60 sectors
+ 就輸入 <userinput>5000/250/60</userinput></para>
+ <para>輸入完後請按 enter 鍵確認,最後按下 <keycap>W</keycap> 鍵把
+ 新的分割區表寫入硬碟當中。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="bootmanager-restore">
+ <para>另一個作業系統摧毀了我的 Boot Manager。我要怎麼樣才能把它還
+ 原回來?</para>
+ </question>
+
+ <answer>
+ <para>執行 &man.sysinstall.8; 接著選 Configure,然後選 Fdisk。
+ 再來用<keycap>空白</keycap>鍵選擇原先 Boot Manager 所在的硬碟。
+ 按下 <keycap>W</keycap> 鍵來作寫入的動作。這時會跳出一個提示
+ 訊息,詢問您要安裝哪一個 boot loader。請選擇 Boot Manager,
+ 這樣就可以將它還原了。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="indefinite-wait-buffer">
+ <para>這個錯誤訊息:<errorname>swap_pager: indefinite
+ wait buffer:</errorname> 是什麼意思呢?</para>
+ </question>
+
+ <answer>
+ <para>這個訊息是說有一個執行程序正在嘗試將分頁記憶體(page memory)
+ 寫入硬碟中,而這個動作嘗試了 20 秒鐘仍然無法成功。這個有可能是因為
+ 硬碟有壞軌、電路或排線有問題、以及其他跟硬碟讀出寫入有關的硬體設備。
+ 如果真的是硬碟壞軌的問題,您應該會在
+ <filename>/var/log/messages</filename>這個檔案中,或是在執行
+ <command>dmesg</command>這個指令後,看到有關磁碟錯誤的訊息。
+ 如果沒有,那麼請檢查您的排線還有接頭連接是否良好。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="touch-not-found">
+ <para>為何在 buildworld/installworld 時,會趴在
+ <errorname>touch: not found</errorname> 的錯誤訊息?</para>
+ </question>
+
+ <answer>
+ <para>這錯誤訊息並不是指 &man.touch.1; 程式不見了,事實上可能是該檔檔案時間被設為未來的時間。
+ 若機器上的 CMOS-clock 時鐘設定為當地時間
+ (非格林威治時間,比如台灣時間為 GMT +08:00 ,也就是 CST 中原標準時間),
+ 那麼請在開機時,先選 single user 模式進入,然後打
+ <command>adjkerntz&nbsp;-i</command>
+ 來調整 kernel clock 與機器上的 CMOS-clock 來同步。</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+ <chapter id="commercial">
+ <chapterinfo>
+ <author>
+ <firstname>Vanilla</firstname>
+ <surname>Shu</surname>
+ <affiliation>
+ <address><email>vanilla@FreeBSD.org</email></address>
+ </affiliation>
+ </author>
+ </chapterinfo>
+
+ <title>商業軟體</title>
+
+ <note>
+ <para>這一節的內容還是相當少,不過我們當然希望各個公司能為它加點內容 :)
+ FreeBSD 組織和列在這裡的任何一家公司都沒有金錢上的利害關係,列出來純粹只是對大眾公開介紹(同時也認為在 FreeBSD
+ 上的商機若興旺,會對 FreeBSD 可長可久有極正面的效益)。我們鼓勵商業軟體的廠商把他們的產品包括在下面的名單中,在
+ <ulink url="../../../../commercial/index.html">Vendors page</ulink> 可以看到更長的列表。</para>
+ </note>
+
+ <qandaset>
+ <qandaentry>
+ <question id="officesuite">
+ <para>在哪邊找到給 FreeBSD 用的 Office 套件呢?</para>
+ </question>
+
+ <answer>
+ <para><ulink
+ url="http://www.openoffice.org">OpenOffice</ulink> 這套 open-source 性質的 office
+ 可以在 FreeBSD 上正常運用自如,而 &linux; 版的
+ <ulink
+ url="http://www.sun.com/staroffice/">StarOffice</ulink>,
+ 這套 closed-source 的 OpenOffice 加值版,也可以在 FreeBSD 上正常使用。</para>
+
+ <para>FreeBSD 上還有許多編排軟體、試算表(Spreadsheet)以及繪圖軟體都可用 Ports
+ Collection 來安裝喔。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="motif">
+ <para>在哪邊可找到給 FreeBSD 用的 Motif?</para>
+ </question>
+
+ <answer>
+ <para>Open Group 釋出了 Motif 2.1.30 的原始碼,可以透過
+ <literal>open-motif</literal> package 安裝,或是由 ports 自行
+ 編譯。相關的資訊,請參考 handbook 中的 <ulink
+ url="../handbook/ports.html">ports</ulink> 章節。
+
+ <note>
+ <para>Open Motif 只能在同樣也是 <ulink
+ url="http://www.opensource.org/">open source</ulink>
+ 的作業系統或計劃中使用。</para>
+ </note>
+ </para>
+
+ <para>另外,也是有商業版本的 Motif 存在。也許這種版本的 Motif
+ 不是免費的,但是絕對允許用在 closed-source 的環境下。
+ <link linkend="apps2go">Apps2go</link> 提供了最便宜的 FreeBSD
+ (包括 i386 跟 alpha)版本的 ELF Motif 2.1.20 套件。
+ <anchor id="apps2go"/></para>
+
+ <para>目前提供兩種不同環境的版本, <quote>發展用版本</quote> 及
+ <quote>runtime 版本</quote> 。這兩種套件都包括:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>OSF/Motif manager, xmbind, panner, wsm.</para>
+ </listitem>
+
+ <listitem>
+ <para>Development kit with uil, mrm, xm, xmcxx, include
+ and Imake files.</para>
+ </listitem>
+
+ <listitem>
+ <para>Static and dynamic ELF libraries (for use with
+ FreeBSD 3.0 and above).</para>
+ </listitem>
+
+ <listitem>
+ <para>Demonstration applets.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>因為 <emphasis>Apps2go</emphasis> 也有提供 NetBSD 和 OpenBSD
+ 的版本,所以在訂購時請特別指定是要 FreeBSD 版本的 Motif!
+ 他們目前只提供以 FTP 的方式取得這份套件。</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>更多資訊</term>
+ <listitem>
+ <para><ulink url="http://www.apps2go.com/">
+ Apps2go WWW page</ulink></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>或</term>
+ <listitem>
+ <para>
+ <email>sales@apps2go.com</email> 或
+ <email>support@apps2go.com</email>
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>或</term>
+ <listitem>
+ <para>phone (817) 431 8775 or +1 817 431-8775</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>也可以聯絡 <link linkend="xig">Xi Graphics</link>,他們提供了一個
+ FreeBSD a.out 格式的 Motif 2.0 套件。</para>
+
+ <para>在這套件中包括了:</para>
+ <itemizedlist>
+ <listitem>
+ <para>OSF/Motif manager, xmbind, panner, wsm.</para>
+ </listitem>
+
+ <listitem>
+ <para>Development kit with uil, mrm, xm, xmcxx, include
+ and Imake files.</para>
+ </listitem>
+
+ <listitem>
+ <para>Static and dynamic libraries (for use with FreeBSD
+ 2.2.8 and earlier).</para>
+ </listitem>
+
+ <listitem>
+ <para>Demonstration applets.</para>
+ </listitem>
+
+ <listitem>
+ <para>Preformatted man pages.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>在你跟他們訂購 Motif 時,請一定註明你要的是 FreeBSD 的版本!
+ 因為 <emphasis>Xi Graphics</emphasis> 也同時提供了 BSDI 跟 Linux
+ 版本的 Motif。目前發行的版本是放在四塊磁片中,將來他們會將所有的
+ 東西都放到光碟裡,就像他們所發行的 CDE 一樣。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="cde">
+ <para>在哪邊可找到給 FreeBSD 用的 CDE?</para>
+ </question>
+
+ <answer>
+ <para><link linkend="xig">Xi Graphics</link> 以前有賣 FreeBSD 用的
+ CDE,不過現已停止發售了。</para>
+
+ <para>就許多方面而言,<ulink url="http://www.kde.org/">KDE</ulink> 這個 open
+ source 的桌面環境與 CDE 相當類似。此外,你可能會喜歡使用 <ulink
+ url="http://www.xfce.org/">xfce</ulink>。KDE 及 xfce 都可由 <ulink url="&url.base;/ports/index.html">ports
+ 機制</ulink>來安裝。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="commercial-xserver">
+ <para>有沒有要錢,但是高效率的 X servers?</para>
+ </question>
+
+ <answer>
+ <para>有, <ulink url="http://www.xig.com/">Xi Graphics</ulink>
+ 有提供給 FreeBSD(或其他 Intel 平台上)用的 X 視窗加速產品。</para>
+
+
+ <para>Xi Graphics 所提供的高效能 X Server 有非常簡單的設定方式,
+ 並且支援了目前市面上當紅的各大廠牌的顯示卡。它只給你 Binary 檔案,
+ 是用磁片的方式發行,FreeBSD 跟 Linux 版本都相同。Xi Graphics 同時
+ 也提供了專門給筆記型電腦用的高效能 X Server。<anchor id="xig"/></para>
+
+ <para>5.0 版有提供免費的相容 <quote>demo</quote> 版本</para>
+
+ <para>Xi Graphics 也有在賣 FreeBSD 用的 Motif 跟 CDE(往上面看看)。
+ </para>
+
+ <variablelist>
+ <varlistentry>
+ <term>更多的資訊</term>
+ <listitem>
+ <para><ulink url="http://www.xig.com/">
+ Xi Graphics WWW page</ulink></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>或</term>
+ <listitem>
+ <para><email>sales@xig.com</email>
+ 或 <email>support@xig.com</email>
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>或</term>
+ <listitem>
+ <para>phone (800) 946 7433 or +1 303 298-7478.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="database-systems">
+ <para>在 FreeBSD 上有任何的資料庫嗎?</para>
+ </question>
+
+ <answer>
+ <para>有! 請看 FreeBSD 網站上 <ulink
+ url="../../../../commercial/software_bycat.html#CATEGORY_DATABASE">
+ 商業軟體公司 </ulink> 這一部份。</para>
+
+ <para>還有請參考 ports 中 <ulink
+ url="../../../../ports/databases.html">
+ Databases</ulink> 相關的收集。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="oracle-support">
+ <para>可以在 FreeBSD 上執行 Oracle 嗎?</para>
+ </question>
+
+ <answer>
+ <para>可以,下面這個網頁會說明如何在 FreeBSD 上執行 Linux
+ 版的 Oracle:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><ulink
+ url="http://www.scc.nl/~marcel/howto-oracle.html">
+ http://www.scc.nl/~marcel/howto-oracle.html</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="http://www.lf.net/lf/pi/oracle/install-linux-oracle-on-freebsd">
+
+ http://www.lf.net/lf/pi/oracle/install-linux-oracle-on-freebsd</ulink></para>
+
+ </listitem>
+ </itemizedlist>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+ <chapter id="applications">
+ <chapterinfo>
+ <author>
+ <firstname>Kang-min</firstname>
+ <surname>Liu</surname>
+ <affiliation>
+ <address><email>gugod@gugod.org</email></address>
+ </affiliation>
+ </author>
+ </chapterinfo>
+
+ <title>一般應用程式</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="user-apps">
+ <para>嗯..我要在哪找到我要的程式呢?</para>
+ </question>
+
+ <answer>
+ <para>請看看 <ulink url="../../../../ports/index.html">ports
+ 目錄</ulink> 吧。這邊有份已經 port 到 FreeBSD 的軟體列表。
+ 目前有超過 &os.numports; 個軟體已經被port 到 FreeBSD 上,並且每天
+ 都在增加中。所以有空就多看看這份列表,不然你也可以訂閱
+ <literal>freebsd-announce</literal> <link linkend="mailing">
+ 這份 mailing list</link>,會有人將每個星期最新的軟體列表貼在上面。</para>
+
+ <para>大部份的 ports 應該都可以在 4.X、5.X 跟 6.X 的系統上使用。
+ 每次當 FreeBSD release 新版時,都會有一份 ports tree 被放在這一個
+ release cd 裡面的 <filename>ports/</filename> 目錄裡。</para>
+
+ <para>我們也支援一種叫 <quote>package</quote> 的概念,基本上
+ 就是 gzip 壓縮、可用來發行的 binary 檔案,但是裡面藏了一
+ 些相當有用的資訊,可以給各種自訂安裝來使用。使用者不必知
+ 道某個 package 裡究竟有包括哪些檔案,就可`以很方便地重複將
+ 它安裝/反安裝。</para>
+
+ <para>你可以執行 <filename>sysinstall</filename>(&os; 5.2 之前版本則是 <command>/stand/sysinstall</command>) 後,
+ 在 post-configuration 選單下選擇 package 這個安裝選項;或
+ 是對某個有興趣的 package 檔案執行 &man.pkg.add.1;
+ 把它裝起來。Package 檔案通常以 <filename>.tgz</filename> 或 <filename>.tbz</filename>
+ 為副檔名,手上有 FreeBSD CDROM 的人可以在 <filename>packages/All</filename> 這個目錄下找到這類檔案。
+ 對不同的 FreeBSD 版本,也可以從下列位址由網路上取得:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>給 4.X-RELEASE/4-STABLE 用的</term>
+ <listitem>
+ <para><ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/">
+ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/</ulink></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>給 5.X-RELEASE/5-STABLE 用的</term>
+ <listitem>
+ <para><ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-stable/">
+ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-stable</ulink></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>給 6.X-RELEASE/6-STABLE 用的</term>
+ <listitem>
+ <para><ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-6-stable/">
+ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-6-stable</ulink></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>給 7-CURRENT 用的</term>
+ <listitem>
+ <para><ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-7-current/">
+ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-7-current</ulink></para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>或是離你最近的 mirror 站。</para>
+
+ <para>要注意的是,因為新的 port 一直在增加中,所以並不是所有 port
+ 都有相對應的 package。最好定時檢查<ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/">ftp.FreeBSD.org</ulink>
+ ,看看有哪些 package 可以用。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="configure-inn">
+ <para>該怎麼設定 INN(Internet News) 來當 news server?</para>
+ </question>
+
+ <answer>
+ <para>以 package 或 port 方式來裝好 <filename
+ role="package">news/inn</filename> 之後,<ulink
+ url="http://www.visi.com/~barr/INN.html">Dave
+ Barr's INN Page</ulink> 是個非常好的 INN 入門處,你可以在那邊找到 INN 的 FAQ。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="java">
+ <para>FreeBSD 有支援 &java; 嗎?</para>
+ </question>
+
+ <answer>
+ <para>有啊,請看 <ulink
+ url="&url.base;/java/index.html">
+ http://www.FreeBSD.org/java/</ulink></para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="missing-libcso30">
+ <para>我可以在哪邊找到 libc.so.3.0?</para>
+ </question>
+
+ <answer>
+ <para>你可能在一台 2.1.x 的機器上,跑著給 2.2/3.x/4.0 的軟體。
+ 請再往上面一個章節看,正確的取得給你機器用的 port/package。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="missing-libcso40">
+ <para>為何我得到了這個訊息 ?<errorname>Error: can't find
+ libc.so.4.0</errorname>?</para>
+ </question>
+
+ <answer>
+ <para>你不小心抓了給 4.X 及 5.X 系統用的 package,並且嘗試著
+ 去裝在你的 2.X 或 3.X 的系統上面。請下載正確版本的 package。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="emul">
+ <para> ghostscript 在我的 386/486SX 上有點問題呢!</para>
+ </question>
+
+ <answer>
+ <para>你沒有浮點運算器,對吧?你必須在你的 kernel 中加入數學
+ 運算模擬器,你可以跟著下面的步驟做,並在更改過你的 kernel 設定
+ 檔後,重新編譯過一次。</para>
+
+ <programlisting>options GPL_MATH_EMULATE</programlisting>
+
+ <note>
+ <para>當你加入上一行的同時,你必須將
+ <literal>MATH_EMULATE</literal> 移除掉。</para>
+ </note>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="sco-socksys">
+ <para>為什麼當我執行 SCO/iBCS2 的程式時,它在
+ <errorname>socksys</errorname> 這個地方出了問題?
+ (FreeBSD 3.0 以及更早的版本才有此問題。)</para></question>
+
+ <answer>
+ <para>你必須先修改 <filename>/etc/sysconfig</filename> (或是
+ <filename>/etc/rc.conf</filename>, 請讀 &man.rc.conf.5;)
+ 這檔案最後一個章節,將下面所講到的變數設成
+ <literal>YES</literal>:</para>
+
+ <programlisting># Set to YES if you want ibcs2 (SCO) emulation
+ loaded at startup ibcs2=NO</programlisting>
+
+ <para>這會在開機時將 ibcs2 這一個 kernel 模組載入。</para>
+
+ <para>你還要將你的 /compat/ibcs2/dev 改成下面這樣:</para>
+
+ <screen>lrwxr-xr-x 1 root wheel 9 Oct 15 22:20 X0R@ -&gt; /dev/null
+lrwxr-xr-x 1 root wheel 7 Oct 15 22:20 nfsd@ -&gt; socksys
+-rw-rw-r-- 1 root wheel 0 Oct 28 12:02 null
+lrwxr-xr-x 1 root wheel 9 Oct 15 22:20 socksys@ -&gt; /dev/null
+crw-rw-rw- 1 root wheel 41, 1 Oct 15 22:14 spx</screen>
+
+ <para>你只需要將 socksys 轉向到 <devicename>/dev/null</devicename>
+ (請讀 &man.null.4;) 去騙過 open &amp; close 的動作。在 -current
+ 裡面的 ibcs2 相關程式碼將會處理其餘的部份,這種作法比以前的方式
+ 乾淨太多了。假如你想要使用 <devicename>spx</devicename> 方面的
+ 程式,在你的 kernel 設定檔裡面 加上<literal>SPX_HACK</literal>。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ms-frontpage">
+ <para>我該使用那個版本的 Microsoft FrontPage?</para>
+ </question>
+
+ <answer>
+ <para>Use the Port, Luke!在 ports tree 中已經有一個包含 FrontPage
+ 的 Apache 版本了。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ports-3x">
+ <para>為什麼我無法在 3.X-STABLE 機器上順利編好這個 port?</para>
+ </question>
+
+ <answer>
+ <para>如果你的 FreeBSD 版本相較 -CURRENT 或 -STABLE 之下是很古
+ 早的話,或許你會需要一個升級 ports 的工具,在
+ <ulink url="../../../../ports/index.html">
+ http://www.FreeBSD.org/ports/</ulink>。如果你以將其更新卻仍無用,
+ 那麼一定是某人更動之後造成 -CURRENT 才能用,-STABLE 無法用的情況。
+ 由於 ports 內所收集的軟體在 -CURRENT 或是 -STABLE 上都要能用,
+ 所以請儘速送出關於此問題的蟲報告;請使用 &man.send-pr.1; 這個指
+ 令來送蟲報告。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="find-ldso">
+ <para>那裡可以找得到 ld.so?</para>
+ </question>
+
+ <answer>
+ <para>有些 a.out 格式的應用程式會需要 a.out 格式的函式庫,
+ Netscape Navigator 就是一個例子。不過用 ELF 函式庫編起來
+ 的 FreeBSD 預設並不會安裝舊的 a.out 函式庫,所以您可能會得
+ 到類似找不到 <filename>/usr/libexec/ld.so</filename> 的抱怨訊
+ 息。如果說您的系統有這安裝 a.out 函式庫的必要,這些函式庫
+ (compat22) 也能夠利用 &man.sysinstall.8; 來安裝。或者利用
+ FreeBSD 原始碼來安裝:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/src/lib/compat/compat22</userinput>&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <para>如果你希望每次 <command>make world</command> 時會自動更新
+ compat22 函式庫,那麼修改 <filename>/etc/make.conf</filename>,
+ 加入 <varname>COMPAT22=YES</varname>。這些相容於古老版本的函式庫
+ 已經沒什麼在更新了,所以一般說來是不需要這樣的。</para>
+
+ <para>同時也請您看一下 3.1-RELEASE 和 3.2-RELEASE 的勘誤表(ERRATA)。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ports-update">
+ <para>我更新了系統原始碼,現在我要怎樣升級某個已經安裝上
+ 的 ports ?</para>
+ </question>
+
+ <answer>
+ <para>FreeBSD 本身並沒有自動升級 ports 的工具,但有一些可以讓升級
+ 簡化一些的小程式。你也可以自己裝上額外的工具來處理。</para>
+
+ <para>&man.pkg.version.1; 指令可以自動產生用來達到自動升級到
+ ports tree 最新版本的 script。</para>
+
+ <screen>&prompt.root; <userinput>pkg_version <option>-c</option> > <replaceable>/tmp/myscript</replaceable></userinput></screen>
+
+ <para><emphasis>一定要</emphasis>在手動修改一下產生出來的 script。
+ 目前的 &man.pkg.version.1; 在 script 最前面加入 &man.exit.1; 強
+ 迫你去修改它。</para>
+
+ <para>你應將執行 script 所產生的輸出記錄下來,因為裡面會有記載某些
+ 尚未升級但已經更新的 ports。不過你不一定要去升級它們。通常是因為
+ 有某個共用的函式庫已經改變版本號了,才要去重編一次那些使用到該函
+ 式庫的 ports。</para>
+
+ <para>如果你的硬碟空間很夠,那麼可以用 <command>portupgrade</command>
+ 這個工具來做全自動處裡。<command>portupgrade</command> 裡面也有
+ 一些小程式來簡化 package 升級,它在
+ <filename role="package">sysutils/portupgrade</filename>。
+ 這個工具是用 Ruby 這個語言寫的,所以並不適合加入到 FreeBSD 的原
+ 始碼中,不過並不會因此讓某些人不用它。</para>
+
+ <para>如果你的系統一直都處於開機狀態,可利用 &man.periodic.8; 系統,
+ 每個星期產生一張需要升級的清單。只要在
+ <filename>/etc/periodic.conf</filename> 加入
+ <literal>weekly_status_pkg_enable="YES"</literal> 就可以了。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="minima-sh">
+ <para>為什麼 <command>/bin/sh</command>這麼的小?為什麼 FreeBSD
+ 不改用 <command>bash</command> 或者是其他比較強悍的 shell?</para>
+ </question>
+
+ <answer>
+ <para>因為 POSIX 說,該要有這麼樣的一個 shell 在才行。</para>
+
+ <para>比較繁瑣的答案:許多人需要寫可以跨很多平台的 shell script 。
+ 這也是為何 POSIX 將 shell 以及工具命稱都定義的非常詳細的緣故。
+ 大部份的 script 都適用於 Bourne shell,又因為有幾個重要的
+ 寫程式所用到的程式或者函式 (&man.make.1; , &man.system.3;,
+ &man.popen.3;, 還有在 Perl 或者 Tcl 裡面呼叫系統程式的地方)
+ 都指定用 Bourne shell 。那麼因為 Bourne Shell 如此的廣泛常用,
+ 那麼它的執行效率便很重要,快速是它決定性的要點之一,還要不佔太多
+ 記憶體。</para>
+
+ <para>目前的 <command>/bin/sh</command> 已是我們嘔心瀝血之作,它已
+ 經盡量地符合標準規定。為了讓它非常小,我們拿掉了一些其他 shell
+ 有的方便功能。這也是為什麼 ports 裡面還有很多強悍的 shell ,像是
+ bash, scsh, tcsh 以及 zsh 。 (你可以自己比較一下這些 shell 執行
+ 時所佔的記憶體大小,去看看 <command>ps -u</command> 列出來的
+ <quote>VSZ</quote> 和 <quote>RSS</quote> 這兩個欄位就知道了。)
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="netscape-slow-startup">
+ <para>為什麼 Netscape 和 Opera 要花好久的時間才能啟動?</para>
+ </question>
+
+ <answer>
+ <para>通常是因為你的 DNS 沒有設定好。 Netscape 跟 Opera 在啟動的時候
+ 都會去檢查一下 DNS。直到 DNS 有回應,或者是斷定網路目前是斷線之後,
+ 它們才會顯示畫面出來。</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+
+ <chapter id="kernelconfig">
+ <chapterinfo>
+ <author>
+ <firstname>Kang-min</firstname>
+ <surname>Liu</surname>
+ <affiliation>
+ <address><email>gugod@gugod.org</email></address>
+ </affiliation>
+ </author>
+ </chapterinfo>
+
+ <title>kernel 設定</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="make-kernel">
+ <para>我想自訂 kernel,這會很困難嗎?</para>
+ </question>
+
+ <answer>
+ <para>不會!請查閱 <ulink url="../../handbook/kernelconfig.html">
+ 使用手冊中的 kernel 設定一節</ulink>。</para>
+
+ <note>
+ <para>我會建議你在你讓核心能正常工作後,做一個
+ <filename>kernel.YYMMDD</filename> 日期形式的備份,同時也備份
+ <filename>/module</filename>這個目錄至
+ <filename>/modules.YYMMDD</filename>。這樣下次如果你很不幸的玩
+ 壞了設定,至少可以不需要使用最原始的
+ <filename>kernel.GENERIC</filename>。如你正從一個 GENERIC
+ kernel 裡面不支援的控制器裡啟動時,這就顯得特別重要。</para>
+ </note>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="missing-hw-float">
+ <para>我的核心因為 <literal>_hw_float</literal>遺失而編譯失敗。
+ 該怎麼修正呢?</para>
+ </question>
+
+ <answer>
+ <para>讓我猜看看,你把 <devicename>npx0</devicename>
+ (詳見 &man.npx.4;) 從你的 kernel 設定檔移除了,因為你沒有數學運算器,
+ 對嗎?錯了!:-) 這個 <devicename>npx0</devicename>是
+ <emphasis>必須要有的</emphasis>。就算你沒有數學運算器,你還是
+ <emphasis>必須</emphasis> 引入 <devicename>npx0</devicename> 裝置。
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="why-kernel-big">
+ <para>為什麼造出來的 kernel 這麼大 (10MB 以上) ?</para>
+ </question>
+
+ <answer>
+ <para>這很有可能是因為,你把 kernel 編成 <emphasis>偵錯模式</emphasis>
+ 了。偵錯模式之下的 kernel 裡面會存著偵錯用的許多符號,因此會大幅
+ 增加 kernel 的大小。如果說你的 FreeBSD 是 3.0 以後的版本,這對於
+ 效能來說影響並不大,幾乎是沒有。而在系統會因某些原因 panic 時,
+ 有個偵錯模式的 kernel 在也挺有用的。</para>
+
+ <para>不過呢,如果你的磁碟空間很小,或者你就是不想用偵錯模式的
+ kernel 的話,請確認以下事情:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>kernel 設定檔裡面沒有這一行:</para>
+
+ <programlisting>makeoptions DEBUGS=-g </programlisting>
+ </listitem>
+
+ <listitem>
+ <para>執行 &man.config.8; 時沒有加上 <option>-g</option>
+ 這個選項。</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>以上兩件事情都會讓你編出一個偵錯模式的 kernel。但只要避免之,
+ 就可以編出一個正常的 kernel,而你也會注意到,kernel 明顯的變小了;
+ 大部份的 kernel 都差不多在 1.5MB 到 2MB 之間。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="multiport-serial-interrupts">
+ <para>為何出現了 multi-port serial code 的中斷衝突?</para>
+ </question>
+
+ <answer>
+ <para>當我編譯一個 multi-port serial code 的核心時,它告訴我只有
+ 第一個被偵測到,其他的則因中斷衝突而跳過了,我該怎麼修正它?</para>
+
+ <para>這個問題是因為 FreeBSD 使用內建程式碼避免因為硬體或軟體衝突
+ 導致 kernel 過於肥大或無用。要修正這種情形的方法是除了一個 port
+ 外把其他所有的 IRQ 設定都做保留。這裡有一個範例:</para>
+
+ <programlisting>#
+# Multiport high-speed serial line - 16550 UARTS
+#
+device sio2 at isa? port 0x2a0 tty irq 5 flags 0x501 vector siointr
+device sio3 at isa? port 0x2a8 tty flags 0x501 vector siointr
+device sio4 at isa? port 0x2b0 tty flags 0x501 vector siointr
+device sio5 at isa? port 0x2b8 tty flags 0x501 vector siointr</programlisting>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="generic-kernel-build-failure">
+ <para>為什麼我一個 kernel 都編不起來?甚至 GENERIC 也不行?</para>
+ </question>
+
+ <answer>
+ <para>這有很多種可能的原因:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>你沒有用新的 <command>make buildkernel</command> 與
+ <command>make installkernel</command> 這兩個方法來編,而正好
+ 你的系統原始碼的版本和正在執行的系統核心版本不一樣 (像是,
+ 在跑 4.0-RELEASE 的系統上嘗試著編 4.3-RELEASE)。如果說你要升
+ 級系統的話,請務必去看看 <filename>/usr/src/UPDATING</filename>
+ 這個檔案,特別注意最後面的 <quote>COMMON ITEMS</quote>
+ 這個小節。</para>
+ </listitem>
+
+ <listitem>
+ <para>你已經用上 <command>make buildkernel</command> 以及
+ <command>make installkernel</command> 了,但是在
+ <command>make buildworld</command> 時失敗了。可惜的是,
+ <command>make buildkernel</command> 要成功,需要依賴
+ <command>make buildworld</command> 後造出來的一些檔案。</para>
+ </listitem>
+
+ <listitem>
+ <para>就算是你在編 <link linkend="stable">&os.stable;</link>,
+ 還是有可能你抓到了正在修改中,或著因為某些緣故而根本還沒改好
+ 的原始碼;雖然說 <link linkend="stable">&os.stable;</link>
+ 大部份的時候都是可以編的,但只有 RELEASE 才是保證可以編的。碰
+ 到這個問題時,再次更新原始碼並且再試試看。也有可能是放原始碼的
+ 伺服器出現某些問題,所以更新原始碼時也試試從不同伺服器來更新看
+ 看。</para>
+ </listitem>
+ </itemizedlist>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+ <chapter id="disks">
+ <title>硬碟、檔案系統、Boot Loader</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="new-huge-disk">
+ <para>我要怎麼把我的系統搬到新硬碟上面去?</para>
+ </question>
+
+ <answer>
+ <para>理想的方式是先在新硬碟上重裝好作業系統,然後把使用者相關程式、資料搬過去就好。
+ This is highly
+ recommended if you have been tracking -STABLE for more
+ than one release, or have updated a release instead of
+ installing a new one. You can install booteasy on both
+ disks with &man.boot0cfg.8;, and dual boot them until
+ you are happy with the new configuration. Skip the
+ next paragraph to find out how to move the data after
+ doing this.</para>
+
+ <para>Should you decide not to do a fresh install, you
+ need to partition and label the new disk with either
+ <filename>sysinstall</filename>(&os; 5.2 之前版本則是 <command>/stand/sysinstall</command>), or &man.fdisk.8;
+ and &man.disklabel.8;. You should also install booteasy
+ on both disks with &man.boot0cfg.8;, so that you can
+ dual boot to the old or new system after the copying
+ is done.</para>
+
+ <para>Now you have the new disk set up, and are ready
+ to move the data. Unfortunately, you cannot just blindly
+ copy the data. Things like device files (in
+ <filename>/dev</filename>), flags, and links tend to
+ screw that up. You need to use tools that understand
+ these things, which means &man.dump.8;.
+ Although it is suggested that you move the data in single user
+ mode, it is not required.</para>
+
+ <para>You should never use anything but &man.dump.8; and
+ &man.restore.8; to move the root filesystem. The
+ &man.tar.1; command may work - then again, it may not.
+ You should also use &man.dump.8; and &man.restore.8;
+ if you are moving a single partition to another empty
+ partition. The sequence of steps to use dump to move
+ a partitions data to a new partition is:</para>
+
+ <procedure>
+ <step>
+ <para>newfs the new partition.</para>
+ </step>
+
+ <step>
+ <para>mount it on a temporary mount point.</para>
+ </step>
+
+ <step>
+ <para>cd to that directory.</para>
+ </step>
+
+ <step>
+ <para>dump the old partition, piping output to the
+ new one.</para>
+ </step>
+ </procedure>
+
+ <para>For example, if you are going to move root to
+ <devicename>/dev/ad1s1a</devicename>, with
+ <filename>/mnt</filename> as the temporary mount point,
+ it is:</para>
+
+ <screen>&prompt.root; <userinput>newfs /dev/ad1s1a</userinput>
+&prompt.root; <userinput>mount /dev/ad1s1a /mnt</userinput>
+&prompt.root; <userinput>cd /mnt</userinput>
+&prompt.root; <userinput>dump 0af - / | restore xf -</userinput></screen>
+
+ <para>Rearranging your partitions with dump takes a bit more
+ work. To merge a partition like <filename>/var</filename>
+ into its parent, create the new partition large enough
+ for both, move the parent partition as described above,
+ then move the child partition into the empty directory
+ that the first move created:</para>
+
+ <screen>&prompt.root; <userinput>newfs /dev/ad1s1a</userinput>
+&prompt.root; <userinput>mount /dev/ad1s1a /mnt</userinput>
+&prompt.root; <userinput>cd /mnt</userinput>
+&prompt.root; <userinput>dump 0af - / | restore xf -</userinput>
+&prompt.root; <userinput>cd var</userinput>
+&prompt.root; <userinput>dump 0af - /var | restore xf -</userinput></screen>
+
+ <para>To split a directory from its parent, say putting
+ <filename>/var</filename> on its own partition when it was not
+ before, create both partitions, then mount the child partition
+ on the appropriate directory in the temporary mount point, then
+ move the old single partition:</para>
+
+ <screen>&prompt.root; <userinput>newfs /dev/ad1s1a</userinput>
+&prompt.root; <userinput>newfs /dev/ad1s1d</userinput>
+&prompt.root; <userinput>mount /dev/ad1s1a /mnt</userinput>
+&prompt.root; <userinput>mkdir /mnt/var</userinput>
+&prompt.root; <userinput>mount /dev/ad1s1d /mnt/var</userinput>
+&prompt.root; <userinput>cd /mnt</userinput>
+&prompt.root; <userinput>dump 0af - / | restore xf -</userinput></screen>
+
+ <para>You might prefer &man.cpio.1;, &man.pax.1;,
+ &man.tar.1; to &man.dump.8; for user data. At the time of
+ this writing, these are known to lose file flag information,
+ so use them with caution.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="dangerously-dedicated">
+ <para>Will a <quote>dangerously dedicated</quote> disk endanger
+ my health?</para>
+ </question>
+
+ <answer>
+
+ <para><anchor id="dedicate"/>The installation procedure allows
+ you to chose two different methods in partitioning your
+ hard disk(s). The default way makes it compatible with other
+ operating systems on the same machine, by using fdisk table
+ entries (called <quote>slices</quote> in FreeBSD), with a
+ FreeBSD slice that employs partitions of its own. Optionally,
+ one can chose to install a boot-selector to switch between the
+ possible operating systems on the disk(s). The alternative uses
+ the entire disk for FreeBSD, and makes no attempt to be
+ compatible with other operating systems.</para>
+
+ <para>So why it is called <quote>dangerous</quote>? A disk
+ in this mode does not contain what normal PC utilities
+ would consider a valid fdisk table. Depending on how well
+ they have been designed, they might complain at you once
+ they are getting in contact with such a disk, or even
+ worse, they might damage the BSD bootstrap without even
+ asking or notifying you. In addition, the
+ <quote>dangerously dedicated</quote> disk's layout is
+ known to confuse many BIOSes, including those from AWARD
+ (e.g. as found in HP Netserver and Micronics systems as
+ well as many others) and Symbios/NCR (for the popular
+ 53C8xx range of SCSI controllers). This is not a complete
+ list, there are more. Symptoms of this confusion include
+ the <errorname>read error</errorname> message printed by
+ the FreeBSD bootstrap when it cannot find itself, as well
+ as system lockups when booting.</para>
+
+ <para>Why have this mode at all then? It only saves a few kbytes
+ of disk space, and it can cause real problems for a new
+ installation. <quote>Dangerously dedicated</quote> mode's
+ origins lie in a desire to avoid one of the most common
+ problems plaguing new FreeBSD installers - matching the BIOS
+ <quote>geometry</quote> numbers for a disk to the disk
+ itself.</para>
+
+ <para><quote>Geometry</quote> is an outdated concept, but one
+ still at the heart of the PC's BIOS and its interaction with
+ disks. When the FreeBSD installer creates slices, it has to
+ record the location of these slices on the disk in a fashion
+ that corresponds with the way the BIOS expects to find them. If
+ it gets it wrong, you will not be able to boot.</para>
+
+ <para><quote>Dangerously dedicated</quote> mode tries to work
+ around this by making the problem simpler. In some cases, it
+ gets it right. But it is meant to be used as a last-ditch
+ alternative - there are better ways to solve the problem 99
+ times out of 100.</para>
+
+ <para>So, how do you avoid the need for <quote>DD</quote> mode
+ when you are installing? Start by making a note of the geometry
+ that your BIOS claims to be using for your disks. You can
+ arrange to have the kernel print this as it boots by specifying
+ <option>-v</option> at the <literal>boot:</literal> prompt, or
+ using <command>boot -v</command> in the loader. Just before the
+ installer starts, the kernel will print a list of BIOS
+ geometries. Do not panic - wait for the installer to start and
+ then use scrollback to read the numbers. Typically the BIOS
+ disk units will be in the same order that FreeBSD lists your
+ disks, first IDE, then SCSI.</para>
+
+ <para>When you are slicing up your disk, check that the disk
+ geometry displayed in the FDISK screen is correct (ie. it
+ matches the BIOS numbers); if it is wrong, use the
+ <keycap>g</keycap> key to fix it. You may have to do this if
+ there is absolutely nothing on the disk, or if the disk has been
+ moved from another system. Note that this is only an issue with
+ the disk that you are going to boot from; FreeBSD will sort
+ itself out just fine with any other disks you may have.</para>
+
+ <para>Once you have got the BIOS and FreeBSD agreeing about the
+ geometry of the disk, your problems are almost guaranteed to be
+ over, and with no need for <quote>DD</quote> mode at all. If,
+ however, you are still greeted with the dreaded <errorname>read
+ error</errorname> message when you try to boot, it is time to cross
+ your fingers and go for it - there is nothing left to
+ lose.</para>
+
+ <para>To return a <quote>dangerously dedicated</quote> disk
+ for normal PC use, there are basically two options. The first
+ is, you write enough NULL bytes over the MBR to make any
+ subsequent installation believe this to be a blank disk. You
+ can do this for example with</para>
+
+ <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/rda0 count=15</userinput></screen>
+
+ <para>Alternatively, the undocumented DOS
+ <quote>feature</quote></para>
+
+ <screen><prompt>C:\&gt;</prompt> <userinput>fdisk /mbr</userinput></screen>
+
+ <para>will to install a new master boot record as well, thus
+ clobbering the BSD bootstrap.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="safe-softupdates">
+ <para>Which partitions can safely use Soft Updates? I have
+ heard that Soft Updates on <filename>/</filename> can cause
+ problems.</para>
+ </question>
+
+ <answer>
+ <para>Short answer: you can usually use Soft Updates safely
+ on all partitions.</para>
+
+ <para>Long answer: There used to be some concern over using
+ Soft Updates on the root partition. Soft Updates has two
+ characteristics that caused this. First, a Soft Updates
+ partition has a small chance of losing data during a
+ system crash. (The partition will not be corrupted; the
+ data will simply be lost.) Also, Soft Updates can cause
+ temporary space shortages.</para>
+
+ <para>When using Soft Updates, the kernel can take up to
+ thirty seconds to actually write changes to the physical
+ disk. If you delete a large file, the file still resides
+ on disk until the kernel actually performs the deletion.
+ This can cause a very simple race condition. Suppose you
+ delete one large file and immediately create another large
+ file. The first large file is not yet actually removed
+ from the physical disk, so the disk might not have enough
+ room for the second large file. You get an error that the
+ partition does not have enough space, although you know
+ perfectly well that you just released a large chunk of
+ space! When you try again mere seconds later, the file
+ creation works as you expect. This has left more than one
+ user scratching his head and doubting his sanity, the
+ FreeBSD filesystem, or both.</para>
+
+ <para>If a system should crash after the kernel accepts a
+ chunk of data for writing to disk, but before that data is
+ actually written out, data could be lost or corrupted.
+ This risk is extremely small, but generally manageable.
+ Use of IDE write caching greatly increases this risk; it
+ is strongly recommended that you disable IDE write caching
+ when using Soft Updates.</para>
+
+ <para>These issues affect all partitions using Soft Updates.
+ So, what does this mean for the root partition?</para>
+
+ <para>Vital information on the root partition changes very
+ rarely. Files such as <filename>/kernel</filename> and
+ the contents of <filename>/etc</filename> only change
+ during system maintenance, or when users change their
+ passwords. If the system crashed during the
+ thirty-second window after such a change is made, it is
+ possible that data could be lost. This risk is negligible
+ for most applications, but you should be aware that it
+ exists. If your system cannot tolerate this much risk,
+ do not use Soft Updates on the root filesystem!</para>
+
+ <para><filename>/</filename> is traditionally one of the
+ smallest partitions. By default, FreeBSD puts the
+ <filename>/tmp</filename> directory on
+ <filename>/</filename>. If you have a busy
+ <filename>/tmp</filename>, you might see intermittent
+ space problems. Symlinking <filename>/tmp</filename> to
+ <filename>/var/tmp</filename> will solve this
+ problem.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="inappropriate-ccd">
+ <para>What is inappropriate about my ccd?</para>
+ </question>
+
+ <answer>
+ <para>The symptom of this is:</para>
+
+ <screen>&prompt.root; <userinput>ccdconfig -C</userinput>
+ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format</screen>
+
+ <para>This usually happens when you are trying to concatenate
+ the <literal>c</literal> partitions, which default to type
+ <literal>unused</literal>. The ccd driver requires the
+ underlying partition type to be FS_BSDFFS. Edit the disklabel
+ of the disks you are trying to concatenate and change the types
+ of partitions to <literal>4.2BSD</literal>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ccd-disklabel">
+ <para>Why can I not edit the disklabel on my ccd?</para>
+ </question>
+
+ <answer>
+ <para>The symptom of this is:</para>
+
+ <screen>&prompt.root; <userinput>disklabel ccd0</userinput>
+(it prints something sensible here, so let us try to edit it)
+&prompt.root; <userinput>disklabel -e ccd0</userinput>
+(edit, save, quit)
+disklabel: ioctl DIOCWDINFO: No disk label on disk;
+use "disklabel -r" to install initial label</screen>
+
+ <para>This is because the disklabel returned by ccd is actually
+ a <quote>fake</quote> one that is not really on the disk.
+ You can solve this problem by writing it back explicitly,
+ as in:</para>
+
+ <screen>&prompt.root; <userinput>disklabel ccd0 &gt; /tmp/disklabel.tmp</userinput>
+&prompt.root; <userinput>disklabel -Rr ccd0 /tmp/disklabel.tmp</userinput>
+&prompt.root; <userinput>disklabel -e ccd0</userinput>
+(this will work now)</screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="mount-foreign-fs">
+ <para>Can I mount other foreign filesystems under FreeBSD?</para>
+ </question>
+
+ <answer>
+ <para>FreeBSD supports a variety of other
+ filesystems.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>Digital UNIX</term>
+
+ <listitem>
+ <para>UFS CDROMs can be mounted directly on FreeBSD.
+ Mounting disk partitions from Digital UNIX and other
+ systems that support UFS may be more complex, depending
+ on the details of the disk partitioning for the operating
+ system in question.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&linux;</term>
+
+ <listitem>
+ <para>FreeBSD supports <literal>ext2fs</literal>
+ partitions. See &man.mount.ext2fs.8; for more
+ information.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&windowsnt;</term>
+
+ <listitem>
+ <para>FreeBSD includes a read-only NTFS driver. For
+ more information, see &man.mount.ntfs.8;.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>FAT</term>
+
+ <listitem>
+ <para>FreeBSD includes a read-write FAT driver. For
+ more information, see &man.mount.msdosfs.8;.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>FreeBSD also supports network filesystems such as NFS
+ (see &man.mount.nfs.8;), NetWare (see &man.mount.nwfs.8;),
+ and Microsoft-style SMB filesystems (see
+ &man.mount.smbfs.8;).</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="mount-dos">
+ <para>How do I mount a secondary DOS partition?</para>
+ </question>
+
+ <answer>
+
+ <para>The secondary DOS partitions are found after ALL the
+ primary partitions. For example, if you have an
+ <quote>E</quote> partition as the second DOS partition on
+ the second SCSI drive, you need to create the special files
+ for <quote>slice 5</quote> in <filename>/dev</filename>,
+ then mount <devicename>/dev/da1s5</devicename>:</para>
+
+ <screen>&prompt.root; <userinput>cd /dev</userinput>
+&prompt.root; <userinput>sh MAKEDEV da1s5</userinput>
+&prompt.root; <userinput>mount -t msdos /dev/da1s5 /dos/e</userinput></screen>
+
+ <note>
+ <para>You can omit this step if you are running FreeBSD
+ 5.0-RELEASE or newer with &man.devfs.5;
+ enabled.</para>
+ </note>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="crypto-filesystem">
+ <para>&os; 有檔案加密系統嗎?</para>
+ </question>
+
+ <answer>
+
+ <para>有啊! FreeBSD 5.0 起內建 &man.gbde.8;,而 FreeBSD 6.0
+ 又加上 &man.geli.8;。 而較早期的版本,請多利用 <filename
+ role="package">security/cfs</filename> port,謝謝。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="nt-bootloader">
+ <para>How can I use the &windowsnt; loader to boot FreeBSD?</para>
+ </question>
+
+ <answer>
+ <para>The general idea is that you copy the first sector of your
+ native root FreeBSD partition into a file in the DOS/&windowsnt;
+ partition. Assuming you name that file something like
+ <filename>c:\bootsect.bsd</filename> (inspired by
+ <filename>c:\bootsect.dos</filename>), you can then edit the
+ <filename>c:\boot.ini</filename> file to come up with something
+ like this:</para>
+
+ <programlisting>[boot loader]
+timeout=30
+default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
+[operating systems]
+multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT"
+C:\BOOTSECT.BSD="FreeBSD"
+C:\="DOS"</programlisting>
+
+ <para>If FreeBSD is installed on the same disk as the &windowsnt; boot
+ partition simply copy <filename>/boot/boot1</filename> to
+ <filename>C:\BOOTSECT.BSD</filename>. However, if FreeBSD is
+ installed on a different disk <filename>/boot/boot1</filename>
+ will not work, <filename>/boot/boot0</filename> is needed.</para>
+
+ <para><filename>/boot/boot0</filename> needs to be installed
+ using sysinstall(&os; 5.2 之前版本則是 <command>/stand/sysinstall</command>) by selecting the FreeBSD boot manager on
+ the screen which asks if you wish to use a boot
+ manager. This is because <filename>/boot/boot0</filename>
+ has the partition table area filled with NULL characters
+ but sysinstall copies the partition table before copying
+ <filename>/boot/boot0</filename> to the MBR.</para>
+
+ <warning>
+ <para><emphasis>Do not simply copy <filename>/boot/boot0</filename>
+ instead of <filename>/boot/boot1</filename>; you will
+ overwrite your partition table and render your computer
+ un-bootable!</emphasis></para>
+ </warning>
+
+ <para>When the FreeBSD boot manager runs it records the last
+ OS booted by setting the active flag on the partition table
+ entry for that OS and then writes the whole 512-bytes of itself
+ back to the MBR so if you just copy
+ <filename>/boot/boot0</filename> to
+ <filename>C:\BOOTSECT.BSD</filename> then it writes an empty
+ partition table, with the active flag set on one entry, to the
+ MBR.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="lilo-bootloader">
+ <para>How do I boot FreeBSD and &linux; from LILO?</para>
+ </question>
+
+ <answer>
+ <para>If you have FreeBSD and &linux; on the same disk, just follow
+ LILO's installation instructions for booting a non-&linux;
+ operating system. Very briefly, these are:</para>
+
+ <para>Boot &linux;, and add the following lines to
+ <filename>/etc/lilo.conf</filename>:</para>
+
+ <programlisting>other=/dev/hda2
+ table=/dev/hda
+ label=FreeBSD</programlisting>
+
+ <para>(the above assumes that your FreeBSD slice is known to
+ &linux; as <devicename>/dev/hda2</devicename>; tailor to
+ suit your setup). Then, run <command>lilo</command> as
+ <username>root</username> and you should be done.</para>
+
+ <para>If FreeBSD resides on another disk, you need to add
+ <literal>loader=/boot/chain.b</literal> to the LILO entry.
+ For example:</para>
+
+ <programlisting>other=/dev/dab4
+ table=/dev/dab
+ loader=/boot/chain.b
+ label=FreeBSD</programlisting>
+
+ <para>In some cases you may need to specify the BIOS drive number
+ to the FreeBSD boot loader to successfully boot off the second
+ disk. For example, if your FreeBSD SCSI disk is probed by BIOS
+ as BIOS disk 1, at the FreeBSD boot loader prompt you need to
+ specify:</para>
+
+ <screen>Boot: <userinput>1:da(0,a)/kernel</userinput></screen>
+
+ <para>You can configure
+ &man.boot.8;
+ to automatically do this for you at boot time.</para>
+
+ <para>The <ulink
+ url="http://sunsite.unc.edu/LDP/HOWTO/mini/Linux+FreeBSD.html">
+ &linux;+FreeBSD mini-HOWTO</ulink> is a good reference for
+ FreeBSD and &linux; interoperability issues.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="booteasy-loader">
+ <para>How do I boot FreeBSD and &linux; using BootEasy?</para>
+ </question>
+
+ <answer>
+ <para>Install LILO at the start of your &linux; boot partition
+ instead of in the Master Boot Record. You can then boot LILO
+ from BootEasy.</para>
+
+ <para>If you are running &windows; 95 and &linux; this is recommended
+ anyway, to make it simpler to get &linux; booting again if you
+ should need to reinstall &windows; 95 (which is a Jealous
+ Operating System, and will bear no other Operating Systems in
+ the Master Boot Record).</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="changing-bootprompt">
+ <para>How do I change the boot prompt from <literal>???</literal> to
+ something more meaningful?</para>
+ </question>
+
+ <answer>
+ <para>You can not do that with the standard boot manager without
+ rewriting it. There are a number of other boot managers
+ in the <filename>sysutils</filename> ports category that
+ provide this functionality.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="removable-drives">
+ <para>I have a new removable drive, how do I use it?</para>
+ </question>
+
+ <answer>
+
+ <para>Whether it is a removable drive like a &iomegazip; or an EZ drive
+ (or even a floppy, if you want to use it that way), or a new
+ hard disk, once it is installed and recognized by the system,
+ and you have your cartridge/floppy/whatever slotted in, things
+ are pretty much the same for all devices.</para>
+
+ <para>(this section is based on <ulink
+ url="http://www.vmunix.com/mark/FreeBSD/ZIP-FAQ.html">
+ Mark Mayo's ZIP FAQ</ulink>)</para>
+
+ <para>If it is a ZIP drive or a floppy, you have already got a DOS
+ filesystem on it, you can use a command like this:</para>
+
+ <screen>&prompt.root; <userinput>mount -t msdos /dev/fd0c /floppy</userinput></screen>
+
+ <para>if it is a floppy, or this:</para>
+
+ <screen>&prompt.root; <userinput>mount -t msdos /dev/da2s4 /zip</userinput></screen>
+
+ <para>for a ZIP disk with the factory configuration.</para>
+
+ <para>For other disks, see how they are laid out using
+ &man.fdisk.8; or
+ &man.sysinstall.8;.</para>
+
+ <para>The rest of the examples will be for a ZIP drive on da2,
+ the third SCSI disk.</para>
+
+ <para>Unless it is a floppy, or a removable you plan on sharing
+ with other people, it is probably a better idea to stick a BSD
+ filesystem on it. You will get long filename support, at least a
+ 2X improvement in performance, and a lot more stability. First,
+ you need to redo the DOS-level partitions/filesystems. You can
+ either use &man.fdisk.8; or
+ <filename>sysinstall</filename>(&os; 5.2 之前版本則是 <command>/stand/sysinstall</command>), or for a small drive
+ that you do not want to bother with multiple operating system
+ support on, just blow away the whole FAT partition table
+ (slices) and just use the BSD partitioning:</para>
+
+ <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/rda2 count=2</userinput>
+&prompt.root; <userinput>disklabel -Brw da2 auto</userinput></screen>
+
+ <para>You can use disklabel or
+ <filename>sysinstall</filename> to create multiple BSD
+ partitions. You will certainly want to do this if you are adding
+ swap space on a fixed disk, but it is probably irrelevant on a
+ removable drive like a ZIP.</para>
+
+ <para>Finally, create a new filesystem, this one is on our ZIP
+ drive using the whole disk:</para>
+
+ <screen>&prompt.root; <userinput>newfs /dev/rda2c</userinput></screen>
+
+ <para>and mount it:</para>
+
+ <screen>&prompt.root; <userinput>mount /dev/da2c /zip</userinput></screen>
+
+ <para>and it is probably a good idea to add a line like this
+ to <filename>/etc/fstab</filename> (see &man.fstab.5;) so
+ you can just type <command>mount /zip</command> in the
+ future:</para>
+
+ <programlisting>/dev/da2c /zip ffs rw,noauto 0 0</programlisting>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="mount-cd-superblock">
+ <para>Why do I get <errorname>Incorrect super block</errorname> when
+ mounting a CDROM?</para>
+ </question>
+
+ <answer>
+ <para>You have to tell &man.mount.8; the type of the device
+ that you want to mount. This is described in the <ulink
+ url="&url.books.handbook;/creating-cds.html"> Handbook section on
+ optical media</ulink>, specifically the section <ulink
+ url="&url.books.handbook;/creating-cds.html#MOUNTING-CD">Using Data
+ CDs</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="cdrom-not-configured">
+ <para>Why do I get <errorname>Device not
+ configured</errorname> when mounting a CDROM?</para>
+ </question>
+
+ <answer>
+ <para>This generally means that there is no CDROM in the
+ CDROM drive, or the drive is not visible on the
+ bus. Please see the <ulink
+ url="&url.books.handbook;/creating-cds.html#MOUNTING-CD">Using Data
+ CDs</ulink> section of the Handbook for a detailed
+ discussion of this issue.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="cdrom-unicode-filenames">
+ <para>Why do all non-English characters in filenames show up as
+ <quote>?</quote> on my CDs when mounted in FreeBSD?</para>
+ </question>
+
+ <answer>
+ <para>Your CDROM probably uses the <quote>Joliet</quote>
+ extension for storing information about files and
+ directories. This is discussed in the Handbook chapter on
+ <ulink url="&url.books.handbook;/creating-cds.html">creating and
+ using CDROMs</ulink>, specifically the section on <ulink
+ url="&url.books.handbook;/creating-cds.html#MOUNTING-CD">Using Data
+ CDROMs</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="burncd-isofs">
+ <para>I burned a CD under FreeBSD and now I can not read it
+ under any other operating system. Why?</para>
+ </question>
+
+ <answer>
+ <para>You most likely burned a raw file to your CD, rather
+ than creating an ISO 9660 filesystem. Take a look at the
+ <ulink url="&url.books.handbook;/creating-cds.html">Handbook
+ chapter on creating CDROMs</ulink>, particularly the
+ section on <ulink
+ url="&url.books.handbook;/creating-cds.html#RAWDATA-CD">burning raw
+ data CDs</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="copy-cd">
+ <para>How can I create an image of a data CD?</para>
+ </question>
+
+ <answer>
+ <para>This is discussed in the Handbook section on <ulink
+ url="&url.books.handbook;/creating-cds.html#IMAGING-CD">duplicating
+ data CDs</ulink>. For more on working with CDROMs, see the
+ <ulink url="&url.books.handbook;/creating-cds.html">Creating CDs
+ Section</ulink> in the Storage chapter in the
+ Handbook.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="mount-audio-CD">
+ <para>Why can I not <command>mount</command> an audio
+ CD?</para>
+ </question>
+
+ <answer>
+ <para>If you try to mount an audio CD, you will get an error
+ like <errorname>cd9660: /dev/acd0c: Invalid
+ argument</errorname>. This is because
+ <command>mount</command> only works on filesystems. Audio
+ CDs do not have filesystems; they just have data. You
+ need a program that reads audio CDs, such as the
+ <filename role="package">audio/xmcd</filename> port.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="multi-session-CD">
+ <para>How do I <command>mount</command> a multi-session CD?</para>
+ </question>
+
+ <answer>
+ <para>By default, &man.mount.8; will attempt to mount the
+ last data track (session) of a CD. If you would like to
+ load an earlier session, you must use the
+ <option>-s</option> command line argument. Please see
+ &man.mount.cd9660.8; for specific examples.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="user-floppymount">
+ <para>How do I let ordinary users mount floppies, CDROMs and
+ other removable media?</para>
+ </question>
+
+ <answer>
+ <para>Ordinary users can be permitted to mount devices. Here is
+ how:</para>
+
+ <procedure>
+ <step>
+ <para>As <username>root</username> set the sysctl variable
+ <varname>vfs.usermount</varname> to
+ <literal>1</literal>.</para>
+
+ <screen>&prompt.root; <userinput>sysctl -w vfs.usermount=1</userinput></screen>
+ </step>
+
+ <step>
+ <para>As <username>root</username> assign the appropriate
+ permissions to the block device associated with the
+ removable media.</para>
+
+ <para>For example, to allow users to mount the first floppy
+ drive, use:</para>
+
+ <screen>&prompt.root; <userinput>chmod 666 /dev/fd0</userinput></screen>
+
+ <para>To allow users in the group
+ <groupname>operator</groupname> to mount the CDROM drive,
+ use:</para>
+
+ <screen>&prompt.root; <userinput>chgrp operator /dev/acd0c</userinput>
+&prompt.root; <userinput>chmod 640 /dev/acd0c</userinput></screen>
+ </step>
+
+ <step>
+ <para>If you are running &os; 5.X or later, you will need to alter
+ <filename>/etc/devfs.conf</filename> to make these changes
+ permanent across reboots.</para>
+
+ <para>As <username>root</username>, add the necessary lines to
+ <filename>/etc/devfs.conf</filename>. For example, to allow
+ users to mount the first floppy drive add:</para>
+
+ <programlisting># Allow all users to mount the floppy disk.
+own /dev/fd0 root:operator
+perm /dev/fd0 0666</programlisting>
+
+ <para>To allow users in the group <groupname>operator</groupname>
+ to mount the CD-ROM drive add:</para>
+
+ <programlisting># Allow members of the group operator to mount CD-ROMs.
+own /dev/acd0 root:operator
+perm /dev/acd0 0660</programlisting>
+ </step>
+
+ <step>
+ <para>Finally, add the line
+ <literal><varname>vfs.usermount</varname>=1</literal>
+ to the file <filename>/etc/sysctl.conf</filename> so
+ that it is reset at system boot time.</para>
+ </step>
+ </procedure>
+
+ <para>All users can now mount the floppy
+ <devicename>/dev/fd0</devicename> onto a directory that they
+ own:</para>
+
+ <screen>&prompt.user; <userinput>mkdir ~/my-mount-point</userinput>
+&prompt.user; <userinput>mount -t msdos /dev/fd0 ~/my-mount-point</userinput></screen>
+
+ <para>Users in group <groupname>operator</groupname> can now
+ mount the CDROM <devicename>/dev/acd0c</devicename> onto a
+ directory that they own:</para>
+
+ <screen>&prompt.user; <userinput>mkdir ~/my-mount-point</userinput>
+&prompt.user; <userinput>mount -t cd9660 /dev/acd0c ~/my-mount-point</userinput></screen>
+
+ <para>Unmounting the device is simple:</para>
+
+ <screen>&prompt.user; <userinput>umount ~/my-mount-point</userinput></screen>
+
+ <para>Enabling <varname>vfs.usermount</varname>, however,
+ has negative security implications. A better way to
+ access &ms-dos; formatted media is to use the
+ <filename role="package">emulators/mtools</filename>
+ package in the ports collection.</para>
+
+ <note>
+ <para>The device name used in the previous examples must be
+ changed according to your configuration.</para>
+ </note>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="du-vs-df">
+ <para>The <command>du</command> and <command>df</command>
+ commands show different amounts of disk space available.
+ What is going on?</para>
+ </question>
+
+ <answer>
+ <para>You need to understand what <command>du</command> and
+ <command>df</command> really do. <command>du</command>
+ goes through the directory tree, measures how large each
+ file is, and presents the totals. <command>df</command>
+ just asks the filesystem how much space it has left. They
+ seem to be the same thing, but a file without a directory
+ entry will affect <command>df</command> but not
+ <command>du</command>.</para>
+
+ <para>When a program is using a file, and you delete the
+ file, the file is not really removed from the filesystem
+ until the program stops using it. The file is immediately
+ deleted from the directory listing, however. You can see
+ this easily enough with a program such as
+ <command>more</command>. Assume you have a file large
+ enough that its presence affects the output of
+ <command>du</command> and <command>df</command>. (Since
+ disks can be so large today, this might be a
+ <emphasis>very</emphasis> large file!) If you delete this
+ file while using <command>more</command> on it,
+ <command>more</command> does not immediately choke and
+ complain that it cannot view the file. The entry is
+ simply removed from the directory so no other program or
+ user can access it. <command>du</command> shows that it
+ is gone &mdash; it has walked the directory tree and the file
+ is not listed. <command>df</command> shows that it is
+ still there, as the filesystem knows that
+ <command>more</command> is still using that space. Once
+ you end the <command>more</command> session,
+ <command>du</command> and <command>df</command> will
+ agree.</para>
+
+ <para>Note that Soft Updates can delay the freeing of disk
+ space; you might need to wait up to 30 seconds for the
+ change to be visible!</para>
+
+ <para>This situation is common on web servers. Many people
+ set up a FreeBSD web server and forget to rotate the log
+ files. The access log fills up <filename>/var</filename>.
+ The new administrator deletes the file, but the system
+ still complains that the partition is full. Stopping and
+ restarting the web server program would free the file,
+ allowing the system to release the disk space. To prevent
+ this from happening, set up &man.newsyslog.8;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="add-swap-space">
+ <para>How can I add more swap space?</para>
+ </question>
+
+ <answer>
+ <para>In the <ulink
+ url="&url.books.handbook;/config-tuning.html">Configuration and
+ Tuning</ulink> section of the Handbook, you will find a
+ <ulink
+ url="&url.books.handbook;/adding-swap-space.html">section</ulink>
+ describing how to do this.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="manufacturer-disk-size">
+ <para>Why does &os; see my disk as smaller than the
+ manufacturer says it is?</para>
+ </question>
+
+ <answer>
+ <para>Disk manufacturers calculate gigabytes as a billion bytes
+ each, whereas &os; calculates them as 1,073,741,824 bytes
+ each. This explains why, for example, &os;'s boot messages
+ will report a disk that supposedly has 80GB as holding
+ 76319MB.</para>
+ <para>Also note that &os; will (by default)
+ <link linkend="disk-more-than-full">reserve</link> 8% of the disk
+ space.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="disk-more-than-full">
+ <para>How is it possible for a partition to be more than 100%
+ full?</para>
+ </question>
+
+ <answer>
+ <para>A portion of each UFS partition (8%, by default) is
+ reserved for use by the operating system and the
+ <username>root</username> user.
+ &man.df.1; does not count that space when
+ calculating the <literal>Capacity</literal> column, so it can
+ exceed 100%. Also, you will notice that the
+ <literal>Blocks</literal> column is always greater than the
+ sum of the <literal>Used</literal> and
+ <literal>Avail</literal> columns, usually by a factor of
+ 8%.</para>
+
+ <para>For more details, look up the <option>-m</option> option
+ in &man.tunefs.8;.</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+
+ <chapter id="admin">
+ <chapterinfo>
+ <author>
+ <firstname>Wei-Hon</firstname>
+ <surname>Chen</surname>
+ <affiliation>
+ <address><email>plasmaball@pchome.com.tw</email></address>
+ </affiliation>
+ </author>
+ </chapterinfo>
+
+ <title>系統管理</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="startup-config-files">
+ <para>系統起始設定檔在哪?</para>
+ </question>
+
+ <answer>
+
+ <para>從 2.0.5R 到 2.2.1R,主要的設定檔是
+ <filename>/etc/sysconfig</filename>。所有的選項都被指定在這個檔,
+ 而其他像 <filename>/etc/rc</filename> (參見 &man.rc.8;)
+ 和 <filename>/etc/netstart</filename> 只是引用它。</para>
+
+ <para>觀察 <filename>/etc/sysconfig</filename> 這個檔並修正其值以
+ 適合你的系統。這個檔用註解填滿以表示何處該放置什麼設定。</para>
+
+ <para>在 post-2.2.1 以後及 3.0,<filename>/etc/sysconfig</filename>
+ 亦更名為一個更容易描述的檔名叫 &man.rc.conf.5; ,並且語法簡化了些。
+ <filename>/etc/netstart</filename> 亦更名為
+ <filename>/etc/rc.network</filename> 因此所有的檔案都可以用
+ <command>cp /usr/src/etc/rc* /etc</command> 來拷貝。</para>
+
+ <para>在 3.1 以及,<filename>/etc/rc.conf</filename> 被移到
+ <filename>/etc/defaults/rc.conf</filename>。
+ <emphasis>千萬不要編輯這個檔!</emphasis> 如果
+ <filename>/etc/defaults/rc.conf</filename> 內有想要更動的項目,
+ 你應該將那一行的內容拷貝到 <filename>/etc/rc.conf</filename>,
+ 然後再修改它。</para>
+
+ <para>例如 FreeBSD 3.1 及以後的版本內,有一個 DNS 伺服器 named,
+ 而你想要啟動它。你所需要作的事就是:</para>
+ <screen>&prompt.root; <userinput>echo named_enable="YES" &gt;&gt; /etc/rc.conf</userinput></screen>
+
+ <para>想要在 FreeBSD 3.1 及以後的版本中,啟動本地端服務的話,將
+ shell script 置於 <filename>/usr/local/etc/rc.d</filename> 目錄
+ 下。這些 shell script 應該設定成可執行,並且檔名以 .sh 結束。
+ 在 FreeBSD 3.0 及更早的版本中,你應該直接編輯
+ <filename>/etc/rc.local</filename> 檔。</para>
+
+ <para><filename>/etc/rc.serial</filename>用來初始化序列埠
+ (像是鎖定埠的特性等)。</para>
+
+ <para><filename>/etc/rc.i386</filename> 是 Intel 專用設定,
+ 像是 iBCS2 模擬或是 PC 系統主控台設定。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="adding-users">
+ <para>該如何簡單地新增帳號?</para>
+ </question>
+
+ <answer>
+ <para>使用 &man.adduser.8; 指令。如果需要更複雜的使用方式,
+ 請用 &man.pw.8; 這個指令。</para>
+
+ <para>要再次移除使用者,使用 &man.rmuser.8; 指令。還有,
+ &man.pw.8; 也可以使用。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="root-not-found-cron-errors">
+ <para>在改完 crontab 檔案後,為什麼老是收到這樣的訊息:
+ <errorname>root: not found</errorname>?</para>
+ </question>
+
+ <answer>
+ <para>通常都是因為編輯了系統的 crontab
+ (<filename>/etc/crontab</filename>) 然後就用 &man.crontab.1;
+ 去安裝它:</para>
+
+ <screen>&prompt.root; <userinput>crontab /etc/crontab</userinput></screen>
+
+ <para>這樣作是不對的。系統的 crontab 和 &man.crontab.1;
+ 所更新的使用者的 crontab 格式並不一樣 (&man.crontab.5;
+ 說明文件針對差異處有詳細的說明)。</para>
+
+ <para>如果你已經用這種方法,額外多出的 crontab 只就是
+ <filename>/etc/crontab</filename> 的拷貝,只是格式是錯誤的。
+ 可用以下的命令刪除:</para>
+
+ <screen>&prompt.root; <userinput>crontab -r</userinput></screen>
+
+ <para>下次你編輯 <filename>/etc/crontab</filename> 檔案的時候,
+ 你不用作任何動作去通知 &man.cron.8; ,它自動會去偵測是否有更動。
+ </para>
+
+ <para>如果你想要每天、每週、或是每月固定執行某些動作一次,也許加個
+ shell script 在 <filename>/usr/local/etc/periodic</filename>
+ 目錄下會更好,系統的 cron 會固定執行 &man.periodic.8; 命令,
+ 它可將你的程式和其它的系統週期性工作一起執行。</para>
+
+ <para>這個錯誤的真正原因,是因為系統的 crontab 有一個額外的欄位,
+ 說明該命令要以什麼使用者身份執行。在 FreeBSD 的預設系統 crontab
+ 中,所有的項目都是 <username>root</username>。 當這個 crontab
+ 被當作是 <username>root</username> 的使用者 crontab (它和系統的
+ crontab 是 <emphasis>不</emphasis> 一樣的),&man.cron.8; 會以為
+ <literal>root</literal> 字串是欲執行的命令的第一個字,但是實際上
+ 並沒有這樣的命令存在。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="su-wheel-group">
+ <para>為什麼我想要用 su 成為 <username>root</username> 時,會得到
+ <errorname>you are not in the correct group to su root</errorname>
+ 的錯誤訊息?</para>
+ </question>
+
+ <answer>
+ <para>這是一個安全特性。想要利用 su 成為 <username>root</username>
+ (或其它有 superuser 權限的帳號),你一定要在
+ <groupname>wheel</groupname> 群組內。如果沒有這個特性的話,
+ 任何人只要在系統裡有帳號,並且恰巧知道 <username>root</username>
+ 的密碼,就可以取得 superuser 等級的權限以存取系統。有了這個特性,
+ 這樣的情況就不會發生;如果使用者不在 <groupname>wheel</groupname>
+ 群組內的話,&man.su.1; 會讓他們連試著鍵入密碼的機會都沒有。</para>
+
+ <para>要讓某人可以利用 su 成為 <username>root</username> 的話,
+ 只要把他們放入 <groupname>wheel</groupname> 群組內即可。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="rcconf-readonly">
+ <para>我在 <filename>rc.conf</filename> 還是某個起動檔案裡犯了錯誤,
+ 因為檔案系統變成唯讀的,我無法去編輯它。我該怎麼辦?</para>
+ </question>
+
+ <answer>
+ <para>當電腦問你 shell 完整路徑名時,只要按 <literal>ENTER
+ </literal>,然後執行 <command>mount /</command> 以讀寫模式
+ 重新掛載根檔案系統。你也許需要執行 <command>mount -a -t ufs
+ </command>,將你慣用的文字編輯器所在的檔案系統掛載上來。如果
+ 你慣用的文字編輯器在網路檔案系統上的話,你必須先手動將網路設定
+ 起來,以便將網路檔案系統掛載上來,或是使用本地端檔案系統上的
+ 編輯器,例如 &man.ed.1;。</para>
+
+ <para>如果你想要使用像 &man.vi.1; 或是 &man.emacs.1; 等的全螢幕
+ 文字編輯器的話,你也需要執行
+ <command>export TERM=cons25 </command>,以便讓這些編輯器能夠從
+ &man.termcap.5; 資料庫裡讀取正確的資料。</para>
+
+ <para>當你已經完成了這些步驟後,你可以照你平常修改文法錯誤的方式
+ 去編輯 <filename>/etc/rc.conf</filename> 檔案。在核心 (kernel)
+ 啟動時所顯示的錯誤訊息,能夠告訴你檔案中哪一行有錯誤。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="printer-setup">
+ <para>為什麼我沒辦法設定我的印表機?</para>
+ </question>
+
+ <answer>
+ <para>請參考一下 Handbook 中,有關列印的部份。它應該能夠解決
+ 你大部份的問題。請參考 <ulink url="../handbook/printing.html">
+ Handbook 中的列印部份</ulink>。</para>
+
+ <para>有些印表機需要主機支援的驅動程式 (host-based driver) 才能
+ 執行任何列印功能。FreeBSD 本身並不支援這些所謂的
+ <quote>WinPrinters</quote>。 如果你的印表機無法在 DOS 或
+ Windows NT 4.0 下執行,那它大概就是一台 WinPrinter。你唯一能使用
+ 這樣的印表機的希望,就是試試 <filename role="package">
+ print/pnm2ppa</filename> 支不支援它了。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="keyboard-mappings">
+ <para>我要怎麼樣修正我的系統所使用的鍵盤對映 (keyboard mapping)?
+ </para>
+ </question>
+
+ <answer>
+ <para>請參考 Handbook 中的 <ulink
+ url="../handbook/using-localization.html">using localization
+ </ulink> 章節,尤其是 <ulink
+ url="../handbook/using-localization.html#SETTING-CONSOLE">console
+ setup</ulink> 章節。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="pnp-resources">
+ <para>為什麼我在系統啟動時,得到 <errorname>unknown: &lt;PNP0303&gt;
+ can't assign resources</errorname> 的訊息?</para>
+ </question>
+
+ <answer>
+ <para>以下是從 &os.current; 通信論壇的一篇文章中節錄出來的。</para>
+
+ <blockquote>
+ <attribution>&a.wollman;, 2001 年四月 24 日</attribution>
+
+ <para><quote>無法指派資源 (can't assign resources)</quote> 訊息表示
+ 那些裝置是傳統的 ISA 裝置,而核心中已經編入不認得 PNP 的驅動程
+ 式。這些裝置包括鍵盤控制器,可程式化岔斷控制晶片,還有幾個標準
+ 設備。資源無法指派給這些裝置,是因為早已有驅動程式使用那些位址
+ 了。</para>
+ </blockquote>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="user-quotas">
+ <para>為什麼 user quotas 無法正常運作?</para>
+ </question>
+
+ <answer>
+
+ <orderedlist>
+ <listitem>
+ <para>可能你 kernel 設定未加入 quotas 支援(預設是無)。如果是這樣子的話,
+ 那麼請把下面這行加到 kernel 設定檔內並重新編譯、安裝:</para>
+ <programlisting>options QUOTA</programlisting>
+
+ <para>細節部分,請參閱 Handbook 內的 <ulink url="&url.books.handbook;/quotas.html">
+ quotas</ulink> 章節。</para>
+ </listitem>
+
+ <listitem>
+ <para>請不要直接在 <filename>/</filename> 打開 quotas </para>
+ </listitem>
+
+ <listitem>
+ <para>把 quotas 檔放在它必須強迫置入的檔案系統內,舉例:</para>
+
+ <informaltable frame="none">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>檔案系統</entry>
+ <entry>Quota 檔</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><filename>/usr</filename></entry>
+ <entry><filename>/usr/admin/quotas</filename></entry>
+ </row>
+
+ <row>
+ <entry><filename>/home</filename></entry>
+ <entry><filename>/home/admin/quotas</filename></entry>
+ </row>
+
+ <row>
+ <entry>&hellip;</entry>
+ <entry>&hellip;</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </listitem>
+ </orderedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="sysv-ipc">
+ <para>FreeBSD 支援 System V IPC 格式指令集?</para>
+ </question>
+
+ <answer>
+ <para>是的,FreeBSD 支援 System V-style IPC。這包括共享記憶體,
+ 訊息跟信號。你需要在你的 kernel 設定檔內加入下列幾行以啟動它們。</para>
+
+ <programlisting>options SYSVSHM # enable shared memory
+options SYSVSEM # enable for semaphores
+options SYSVMSG # enable for messaging</programlisting>
+
+ <note>
+ <para>在 FreeBSD 3.2 以及之後的版本,這些選項已經是
+ <emphasis>GENERIC</emphasis> 核心的一部份,也就是說它們已
+ 經編進了你的系統中。</para>
+ </note>
+
+ <para>重新編譯並安裝。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="uucpmail">
+ <para>我該如何讓 sendmail 透過 UUCP 來遞送郵件?</para>
+ </question>
+
+ <answer>
+ <para>跟隨 FreeBSD 套裝而來的 sendmail 設定是適合那些直接連上網際網路
+ 的站台。想透過 UUCP 交換郵件的站台必須另外安裝 sendmail 的設定檔案。
+ </para>
+
+ <para>手動修改 <filename>/etc/sendmail.cf</filename> 是絕對必要的。
+ 第 8 版的 sendmail 提供一個全新的入口以透過一些像 &man.m4.1;
+ 的處理就能產生設定檔,這事實上是一個高層概念等級的技巧性設定。
+ 你應該可以在 <filename>/usr/src/usr.sbin/sendmail/cf</filename>
+ 以下裡使用它:</para>
+
+ <para>假如你不是用 full sources 方式安裝系統,那麼 sendmail
+ 設定項目可能已經分散成好幾個來源分布檔在等著你,假設你已經
+ mount 光碟機,做以下動作:</para>
+
+ <screen>&prompt.root; <userinput>cd /cdrom/src</userinput>
+&prompt.root; <userinput>cat scontrib.?? | tar xzf - -C /usr/src contrib/sendmail</userinput></screen>
+
+ <para>別驚慌,這只有數十萬個位元組的大小。在 <filename>cf</filename>
+ 目錄裡的 <filename>README</filename> 可以提供一個 m4 設定法的基
+ 本介紹。</para>
+
+ <para>以 UUCP 遞送來說,建議你最好使用 <literal>mailertable</literal>
+ 特點。建構一個資料庫讓 sendmail 可以使用它自己的路徑決策。</para>
+
+ <para>首先,你必須建立自己的 <filename>.mc</filename> 檔。
+ <filename>/usr/src/usr.sbin/sendmail/cf/cf</filename> 目錄是這些
+ 檔案的家。查看一下,已經有好幾個範例檔,假設你已經命名自己的檔叫
+ <filename>foo.mc</filename>,你要做的只是把它轉換成一個有效的
+ <filename>sendmail.cf</filename>:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/src/usr.sbin/sendmail/cf/cf</userinput>
+&prompt.root; <userinput>make foo.cf</userinput>
+&prompt.root; <userinput>cp foo.cf /etc/mail/sendmail.cf</userinput></screen>
+
+ <para>一個典型的 <filename>.mc</filename> 檔看起來可能像這樣:</para>
+
+ <programlisting>VERSIONID(`<replaceable>Your version number</replaceable>')
+OSTYPE(bsd4.4)
+
+FEATURE(accept_unresolvable_domains)
+FEATURE(nocanonify)
+FEATURE(mailertable, `hash -o /etc/mail/mailertable')
+
+define(`UUCP_RELAY', <replaceable>your.uucp.relay</replaceable>)
+define(`UUCP_MAX_SIZE', 200000)
+define(`confDONT_PROBE_INTERFACES')
+
+MAILER(local)
+MAILER(smtp)
+MAILER(uucp)
+
+Cw <replaceable>your.alias.host.name</replaceable>
+Cw <replaceable>youruucpnodename.UUCP</replaceable></programlisting>
+
+ <para><literal>accept_unresolvable_domains</literal>,
+ <literal>nocanonify</literal>, 和
+ <literal>confDONT_PROBE_INTERFACES</literal> 特性將避免任何在
+ 遞送郵件時會用到 DNS 的機會。<literal>UUCP_RELAY</literal>
+ 項目的出現理由很奇怪,就不要問為何了。簡單的放入一個網際網路
+ 上可以處理 .UUCP 虛擬網域位址的主機名稱;通常,你只需要在這
+ 裡填入你 ISP 的信件回覆處 (mail replay)。</para>
+
+ <para>你已經做到這裡了,你還需要這個叫
+ <filename>/etc/mail/mailertable</filename>。如果你只有一個用
+ 來傳遞所有郵件的對外通道的話,以下的檔案就足夠了:</para>
+
+ <programlisting>#
+# makemap hash /etc/mail/mailertable.db &lt; /etc/mail/mailertable
+ uucp-dom:<replaceable>your.uucp.relay</replaceable></programlisting>
+
+ <para>另一個更複雜的例子看起來像這樣:</para>
+
+ <programlisting>#
+# makemap hash /etc/mail/mailertable.db &lt; /etc/mail/mailertable
+#
+horus.interface-business.de uucp-dom:horus
+interface-business.de uucp-dom:if-bus
+interface-business.de uucp-dom:if-bus
+heep.sax.de smtp8:%1
+horus.UUCP uucp-dom:horus
+if-bus.UUCP uucp-dom:if-bus
+ uucp-dom:</programlisting>
+
+
+ <para>如你所見,這是某個真實檔案裡的一部份。首三行處理網域定址信件
+ 不應該被送出到內定路徑,而由某些 UUCP 鄰居(UUCP neighbor)取代
+ 的特殊情形,這是為了 <quote>縮短</quote>遞送的路徑。下一行處理到
+ 本地乙太網路網域的信件讓它可以使用 SMTP 來遞送。最後,UUCP 鄰居提到
+ .UUCP 虛擬網域的記載,允許一個 <literal><replaceable>uucp-neighbor
+ </replaceable>!<replaceable>recipient</replaceable></literal> 推翻
+ 內定規則。最後一行則以一個單獨的句點做結束,以 UUCP 遞送到提供當
+ 你全世界性郵件閘門的UUCP 鄰居。所有在 <literal>uucp-dom:</literal>
+ 關鍵字裡的節點名稱必須都是有效的 UUCP 鄰居,你可以用
+ <literal>uuname</literal> 命令去確認。
+ </para>
+
+ <para>提醒你這個檔案在使用前必須被轉換成 DBM 資料庫檔案,最好在
+ mailertable 最上面用註解寫出命令列來完成這個工作。當你每次更換你
+ 的 mailertable 後你總是需要執行這個命令。</para>
+
+ <para>最後提示:如果你不確定某些特定的信件路徑可用,記得把
+ <option>-bt</option> 選項加到 sendmail。這會將 sendmail 啟動在
+ <emphasis>address test mode</emphasis>;只要按下
+ <literal>0</literal>,接著輸入你希望測試的信件路徑位址。
+ 最後一行告訴你使用內部的信件代理程式,代理程式的會通知目的主機,
+ 以及(可能轉換的)位址。要離開此模式請按 Control-D。</para>
+
+ <screen>&prompt.user; <userinput>sendmail -bt</userinput>
+ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
+Enter &lt;ruleset&gt; &lt;address&gt;
+<prompt>&gt;</prompt> <userinput>3,0 foo@example.com</userinput>
+canonify input: foo @ example . com
+..
+parse returns: $# uucp-dom $@ <replaceable>your.uucp.relay</replaceable> $: foo &lt; @ example . com . &gt;
+<prompt>&gt;</prompt> <userinput>^D</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ispmail">
+ <para>當我用撥接連上網路時該怎麼設定信件遞送?</para>
+ </question>
+
+ <answer>
+ <para>如果你已經有一個固定的 IP 數字,你不需要調整任何內定值。設好
+ 你要指定的網路名稱,其他的 sendmail 都會幫你做完。</para>
+
+ <para>如果你拿到的是動態配置的 IP 數字而使用撥接 ppp 連接到網際網
+ 路,你可能已經在你的 ISP 信件主機上有一個信箱。假設你的 ISP 網域
+ 是 <hostid role="domainname">example.net</hostid>,你的使用者名
+ 稱是 <username>user</username>。亦假設你稱自己的主機名稱是
+ <hostid role="fqdn">bsd.home</hostid> 而你的 ISP 告訴你可以使用
+ <hostid role="fqdn">relay.example.net</hostid> 當作信件回覆處。
+ </para>
+
+ <para>為了從你的信箱接收信件,你將需要安裝取信程式以便從信箱取回信件。
+ <application>Fetchmail</application> 是一個不錯的選擇,因為它支
+ 援許多不同的通訊協定,通常你的 ISP 會提供 POP3。如果你選擇使用
+ user-ppp,你可以在連線到網路成功後自動抓取你的信件,只要在
+ <filename>/etc/ppp/ppp.linkup</filename>裡面設定以下這項:</para>
+
+ <programlisting>MYADDR:
+ !bg su user -c fetchmail</programlisting>
+
+ <para>假使你正使用 <application>sendmail</application> (如下所示)
+ 傳送信件到非本地帳號,置入以下命令:</para>
+
+ <programlisting> !bg su user -c "sendmail -q"</programlisting>
+
+ <para>在上面那項命令之後。這會強迫 <application>sendmail</application>
+ 在連接上網路後馬上開始處理 mailqueue。</para>
+
+ <para>我假設你在 <hostid role="fqdn">bsd.home</hostid> 機器上有一個
+ <username>user</username> 的帳號。在 <hostid
+ role="fqdn">bsd.home</hostid> 機器上 <username>user</username>
+ 的家目錄裡建立一個 <filename>.fetchmailrc</filename> 的檔案:</para>
+
+ <programlisting>poll example.net protocol pop3 fetchall pass MySecret</programlisting>
+
+ <para>無須贅言,這個檔除了 <username>user</username> 外不應該被任
+ 何人讀取,因為它包含 <literal>MySecret</literal> 這個密碼。</para>
+
+ <para>為了在寄信時有正確的抬頭 <literal>from:</literal>,你必須告訴
+ <application>sendmail</application> 使用
+ <literal>user@example.net</literal> 而非
+ <literal>user@bsd.home</literal>。你可能會希望告訴
+ <application>sendmail</application> 從
+ <hostid role="fqdn">relay.example.net</hostid> 送出所有信件,
+ 加快信件傳送。</para>
+
+ <para>以下的 <filename>.mc</filename> 檔應能滿足你的要求:</para>
+
+ <programlisting>VERSIONID(`bsd.home.mc version 1.0')
+OSTYPE(bsd4.4)dnl
+FEATURE(nouucp)dnl
+MAILER(local)dnl
+MAILER(smtp)dnl
+Cwlocalhost
+Cwbsd.home
+MASQUERADE_AS(`example.net')dnl
+FEATURE(allmasquerade)dnl
+FEATURE(masquerade_envelope)dnl
+FEATURE(nocanonify)dnl
+FEATURE(nodns)dnl
+define(`SMART_HOST', `relay.example.net')
+Dmbsd.home
+define(`confDOMAIN_NAME',`bsd.home')dnl
+define(`confDELIVERY_MODE',`deferred')dnl</programlisting>
+
+ <para>如何轉換這個 <filename>.mc</filename> 檔案到
+ <filename>sendmail.cf</filename> 檔的詳細細節,請參考上一節。
+ 另外,在更新 <filename>sendmail.cf</filename> 以後不要忘記重新啟動
+ <application>sendmail</application>。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="sendmail-alternative">
+ <para>除了 Sendmail 外,還有哪些郵件伺服器可以使用呢?</para>
+ </question>
+
+ <answer>
+ <para><ulink url="http://www.sendmail.org/">Sendmail</ulink>
+ 是 FreeBSD 預設使用的郵件伺服器,但是你還是可以很容易地以其它
+ 郵件伺服器 (例如,從 port 安裝的郵件伺服器) 取代之。</para>
+
+ <para>port 裡有很多可供選擇的郵件伺服器,像
+ <filename role="package">mail/exim</filename>、
+ <filename role="package">mail/postfix</filename>、
+ <filename role="package">mail/qmail</filename>、
+ <filename role="package">mail/zmailer</filename> 等,
+ 就是幾個很受歡迎的選擇。</para>
+
+ <para>多樣選擇是好事,而且大家有許多郵件伺服器可以使用也被認為是
+ 好事;所以請避免在通信論壇裡問像 <quote>Sendmail 有比 Qmail
+ 好嗎?</quote> 這樣的問題。如果你真的很想問的話,請先到通信論壇
+ archive 裡找一下。每一個郵件伺服器的優點與缺點,以前大概就已經
+ 討論好幾次了。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="forgot-root-pw">
+ <para>我忘了 <username>root</username> 密碼了!怎麼辦?</para>
+ </question>
+
+ <answer>
+ <para>不要驚慌!只要重新啟動系統,在看到 Boot: 時輸入
+ <userinput>boot -s</userinput> 即可進入單使用者模式
+ (在 3.2-RELEASE 之前的版本請改用 <userinput>-s</userinput>)。
+ 在問要使用哪個 shell 時,按下 ENTER。你會看到一個 &prompt.root;
+ 的提示號,輸入 <command>mount -u /</command> 以重新掛上(mount)
+ 你的根檔案系統可供讀/寫。執行 <command>passwd root</command>
+ 以更換 <username>root</username> 密碼,然後執行 &man.exit.1;
+ 繼續啟動程序。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="CAD-reboot">
+ <para>我該怎麼讓 Control-Alt-Delete 不會重新啟動系統?</para>
+ </question>
+
+ <answer>
+ <para>如果你是使用 FreeBSD 2.2.7-RELEASE 或之後版本的
+ syscons(系統內定的主控台驅動程式),把下列這行放到 kernel 設定檔內,
+ 然後重做一個新的核心:</para>
+
+ <programlisting>options SC_DISABLE_REBOOT</programlisting>
+
+ <para>若是使用 FreeBSD 2.2.5-RELEASE 或之後版本的 PCVT 主控台驅動
+ 程式,則以下列選項代替:</para>
+
+ <programlisting>options PCVT_CTRL_ALT_DEL</programlisting>
+
+ <para>其他更早期的 FreeBSD 版本,請修改你正在使用的主控台鍵盤對應,
+ 並將所有 <literal>boot</literal> 關鍵字以 <literal>nop</literal>
+ 取代。內定的鍵盤對應是在
+ <filename>/usr/share/syscons/keymaps/us.iso.kbd</filename>。
+ 你可能需要明白的吩咐 <filename>/etc/rc.conf</filename> 去讀取
+ 這個鍵盤對應以確保更動生效。當然如果你正在用適合你國籍的鍵盤對應,
+ 你應該編輯那一個。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="dos-to-unix-txt">
+ <para>我該怎麼把 DOS 文字檔案重新格式化成 UNIX 的?</para>
+ </question>
+
+ <answer>
+ <para>只要使用這個 perl 命令:</para>
+
+ <screen>&prompt.user; <userinput>perl -i.bak -npe 's/\r\n/\n/g' file ...</userinput></screen>
+
+ <para>file 就是要處理的檔案。這個修改是在內部完成,原始的檔案會儲存成
+ 副檔名為 .bak 的檔案。</para>
+
+ <para>或者你可以使用 &man.tr.1; 這個命令:</para>
+
+ <screen>&prompt.user; <userinput>tr -d '\r' &lt; <replaceable>dos-text-file</replaceable> &gt; <replaceable>unix-file</replaceable></userinput></screen>
+
+ <para><replaceable>dos-text-file</replaceable> 是包含 DOS 文字的
+ 檔案,而 <replaceable>unix-text-file</replaceable> 則是包含轉換
+ 的輸出結果。這比使用 perl 還要快上一點點。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="kill-by-name">
+ <para>我該怎麼用名稱砍掉 process?</para>
+ </question><answer>
+
+ <para>使用 &man.killall.1; 。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="root-acl">
+ <para>為何在 su 一直說我不在 <username>root</username> 的 ACL 裡?
+ </para>
+ </question>
+
+ <answer>
+ <para>這個錯誤是因為 Kerberos 分散認證系統。這個問題並不是很嚴重
+ 但是令人厭煩。你可以用 -K 選項去執行 su,或是像下個問題所描述的
+ 移除 Kerberos。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="uninstall-kerberos">
+ <para>我該怎麼移除 Kerberos?</para>
+ </question>
+
+ <answer>
+ <para>要從系統裡移除 Kerberos,重裝你正在執行的 release 版本的
+ bin distribution。如果你有 CDROM,你可以 mount cd(假設在 /cdrom)
+ 並執行:</para>
+
+ <screen>&prompt.root; <userinput>cd /cdrom/bin</userinput>
+&prompt.root; <userinput>./install.sh</userinput></screen>
+
+ <para>或者你也可以將 <filename>/etc/make.conf</filename> 裡的
+ "MAKE_KERBEROS" 選項全都拿掉,然後再 build world.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="add-pty">
+ <para>我該怎麼增加系統的虛擬終端機?</para>
+ </question>
+
+ <answer>
+ <para>如果你有許多 telnet,ssh,X 或是 screen 使用者,你或許會用完
+ 虛擬終端機,這能教你怎麼加更多:</para>
+
+ <procedure>
+ <step>
+ <para>建立並安裝一個新的 kernel 並且把這一行</para>
+
+ <programlisting>pseudo-device pty 256</programlisting>
+
+ <para>加入到設定檔裡。</para>
+ </step>
+
+ <step>
+ <para>執行這個命令:</para>
+
+ <screen>&prompt.root; <userinput>cd /dev</userinput>
+&prompt.root; <userinput>sh MAKEDEV pty{1,2,3,4,5,6,7}</userinput></screen>
+
+ <para>會造出 256 個虛擬終端機的裝置節點。</para>
+
+ </step>
+
+ <step>
+ <para>編輯 <filename>/etc/ttys</filename> 並加入符合 256
+ 個終端機的行數。它們應該符合已經存在單項的格式,舉例來說,
+ 它們看起來像:</para>
+
+ <programlisting>ttyqc none network</programlisting>
+
+ <para>字母設計的順序是
+ <literal>tty[pqrsPQRS][0-9a-v]</literal>,使用正規表示式。
+ </para>
+ </step>
+
+ <step>
+ <para>用新的 kernel 重新啟動電腦就可以了。</para>
+ </step>
+ </procedure>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="create-snd0">
+ <para>/dev/snd0 這個裝置做不出來!</para>
+ </question>
+
+ <answer>
+ <para>並沒 <devicename>snd</devicename> 這個裝置的存在。這個名字
+ 是用來當作各個組成 FreeBSD 聲音驅動程式組,諸如
+ <devicename>mixer</devicename>,
+ <devicename>sequencer</devicename>,以及
+ <devicename>dsp</devicename> 的簡稱。</para>
+
+ <para>可以用以下的命令作出這些裝置:</para>
+
+ <screen>&prompt.root; <userinput>cd /dev</userinput>
+&prompt.root; <userinput>sh MAKEDEV snd0</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="reread-rc">
+ <para>可以不用開機,重新讀取 <filename>/etc/rc.conf</filename>、
+ 再次啟動 <filename>/etc/rc</filename> 嗎?</para>
+ </question>
+
+ <answer>
+ <para>先進入單人使用者模式,然後再回到多使用者模式。</para>
+
+ <para>在主控台執行:</para>
+
+ <screen>&prompt.root; <userinput>shutdown now</userinput>
+(Note: without -r or -h)
+
+&prompt.root; <userinput>return</userinput>
+&prompt.root; <userinput>exit</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="release-candidate">
+ <para>我想要把我的系統昇級到最新的 -STABLE,但是得到的是 -RC 或
+ -PRERELEASE!怎麼了?</para>
+ </question>
+
+ <answer>
+ <para>簡單地說:那只是名字而已。RC 的意思是 <quote>Release Candiate,
+ 發行候選版本</quote>,它表示新版本快要發行了。在 FreeBSD 中,
+ -PRERELEASE 通常是發行前的程式碼凍結的代名詞。(有些發行版本中,
+ -BETA 標籤跟 -PRERELEASE 是相同意思的。)</para>
+
+ <para>詳細地說:FreeBSD 從兩個地方分支出它的發行版本。主版號、
+ 點零、release (例如 3.0-RELEASE 及 4.0-RELEASE) 的,是從發展過程
+ 開始時分支出來的,通常稱為 <link linkend="current">-CURRENT
+ </link>。有副版號的版本 (例如 3.1-RELEASE 或 4.2-RELEASE),是
+ 活躍的 <link linkend="stable">-STABLE</link> 分支中的發行版本
+ 快照。從 4.3-RELEASE 開始,每一個發行版本有它自己的分支,可為
+ 偏好極度保守的發展速度 (通常只會作安全方面的更新) 的人所用。</para>
+
+ <para>準備要製作發行版本時,其所在的分支會經過一定的程序。有一個是
+ 程式碼凍結。當程式碼凍結開始時,分支名稱會更名,以反映它快要成為
+ 一個發行版本了。舉個例子,如果原來的分支叫 4.5-STABLE,它的名字
+ 會變成 4.6-PRERELEASE 以表示程式碼已凍結,並且額外的發行前測試
+ 將要開始了。臭蟲更正仍可回報,以成為發行版本的一部份。當程式碼
+ 有了可成為發行版本的雛形時,它的名字就會變成 4.6-RC,以表示發行
+ 版本快好了。進入 RC 階段後,只有找到的最有影響的臭蟲才會被修正。
+ 當發行版本 (本例中為 4.6-RELEASE) 產生後,發行版本會有自己的分支,
+ 原分支會被更名為 4.6-STABLE。</para>
+
+ <para>想要得知更多有關版本號碼與各 CVS 分支的資訊,請參考
+ <ulink url="../../articles/releng/article.html">Release
+ Engineering</ulink> 一文。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="kernel-chflag-failure">
+ <para>我試著要安裝一個新的核心,但是無法 chflags。我該怎麼解決?
+ </para>
+ </question>
+
+ <answer>
+ <para>簡單地說:你的 securelevel 可能大於零。直接重新開機到
+ 單人模式,再安裝核心。</para>
+
+ <para>詳細地說:FreeBSD 在 securelevel 大於零情況下,不允許
+ 變更系統旗標 (system flags)。你可以用這個指令檢查你的
+ securelevel:</para>
+
+ <screen>&prompt.root; <userinput>sysctl kern.securelevel</userinput></screen>
+
+ <para>你沒有辦法降低 securelevel;你必須啟動系統到單人模式以
+ 安裝核心,或是修改 <filename>/etc/rc.conf</filename> 內的
+ securelevel 再重新開機。請參考 &man.init.8; 說明文件,以取得
+ 更多有關 securelevel 的資訊,還有 <filename>/etc/defaults/rc.conf
+ </filename> 和 &man.rc.conf.5; 說明文件,以取得更多有關 rc.conf
+ 的資訊。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="kernel-securelevel-time">
+ <para>在我的系統上,我無法變更時間超過一秒以上的範圍!
+ 我該怎麼辦?</para>
+ </question>
+
+ <answer>
+ <para>簡單地講:你系統的 securelevel 也許大於 1。直接重新開機至
+ 單人模式,然後再修改時間。</para>
+
+ <para>詳細地說:在 securelevel 大於 1 的情況下,FreeBSD 不允許時間
+ 變動大於一秒。你可以用以下的命令來檢查目前的 securelevel:</para>
+
+ <screen>&prompt.root; <userinput>sysctl kern.securelevel</userinput></screen>
+
+ <para>你無法降低 securelevel;你必須啟動電腦至單人模式下以修改時間,
+ 或是修改 <filename>/etc/rc.conf</filename> 再重新開機。請參考
+ &man.init.8; 說明文件,以取得更多有關 securelevel 的資訊,還有
+ <filename>/etc/defaults/rc.conf</filename> 和 &man.rc.conf.5;
+ 說明文件,以取得更多有關 rc.conf 的資訊。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="statd-mem-leak">
+ <para>為什麼 <command>rpc.statd</command> 用了 256 megabytes
+ 的記憶體?</para>
+ </question>
+
+ <answer>
+ <para>不,那不是 memory leak,而且它也不是真的用了 256 Mbyte
+ 的記憶體。它只是喜歡 (意思就是總會這樣作) 將一狗票的記憶體
+ 映謝到它自己的位址空間,以方便作事。就技術而言,這樣並沒有
+ 什麼不對;這樣只是會讓 &man.top.1; 和 &man.ps.1; 嚇一大跳而已。
+ </para>
+
+ <para>&man.rpc.statd.8; 會將它的狀態檔案 (位於 <filename>/var
+ </filename>) 映射至它的位址空間裡;為了防止需要的時候再增大所
+ 導致的重新映射,它一次會使用相當大的大小。從程式碼來看的話就
+ 更明顯了,可以看到 &man.mmap.2; 的長度參數為 <literal>0x10000000
+ </literal>,它是 IA32 架構上的十六分之一的定址空間,也就是
+ 256MB。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="unsetting-schg">
+ <para>為什麼我沒辦法取消 <literal>schg</literal> 檔案旗標?</para>
+ </question>
+
+ <answer>
+ <para>你正在一個提高了 securelevel (也就是大於 0) 的系統運作。
+ 降低 securelevel 再試試看。請參考 <link linkend="securelevel">
+ FAQ 中對 securelevel 的說明</link> 和 &man.init.8; 說明文件。
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ssh-shosts">
+ <para>為什麼近來的新版 FreeBSD 預設無法利用 <filename>.shosts
+ </filename> 完成 SSH 認證?</para>
+ </question>
+
+ <answer>
+ <para>為什麼近來新版 FreeBSD <filename>.shosts</filename> 認證預設
+ 為取消的原因,是因為 &man.ssh.1; 預設不安裝為 suid 成 <username>
+ root</username>。要 <quote>修正</quote> 這點,你可以作下列的
+ 任何一件事:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>要一勞永逸解決,請將 <filename>/etc/make.conf</filename>
+ 裡的 <makevar>ENABLE_SUID_SSH</makevar> 設成 <literal>true
+ </literal>,然後再重新 build ssh (或是執行 <command>make
+ world</command>)。</para>
+ </listitem>
+
+ <listitem>
+ <para>只作一時的修正的話,可以 <username>root</username> 身份
+ 執行 <command>chmod 4755 /usr/bin/ssh</command> 將
+ <filename>/usr/bin/ssh</filename> 設成 <literal>4555
+ </literal>。然後將 <makevar>ENABLE_SUID_SSH= true</makevar>
+ 加入 <filename>/etc/make.conf</filename> 裡,這樣下次
+ <command>make world</command> 執行就會生效了。</para>
+ </listitem>
+ </itemizedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="vnlru">
+ <para>什麼是 <literal>vnlru</literal>?</para>
+ </question>
+
+ <answer>
+ <para>當系統達到上限 <varname>kern.maxvnodes</varname> 時,
+ <literal>vnlru</literal> 會清除並釋放 vnode。這個核心
+ 執行緒大部份的時間都沒事作,只有當你有很大的記憶體,而且
+ 正在存取上萬個小檔案時,才會被啟動。</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+ <chapter id="x">
+ <chapterinfo>
+ <author>
+ <firstname>Wei-Hon</firstname>
+ <surname>Chen</surname>
+ <affiliation>
+ <address><email>plasmaball@pchome.com.tw</email></address>
+ </affiliation>
+ </author>
+ </chapterinfo>
+
+ <title>X Window System 及 Virtual Consoles</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="running-X">
+ <para>我想要執行 X ,我該怎麼做?</para>
+ </question>
+
+ <answer>
+
+ <para>最簡單的方法就是在安裝系統的時候一併安裝。</para>
+
+ <para>然後看看 &man.xorgconfig.1; 的文件,這個程式可以
+ 幫您設定 &xorg; 相關設定,使它能夠正確運用您的顯示卡、滑鼠等週邊。此外,還可以用 &man.xorgcfg.1;
+ 的圖形介面來做相關設定。</para>
+
+ <para>您或許也想試試看 Xaccel server。詳情請看 <link linkend="xig">Xi Graphics</link>
+ 這一段。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="running-X-securelevels">
+ <para>我 <emphasis>試著</emphasis> 要執行 X, 但是當我鍵入
+ <command>startx</command> 時,得到
+ <errorname>KDENABIO failed (Operation not permitted)</errorname>
+ 錯誤。我該怎麼辦?</para>
+ </question>
+
+ <answer>
+ <para>你的系統一定提高了 securelevel,對不對?在一個提高了
+ securelevel 的系統上,是絕對無法起動 X 的。想知道為什麼,
+ 請參考 &man.init.8; 說明文件。</para>
+
+ <para>所以這個問題變成:你還能怎麼辦。基本上你有兩種選擇:
+ 將你的 securelevel 設回零 (通常在 <filename>/etc/rc.conf
+ </filename> 裡面設定),或是在啟動時執行 &man.xdm.1; (在
+ securelevel 被昇高前)。</para>
+
+ <para>請參考 <xref linkend="xdm-boot"/> 以取得更多有關啟動時
+ 執行 &man.xdm.1; 的資訊。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="x-and-moused">
+ <para>為什麼我不能在 X 裡使用滑鼠?</para>
+ </question>
+
+ <answer>
+ <para>如果您用的是 syscons (內定的 console 驅動程式) 的話,您可以
+ 經由設定 FreeBSD 來讓它支援在每個 virtual console 使用滑鼠。為了
+ 避免和 X 產生衝突,syscons 使用了一個叫做
+ <devicename>/dev/sysmouse</devicename> 的虛擬裝置。所有滑鼠產生的
+ event 都會利用 moused 來寫到 sysmouse 這個裝置。如果您希望在一個
+ 或以上的 virtual console 上使用滑鼠,<emphasis>並且</emphasis>
+ 能夠使用 X 的話,請參考
+ <xref linkend="moused" remap="another section"/> 並且設定好
+ moused。</para>
+
+ <para>然後編輯 <filename>/etc/XF86Config</filename> 這個檔案,
+ 並且確認你有以下這幾行的設定。</para>
+
+ <programlisting>Section Pointer
+Protocol "SysMouse"
+Device "/dev/sysmouse"
+....</programlisting>
+
+ <para>以上的例子,適用於 XFree86 3.3.2 及其後的版本。用於更早的
+ 版本的,其 <emphasis>Protocol</emphasis> 應為
+ <emphasis>MouseSystems</emphasis>。</para>
+
+ <para>有些人比較喜歡在設定 X 的時候用
+ <devicename>/dev/mouse</devicename> 這個裝置。如果您要讓它能夠
+ 正常工作的話,您就必須把 <devicename>/dev/mouse</devicename>
+ 連結到 <devicename>/dev/sysmouse</devicename> (請參考
+ &man.sysmouse.4;):</para>
+
+ <screen>&prompt.root; <userinput>cd /dev</userinput>
+&prompt.root; <userinput>rm -f mouse</userinput>
+&prompt.root; <userinput>ln -s sysmouse mouse</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="x-and-wheel">
+ <para>滑鼠的滾輪,能在 X 裡面使用嗎?</para>
+ </question>
+
+ <answer>
+ <para>可以。不過需要設定 X client 端程式。 請參考 <ulink
+ url="http://www.inria.fr/koala/colas/mouse-wheel-scroll/">
+ Colas Nahaboo 的網頁
+ (http://www.inria.fr/koala/colas/mouse-wheel-scroll/)
+ </ulink>.</para>
+
+ <para>如果你要使用 <application>imwheel</application> 程式,
+ 只要跟著下列步驟作即可。</para>
+
+ <orderedlist>
+ <listitem>
+ <para>轉換滾輪 event
+Translate the Wheel Events</para>
+
+ <para><application>imwheel</application> 程式的運作原理,
+ 是將滑鼠的第四鍵與第五鍵轉換成按鍵 event。因為如此,所以
+ 你必須讓滑鼠驅動程式將滑輪事件轉換成第四鍵與第五鍵 event。
+ 有兩種方法可以達到目的,一是讓 &man.moused.8; 作轉換,二是
+ 讓 X 本身去作 event 轉換。</para>
+
+ <orderedlist>
+ <listitem>
+ <para>使用 &man.moused.8; 來轉換滾輪 Event</para>
+
+ <para>要讓 &man.moused.8; 來作 event 轉換,只要在
+ 執行 &man.moused.8; 的命令列中加上 <option>-z 4</option>
+ 即可。舉個例子,如果你一般都是以
+ <command>moused -p /dev/psm0</command> 來起動
+ &man.moused.8; 的話,只要改成 <command>moused -p
+ /dev/psm0 -z 4</command> 即可。如果你是在開機過程中利用
+ <filename>/etc/rc.conf</filename> 來起動 &man.moused.8;,
+ 你可以在 <filename>/etc/rc.conf</filename> 中將
+ <varname>moused_flags</varname> 上加 <option>-z 4
+ </option> 即可。</para>
+
+ <para>你現在需要讓 X 知道你的滑鼠有五個按鍵,只要在
+ <filename>/etc/XF86Config</filename> 中的
+ <quote>Pointer</quote> 區塊中加上
+ <literal>Buttons 5</literal> 這一行即可。例如,
+ 你可能在 <filename>/etc/XF86Config</filename> 中有
+ 以下的 <quote>Pointer</quote> 區塊:</para>
+
+ <example>
+
+ <title>在 XFree86 3.3.x 系列的 XF86Config 設定檔的
+ <quote>Pointer</quote> 區塊中,以 moused 作轉換
+ 的滾輪鼠的設定範例</title>
+
+ <programlisting>Section "Pointer"
+ Protocol "SysMouse"
+ Device "/dev/sysmouse"
+ Buttons 5
+EndSection</programlisting>
+ </example>
+
+ <example>
+ <title>在 XFree86 4.x 系列的 XF86Config 設定檔的
+ <quote>InputDevice</quote> 區塊中,以 X Server 作轉換
+ 的滾輪鼠的設定範例</title>
+
+ <programlisting>Section "InputDevice"
+ Identifier "Mouse1"
+ Driver "mouse"
+ Option "Protocol" "auto"
+ Option "Device" "/dev/sysmouse"
+ Option "Buttons" "5"
+EndSection</programlisting>
+ </example>
+
+ <example>
+ <title>在 <quote>.emacs</quote> 中,設定滾輪鼠的原生
+ 頁面滾動支援範例</title>
+ <programlisting>;; wheel mouse
+(global-set-key [mouse-4] 'scroll-down)
+(global-set-key [mouse-5] 'scroll-up)</programlisting>
+ </example>
+
+ </listitem>
+
+ <listitem>
+ <para>利用你的 X Server 來作滾輪 Event 轉換</para>
+
+ <para>如果你沒有執行 &man.moused.8;,或是你不想利用
+ &man.moused.8; 去作滾輪 event 轉換,你可以改用
+ X server 來作這樣的 event 轉換。你得在 <filename>
+ /etc/XF86Config</filename> 檔案中作幾個更動。第一,
+ 你要為你的滑鼠選擇適當的通訊協定。大多數的滾輪鼠都
+ 使用 <quote>IntelliMouse</quote> 協定,不過 XFree86
+ 也支援其它的通訊協定,例如羅技的 MouseMan+ 滑鼠所用的
+ <quote>MouseManPlusPS/2</quote>。當你選好之後,只要
+ 加進一行 <quote>Pointer</quote> 區塊的 <varname>
+ Protocol</varname> 變數即可。</para>
+
+ <para>第二,你要告訴 X server 將捲動事件重新對映至滑鼠的
+ 第四和第五鍵。這可以利用 <varname>ZAxisMapping</varname>
+ 選項辦到。</para>
+
+ <para>舉個例子,如果你沒有使用 &man.moused.8;,而你有一個
+ IntelliMouse 安裝在 PS/2 滑鼠埠的話,你可以在
+ <filename>/etc/XF86Config</filename> 裡使用以下的設定。
+ </para>
+
+ <example>
+ <title>在 XF86Config 設定檔的 <quote>Pointer</quote>
+ 區塊中,以 X Server 作轉換的滾輪鼠的設定範例</title>
+
+ <programlisting>Section "Pointer"
+ Protocol "IntelliMouse"
+ Device "/dev/psm0"
+ ZAxisMapping 4 5
+EndSection</programlisting>
+ </example>
+
+ <example>
+ <title>在 XFree86 4.x 系列的 XF86Config 設定檔的
+ <quote>InputDevice</quote> 區塊中,以 X Server 作轉換
+ 的滾輪鼠的設定範例</title>
+
+ <programlisting>Section "InputDevice"
+ Identifier "Mouse1"
+ Driver "mouse"
+ Option "Protocol" "auto"
+ Option "Device" "/dev/psm0"
+ Option "ZAxisMapping" "4 5"
+EndSection</programlisting>
+ </example>
+
+ <example>
+ <title>在 <quote>.emacs</quote> 中,設定滾輪鼠的原生
+ 頁面滾動支援範例</title>
+ <programlisting>;; wheel mouse
+(global-set-key [mouse-4] 'scroll-down)
+(global-set-key [mouse-5] 'scroll-up)</programlisting>
+ </example>
+
+ </listitem>
+ </orderedlist>
+ </listitem>
+
+ <listitem>
+ <para>安裝 <application>imwheel</application></para>
+
+ <para>接下來,從 Ports 裡安裝 <application>imwheel
+ </application>。在 x11 類別裡可以找到它,它可以將
+ 滾輪 event 對映到鍵盤 event。舉個例子,它可以在你
+ 將滾輪往前推時,送出一個 <keycap>Page Up</keycap>
+ 到你的應用程式去。<application>Imwheel</application>
+ 利用一個設定檔,以便對應滾輪 event 至鍵盤 event,這樣
+ 它就可以在不同的應用程式中,送出不同的鍵盤按鍵。預設的
+ <application>imwheel</application> 設定檔是在
+ <filename>/usr/X11R6/etc/imwheelrc</filename>,如果你想
+ 編輯自訂的設定檔的話,可以將它複製到
+ <filename>~/.imwheelrc</filename>,然後依你的需要修改它。
+ 設定檔的格式在 &man.imwheel.1; 裡面有詳細的說明。</para>
+ </listitem>
+
+ <listitem>
+ <para>設定 <application>Emacs</application> 與
+ <application>Imwheel</application> 協同工作
+ (<emphasis>選擇性</emphasis>)</para>
+
+ <para>如果你使用 <application>emacs</application> 或是
+ <application>Xemacs</application> 的話,那你需要在你的
+ <filename>~/.emacs</filename> 檔案裡加上一小段設定。
+ <application>emacs</application> 請加上這一段:</para>
+
+ <example>
+ <title><application>Imwheel</application> 的
+ <application>Emacs</application> 設定</title>
+
+ <programlisting>;;; For imwheel
+(setq imwheel-scroll-interval 3)
+(defun imwheel-scroll-down-some-lines ()
+ (interactive)
+ (scroll-down imwheel-scroll-interval))
+(defun imwheel-scroll-up-some-lines ()
+ (interactive)
+ (scroll-up imwheel-scroll-interval))
+(global-set-key [?\M-\C-\)] 'imwheel-scroll-up-some-lines)
+(global-set-key [?\M-\C-\(] 'imwheel-scroll-down-some-lines)
+;;; end imwheel section</programlisting>
+ </example>
+
+ <para><application>Xemacs</application> 則在
+ <filename>~/.emacs</filename> 檔裡加上這一段:</para>
+
+ <example>
+ <title><application>Imwheel</application> 的
+ <application>Xemacs</application> 設定</title>
+
+ <programlisting>;;; For imwheel
+(setq imwheel-scroll-interval 3)
+(defun imwheel-scroll-down-some-lines ()
+ (interactive)
+ (scroll-down imwheel-scroll-interval))
+(defun imwheel-scroll-up-some-lines ()
+ (interactive)
+ (scroll-up imwheel-scroll-interval))
+(define-key global-map [(control meta \))] 'imwheel-scroll-up-some-lines)
+(define-key global-map [(control meta \()] 'imwheel-scroll-down-some-lines)
+;;; end imwheel section</programlisting>
+ </example>
+ </listitem>
+
+ <listitem>
+ <para>執行 <application>Imwheel</application></para>
+
+ <para>安裝之後,你可以直接在 xterm 裡鍵入 <command>imwheel
+ </command> 命令以起動它。它會以背景執行,並且馬上發揮效用。
+ 如果你確定要直接使用 <application>imwheel</application>,
+ 只要把它加進你自己的 <filename>.xinitrc</filename> 或
+ <filename>.xsession</filename> 內檔案即可。你可以不管
+ <application>imwheel</application> 所送出來有關 PID 檔案
+ 警告。那些警告只對 Linux 版的 <application>imwheel
+ </application> 有效而已。</para>
+ </listitem>
+ </orderedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="window-menu-weird">
+ <para>為什麼 X Window 的選單和對話框不能正常運作?</para>
+ </question>
+
+ <answer>
+ <para>把 Num Lock 關掉試試。</para>
+
+ <para>如果您的 Num Lock 在開機時的預設值是開著的話,您必須把下列
+ 這行放到 <filename>XF86Config</filename> 設定檔中的
+ <literal>Keyboard</literal> 部份。</para>
+
+ <programlisting># Let the server do the NumLock processing. This should only be
+# required when using pre-R6 clients
+ ServerNumLock</programlisting>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="virtual-console">
+ <para>什麼是 virtual console?我要怎麼做才能用多一點?</para>
+ </question>
+
+ <answer>
+ <para>簡單來說,virtual console 就是可以讓您不必做太多複雜的設定
+ 如使用網路或執行 X ,而在同一臺機器上同時做好幾件事的方法。</para>
+
+ <para>當啟動系統並顯示完所有開機訊息之後,您就會在螢幕上看到一個
+ login 的提示符號。在這個時候您就可以輸入您的 login name 以及
+ password ,然後就可以在第一個 virtual console 上開始工作了
+ (或者開始玩!) 。</para>
+
+ <para>在某些情況下,您可能會想要作其他的工作,例如說是看看您正在
+ 執行的程式的說明文件,或是當您在 FTP 傳輸的等待時間中看看您的
+ 郵件。您只需要按 Alt-F2 (按住 Alt 鍵不放,並按下 F2 鍵) ,然後
+ 您就會在第二個 <quote>virtual console</quote> 上看到一個 login
+ 提示符號!當您想要回到原來的工作時,請按 Alt-F1。</para>
+
+ <para>FreeBSD 在安裝時的預設值是使用三個 virtual console
+ (3.3-RELEASE 後為八個),您可以用 Alt-F1,Alt-F2,以及 Alt-F3
+ 在它們之間做切換。</para>
+
+ <para>如果您想要多一點 virtual console 的話,您只需要編輯
+ <filename>/etc/ttys</filename> 這個檔 (請參考 &man.ttys.5;),
+ 在 <quote>Virtual terminals</quote> 這個註解後面加入
+ <devicename>ttyv4</devicename> 到 <devicename>ttyvc</devicename>
+ 的欄位:</para>
+
+ <programlisting># Edit the existing entry for ttyv3 in /etc/ttys and change
+# "off" to "on".
+ttyv3 "/usr/libexec/getty Pc" cons25 on secure
+ttyv4 "/usr/libexec/getty Pc" cons25 on secure
+ttyv5 "/usr/libexec/getty Pc" cons25 on secure
+ttyv6 "/usr/libexec/getty Pc" cons25 on secure
+ttyv7 "/usr/libexec/getty Pc" cons25 on secure
+ttyv8 "/usr/libexec/getty Pc" cons25 on secure
+ttyv9 "/usr/libexec/getty Pc" cons25 on secure
+ttyva "/usr/libexec/getty Pc" cons25 on secure
+ttyvb "/usr/libexec/getty Pc" cons25 on secure</programlisting>
+
+ <para>您想用幾個就設幾個。您設越多 virtual terminal ,它們就用掉
+ 越多系統資源;如果您只有不到 8MB 的記憶體的話,這影響就大了。
+ 您可能也會想把 <literal>secure</literal> 換成
+ <literal>insecure</literal>。</para>
+
+ <important>
+ <para>如果您想要執行 X 的話,您 <emphasis>必須</emphasis>
+ 為它保留 (或關掉) 至少一個 virtual terminal 。這就是說,如果
+ 您想在按十二個 Alt 功能鍵時都有 login 提示符號,而且又在同一
+ 部電腦上也想執行 X 的話,那麼這真是太不幸了 - 您只能用十一個。
+ </para>
+ </important>
+
+ <para>取消一個 console 最簡單的方法就是把它關掉。舉例來說,如果
+ 您像上面講的一樣設定了全部的 12 個 terminal 並且想要執行 X ,
+ 您必需把 virtual terminal 12 從:</para>
+
+ <programlisting>ttyvb "/usr/libexec/getty Pc" cons25 on secure</programlisting>
+
+ <para>設成:</para>
+
+ <programlisting>ttyvb "/usr/libexec/getty Pc" cons25 off secure</programlisting>
+
+ <para>如果您的鍵盤只有 10 個功能鍵的話,您就要改成這樣:</para>
+
+<programlisting>ttyv9 "/usr/libexec/getty Pc" cons25 off secure
+ttyva "/usr/libexec/getty Pc" cons25 off secure
+ttyvb "/usr/libexec/getty Pc" cons25 off secure</programlisting>
+
+ <para>(您也可以直接把這幾行砍掉。)</para>
+
+ <para>一旦您改了 <filename>/etc/ttys</filename>,下一個步驟就是要
+ 確定您有足夠的 virtual terminal 裝置。最簡單的方法就是:</para>
+
+ <screen>&prompt.root; <userinput>cd /dev</userinput>
+&prompt.root; <userinput>sh MAKEDEV vty12</userinput></screen>
+
+ <para>再過來,想要啟動這些 virtual console 最簡單 (也是最乾淨)
+ 的做法就是重開機。然後,如果您不想重開機的話,您可以把 X Window
+ 關掉,然後用 <username>root</username> 的身份執行下列指令:</para>
+
+ <screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen>
+
+ <para>當您執行這個命令前,您一定要完全把 X Window 關掉。如果
+ 您不這麼做的話,您的系統可能會在您執行 kill 命令後出現當掉或
+ 鎖死的情況。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="vty-from-x">
+ <para>我要怎麼從 X 切換到 virtual console?</para>
+ </question>
+
+ <answer>
+ <para>請用 <keycombo action="simul">
+ <keycap>Ctrl</keycap>
+ <keycap>Alt</keycap>
+ <keycap>F<replaceable>n</replaceable></keycap>
+ </keycombo> 以切回至 virtual console。
+ <keycombo action="simul">
+ <keycap>Ctrl</keycap>
+ <keycap>Alt</keycap>
+ <keycap>F1</keycap>
+ </keycombo> 可以切回至第一個 virtual console。</para>
+
+ <para>當你切回至文字 console 後,你就可以使用一般
+ <keycombo action="simul">
+ <keycap>Alt</keycap>
+ <keycap>F<replaceable>n</replaceable></keycap>
+ </keycombo> 按鍵組合,在各 console 之間切換。</para>
+
+ <para>要回到 X 的話,你必須切回至執行 X 的 virtual console。
+ 如果你是從命令列裡起動 X 的話 (例如使用 <command>startx</command>
+ 指令),那麼 X 會依附在下一個未使用的 virtual console,而不是它被
+ 起動的文字 console。如果你有八個使用中的 virtual terminal,那麼
+ X 就會在第九個上執行,你就可以使用
+ <keycombo action="simul">
+ <keycap>Alt</keycap>
+ <keycap>F9</keycap>
+ </keycombo> 以返回至 X 中。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="xdm-boot">
+ <para>我要怎麼做才能在開機時啟動 XDM?</para>
+ </question><answer>
+
+ <para>有兩種方法可以啟動 <ulink
+ url="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&amp;query=xdm">
+ xdm</ulink>。一種方法是從 <filename>/etc/ttys</filename> 來啟動,
+ 可以參考 &man.ttys.5; 說明文件中的範例;另一種方法是在
+ <filename>rc.local</filename> (請參考 &man.rc.8;) 執行 xdm,或是
+ 在 <filename>/usr/local/etc/rc.d</filename> 放一個
+ <filename>X.sh</filename>。這兩種方法都是合法的,如果您試某一種
+ 方法無效的話,您可以試試另外一種。這兩種方法的結果是一樣的:X
+ 會顯示一個圖形化的 login: 提示。</para>
+
+ <para>用 ttys 的方法的優點,在於指明了 X 在啟動時到底是用那個 vty,
+ 並且將 logout 時重新啟動 X server 的責任丟給 init。 rc.local
+ 的方法則是在當啟動 X 出了問題時,可以很輕鬆地把 xdm 殺掉來解決
+ 問題。</para>
+
+ <para>如果是用 rc.local 的方法,在執行 <command>xdm</command>
+ 時您不能加任何參數(也就是跑成 daemon)。必須在 getty 執行後
+ 才能啟動 xdm,否則 getty 和 xdm 會互相衝突而鎖住 console。最好的
+ 方式是在 script 中加個 sleep,讓它暫停 10 秒鐘左右,接著才執行
+ xdm。</para>
+
+ <para>如果你是從 <filename>/etc/ttys</filename> 啟動
+ <command>xdm</command>,<command>xdm</command> 與 &man.getty.8;
+ 仍有機會互相衝突。一個避免它的方法,就是在
+ <filename>/usr/X11R6/lib/X11/xdm/Xservers</filename> 檔案中加入
+ <literal>vt</literal> 數字。</para>
+
+ <programlisting>:0 local /usr/X11R6/bin/X vt4</programlisting>
+
+ <para>上面的例子中,會指示 X server 在 <devicename>/dev/ttyv3
+ </devicename> 中執行。請注意數字是差一的。X server 從一開始數
+ vty,而 FreeBSD 核心則是從零開始數 vty 的。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="xconsole-failure">
+ <para>為什麼當我執行 xconsole 時,發生了
+ <errorname>Couldn't open console</errorname> 的錯誤?</para>
+ </question>
+
+ <answer>
+ <para>如果你是用 <command>startx</command> 來啟動 <command>startx
+ </command> 的話,<devicename>/dev/console</devicename> 的權限並
+ <emphasis>不會</emphasis> 改變,結果就是 <command>xterm -C
+ </command> 和 <command>xconsole</command> 這類的程式無法
+ 正常執行。</para>
+
+ <para>這一切的問題,都是因為 console 的權限是採用系統預設值。
+ 在一個多使用者的系統裡,我們不希望每個使用者都可以直接寫入系統
+ console 。如果使用者是從機器的 VTY 直接 login 的話,那麼
+ &man.fbtab.5; 可以解決這類的問題。</para>
+
+ <para>簡單地說,請確保 <filename>/etc/fbtab</filename> (請參考
+ &man.fbtab.5;) 這個檔案中的這一行沒有被註解掉:</para>
+
+ <programlisting>/dev/ttyv0 0600 /dev/console</programlisting>
+
+ <para>這一行設定的存在可以確保從 <devicename>/dev/ttyv0</devicename>
+ 登入的使用者可以控制 console。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="xfree86-root">
+ <para>以前我可以以一般使用者執行 XFree86,為什麼現在它說我一定要
+ 以 <username>root</username> 才能執行?</para>
+ </question>
+
+ <answer>
+ <para>所有的 X server 都需要以 <username>root</username> 來執行,
+ 才能直接存取你的視訊硬體。舊版本的 XFree86 (&lt;= 3.3.6) 會自動
+ 將所附的 server 以利用 <username>root</username> 身份執行的方式
+ 安裝起來 (setuid 為 <username>root</username>)。由於 X server
+ 都是體積龐大又複雜的程式,顯而易見地,這是一個安全上的災難。
+ 因為這個原因,新版的 XFree86 就不將這些 server 以 setuid 為
+ <username>root</username> 的方式安裝。</para>
+
+ <para>很明顯地,我們完全無法接受將 X server 以
+ <username>root</username> 的身份執行。起碼就安全上不是個好主意。
+ 有兩種方法可以以一般使用者的身份使用 X。第一是利用
+ <command>xdm</command> 或是其它的 display manager (例如
+ <command>kdm</command>);第二是利用 <command>Xwrapper</command>。
+ </para>
+
+ <para><command>xdm</command> 是一個處理圖形界面登入的 daemon。
+ 它通常在開機時執行起來,而且負責對使用者作身份認證,以及起動
+ 使用者的工作環境;它可說是圖形環境下的 &man.getty.8; 與
+ &man.login.1; 的對應程式。想得知更多有關 <command>xdm</command>
+ 的資訊,請參考 <ulink url="http://www.xfree86.org/support.html">
+ XFree86 文件</ulink>,以及其 <link linkend="xdm-boot">FAQ
+ 項目</link>。</para>
+
+ <para><command>Xwrapper</command> 是 X server 的包裝程式;它可以
+ 讓一般使用者可以手動起動 X server 的小工具,而還能維持一定的安全
+ 環境。它會檢查傳入的命令列參數,如果沒問題的話,就起動適當的
+ X server。如果你因為某種理由而不想執行 display manager 的話,
+ 它是為你而設定的。如果你安裝了完整的 ports,你可以在
+ <filename>/usr/ports/x11/wrapper</filename> 中找到它。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ps2-x">
+ <para>我的 PS/2 滑鼠在 X 中有點不正常?</para>
+ </question>
+
+ <answer>
+ <para>您的滑鼠和您的滑鼠驅動程式可能存在有不同步的現象。</para>
+
+ <para>在 2.2.5 以及更早的系統裡,從 X 切到 virtual terminal 然後
+ 再切回來就可以使它們重新做同步的動作。如果這個問題常常發生的話,
+ 您可以在您的 kernel 設定檔中加入下面這個選項然後重新編譯:</para>
+
+ <programlisting>options PSM_CHECKSYNC</programlisting>
+
+ <para>如果您沒有建立 kernel 的經驗,請看
+ <link linkend="make-kernel">自訂核心</link> 這一節。</para>
+
+ <para>加上這個選項以後,滑鼠和滑鼠驅動程式間的同步問題應該就比較
+ 不會出現了。如果這個問題仍然存在的話,在移動滑鼠時按按滑鼠按鍵
+ 可以使滑鼠和滑鼠驅動程式重新做同步的動作。</para>
+
+ <para>該注意的是這個選項並不是對每一個系統都有效,它可能會讓接在
+ PS/2 滑鼠位置的 ALPS GlidePoint 裝置失去 <quote>tap</quote>
+ 這項功能。</para>
+
+ <para>在 2.2.6 及其後的版本,同步的確認已經有了較好的解決辦法,
+ 而且這些都已經是 PS/2 滑鼠驅動程式的標準了。這個方法也可以在
+ GlidePoint 上正常工作。 (因為確認的程式碼已經成為一個標準功能,
+ 所以在這些版本中我們不在提供 PSM_CHECKSYNC 的選項了。) 不過在
+ 極少數的案例中,這些驅動程式會誤報同步性錯誤,然後您就會看到
+ 這樣的核心訊息:</para>
+
+ <programlisting>psmintr: out of sync (xxxx != yyyy)</programlisting>
+
+ <para>然後您就會發現您的滑鼠不能正常運作了。</para>
+
+ <para>如果您發生了這樣的狀況,您必須藉由把 PS/2 滑鼠驅動程式的 flag
+ 設成 0x100 來把同步確認的程式碼給取消掉。然後在開機提示符號時用
+ <option>-c</option> 選項來進入 <emphasis>UserConfig</emphasis>:
+ </para>
+
+ <screen>boot: <userinput>-c</userinput></screen>
+
+ <para>然後,在 <emphasis>UserConfig</emphasis> 命令列中鍵入:</para>
+
+ <screen>UserConfig&gt; <userinput>flags psm0 0x100</userinput>
+UserConfig&gt; <userinput>quit</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ps2-mousesystems">
+ <para>我的 PS/2 滑鼠不能透過 MouseSystem 來運作?</para>
+ </question>
+
+ <answer>
+ <para>有一些報告指出某些廠牌的 PS/2 滑鼠只能在
+ <quote>高解析度</quote> 狀態下才能運作。如果不是的話,滑鼠游標
+ 會常常跑到螢幕的左上角去。</para>
+
+ <para>非常不幸的,這個問題在 2.0.X 和 2.1.X 下是無解的。在 2.2
+ 到 2.2.5 版,您可以對 <filename>/sys/i386/isa/psm.c</filename>
+ 使用下列 patch 然後重建您的核心。如果您沒有建立 kernel 的經驗,
+ 請看 <link linkend="make-kernel">自訂核心</link> 這節。</para>
+
+ <programlisting>@@ -766,6 +766,8 @@
+ if (verbose &gt;= 2)
+ log(LOG_DEBUG, "psm%d: SET_DEFAULTS return code:%04x\n",
+ unit, i);
++ set_mouse_resolution(sc-&gt;kbdc, PSMD_RES_HIGH);
++
+ #if 0
+ set_mouse_scaling(sc-&gt;kbdc); /* 1:1 scaling */
+ set_mouse_mode(sc-&gt;kbdc); /* stream mode */</programlisting>
+
+ <para>在 2.2.6 及以後的版本,在 PS/2 滑鼠驅動程式中設定 0x04 的
+ flag 會把滑鼠設成高解析度模式。在開機提示符號時用
+ <option>-c</option> 選項來進入 <emphasis>UserConfig</emphasis>:
+ </para>
+
+ <screen>boot: <userinput>-c</userinput></screen>
+
+ <para>然後,在 <emphasis>UserConfig</emphasis> 的命令列中鍵入:
+ </para>
+
+ <screen>UserConfig&gt; <userinput>flags psm0 0x04</userinput>
+UserConfig&gt; <userinput>quit</userinput></screen>
+
+ <para>前一節有提到另一個可能導致滑鼠問題的原因。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="imake-tmpl">
+ <para>當我建立 X 程式時,<command>imake</command> 說它找不到
+ <filename>Imake.tmpl</filename>。它在哪兒?</para>
+ </question>
+
+ <answer>
+
+ <para><filename>Imake.tmpl</filename> 是 Imake 套件的一部份,Imake
+ 是標準的建立 X 程式的工具。 <filename>Imake.tmpl</filename>
+ 和其他數個 header file 一樣是建立 X 程式的必要檔案,您可以在
+ X prog distribution 中找到它們。您可以用 sysinstall(&os; 5.2 之前版本則是 <command>/stand/sysinstall</command>)
+ 來安裝或是直接從 X distribution 中手動安裝。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="xfree86-version">
+ <para>我在 build 一個 X 應用程式,它需要 XFree86 3.3.x,但是
+ 我已經安裝 XFree86 4.x 了。我該怎麼辦?</para>
+ </question>
+
+ <answer>
+ <para>要告訴 port 在編譯程式時,使用 XFree86 4.x 函式庫,你可以
+ 在 <filename>/etc/make.conf</filename> 裡 (如果你沒有這個檔,
+ 請建立它) 加上下面這一行:</para>
+
+ <programlisting>XFREE86_VERSION= 4</programlisting>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="mouse-button-reverse">
+ <para>我要怎麼做才能設定左撇子用的滑鼠?</para>
+ </question>
+
+ <answer>
+ <para>在您的 <filename>.xinitrc</filename> 或是
+ <filename>.xsession</filename> 中執行
+ <literal>xmodmap -e "pointer = 3 2 1"</literal> 的指令。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="install-splash">
+ <para>要如何安裝 splash 圖形顯示程式?那裡可以找得到呢?</para>
+ </question>
+
+ <answer>
+
+ <para>就在發行 FreeBSD 3.1 之前,我們加進了在開機時顯示
+ <quote>splash</quote> 圖形的新功能。目前用來顯示在螢幕上的檔案
+ 必須是 256 色的點矩陣圖形 (<filename>*.BMP</filename>) 或 ZSoft
+ PCX(<filename>*.PCX</filename>) 的格式。除此之外,解析度也必須在
+ 320x200 以下,才能和標準 VGA 顯示卡搭配使用。如果您編譯 kernel
+ 時有加入 VESA 支援,那麼最大解析度可以到 1024x768。注意 VESA 的
+ 支援需要加入 <literal>VM86</literal> 這個 kernel 選項。VESA
+ 支援實際上可以在編譯 kernel 時加入 <literal>VESA</literal> 選項、
+ 或載入 VESA 的 kld module 來達成。</para>
+
+ <para>您要修改控制 FreeBSD 開機步驟的設定檔,才能使用 splash
+ 顯示圖形的功能。設定檔在發行 FreeBSD 3.2 前有些更動,所以現在
+ 有兩個方法可以載入 splash 的功能:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>FreeBSD 3.1</para>
+
+ <para>先選出用來顯示在螢幕上的圖形,3.1 版只支援 Windows
+ 的點矩陣格式。選好了您要的圖檔後,將它拷到 <filename>
+ /boot/splash.bmp</filename>。接著把下面幾行加入
+ <filename>/boot/loader.rc</filename> 中:</para>
+
+ <programlisting>load kernel
+load -t splash_image_data /boot/splash.bmp
+load splash_bmp
+autoboot</programlisting>
+
+ </listitem>
+
+ <listitem>
+ <para>FreeBSD 3.2+</para>
+
+ <para>除了加入對 PCX 檔案的支援外,FreeBSD 3.2 也改進了
+ 開機程序的設定方式。如果您願意的話,可以用上述 FreeBSD 3.1
+ 的方法,將 <literal>splash_bmp</literal> 換成
+ <literal>splash_pcx</literal> 來載入 PCX 檔案即可。
+ 如果想用新的設定方式,您的 <filename>/boot/loader.rc
+ </filename> 必須包括這幾行:</para>
+
+ <programlisting>include /boot/loader.4th
+start</programlisting>
+
+ <para>還需要一個包含以下幾行的 <filename>/boot/loader.conf
+ </filename>:</para>
+
+ <programlisting>splash_bmp_load="YES"
+bitmap_load="YES"</programlisting>
+
+ <para>這是假設您用 <filename>/boot/splash.bmp</filename>
+ 來當作 splash 的螢幕顯示。如果想用 PCX 的檔案,把它拷成
+ <filename>/boot/splash.pcx</filename>,如上述做出
+ <filename>/boot/loader.rc</filename>,再將這幾行加到
+ <filename>/boot/loader.conf</filename> 中:</para>
+
+ <programlisting>splash_pcx_load="YES"
+bitmap_load="YES"
+bitmap_name="/boot/splash.pcx"</programlisting>
+
+ </listitem>
+ </itemizedlist>
+
+ <para>現在就只剩下 splash 用來顯示的圖檔,您可以在
+ <ulink url="http://www.baldwin.cx/splash/">http://www.baldwin.cx/splash/</ulink> 找到各種樣品。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="windows-keys">
+ <para>我能在 X 裡使用鍵盤上的 <trademark class="registered">Windows
+ </trademark> 嗎?</para>
+ </question>
+
+ <answer>
+ <para>可以。你所要作的,就是利用 &man.xmodmap.1; 去定義你想使用
+ 的功能。</para>
+
+ <para>假設所有的 <quote><trademark class="registered">Windows</trademark></quote> 都是標準的,
+ 那它們的 keycode 分別為:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>115 - <trademark class="registered">Windows</trademark> 鍵,
+ 在左手的 Ctrl 與 Alt 鍵之間</para>
+ </listitem>
+
+ <listitem>
+ <para>116 - <trademark class="registered">Windows</trademark> 鍵,
+ 在 Alt-Gr 鍵右邊</para>
+ </listitem>
+
+ <listitem>
+ <para>117 - 選單鍵,右手的 Ctrl 鍵左邊</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>要讓左邊的 <trademark class="registered">Windows</trademark>
+ 鍵印出一個逗點,試試這個:</para>
+
+ <screen>&prompt.root; <userinput>xmodmap -e "keycode 115 = comma"</userinput></screen>
+
+ <para>你可能要重跑你的 windows manager,才會有動作。</para>
+
+ <para>要讓 <trademark class="registered">Windows</trademark> 鍵
+ 的對映在每次 X 起動時自動設定好,你可以在你的
+ <filename>~/.xinitrc</filename> 裡加上 <command>xmodmap</command>,
+ 或是最好建立一個 <filename>~/.xmodmaprc</filename> 檔案,裡面
+ 每一行就是一個 <command>xmodmap</command> 的選項,然後在你的
+ <filename>~/.xinitrc</filename> 裡加上:</para>
+
+
+ <programlisting>xmodmap $HOME/.xmodmaprc</programlisting>
+
+ <para>這一行。</para>
+
+ <para>例如,你想要將這三個鍵各對映到 F13、F14 和 F15。這讓你能
+ 在你的程式或是 window manager 內將其對應到便利的功能上,等一下
+ 我們會示範。</para>
+
+ <para>把這些放進 <filename>~/.xmodmaprc</filename> 裡:</para>
+
+ <programlisting>keycode 115 = F13
+keycode 116 = F14
+keycode 117 = F15</programlisting>
+
+ <para>假如你用 <command>fvwm2</command> 的話,你可以作這樣的對映,
+ 讓 F13 能夠讓游標所在的視窗縮成小圖示 (或是反過來)。F14 讓游標
+ 所在的視窗變成最上層的視窗,或是退到下層去 (如果它已經是最上層
+ 了的話)。F15 則將 Workplace (application) 選單叫出來,即使游標
+ 不在桌面上。當你沒有可見的桌面區域時,這個功能就相當地方便 (而且
+ 按鍵上的圖案和這個功能相吻合)。</para>
+
+ <para>以下的 <filename>~/.fvwmrc</filename> 設定可作出前述的功能。
+ </para>
+
+ <programlisting>Key F13 FTIWS A Iconify
+Key F14 FTIWS A RaiseLower
+Key F15 A A Menu Workplace Nop</programlisting>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="x-3d-acceleration">
+ <para>我要怎麼樣才能得到 OpenGL 的 3D 硬體加速功能?</para>
+ </question>
+
+ <answer>
+ <para>3D 加速功能的有無,視你所使用的 XFree86 版本與顯示晶片
+ 的型號而定。如果你的是 NVIDIA 晶片的話,請去
+ <ulink url="http://nvidia.netexplorer.org/">FreeBSD NVIDIA
+ Driver Initiative </ulink> 網頁看看,那裡有在 XFree86-4 上使用
+ NVIDIA 晶片的 3D 加速功能的討論。XFree86-4 上的其它顯示卡廠牌
+ 硬體加速功能的資訊, 包括 Matrox G200/G400, ATI Rage 128/Radeon,
+ 3dfx Voodoo 3, 4, 5, 以及 Banshee,可在 <ulink
+ url="http://gladstone.uoregon.edu/~eanholt/dri/">XFree86-4
+ Direct Rendering on FreeBSD</ulink> 網頁上找到。XFree 3.3 的
+ 使用者可以使用 Utah-GLX port,它可以在
+ <filename role="package">graphics/utah-glx</filename> 找到。
+ 使用它可以在 Matrox Gx00, ATI Rage Pro, SiS 6326, i810,
+ Savage, 以及舊的 NVIDIA 上得到有限的 OpenGL 加速。</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+ <chapter id="networking">
+ <chapterinfo>
+ <author>
+ <firstname>Biing Jong</firstname>
+ <surname>Lin</surname>
+ <affiliation>
+ <address><email>bjlin@stic.gov.tw</email></address>
+ </affiliation>
+ </author>
+ </chapterinfo>
+
+ <title>Networking</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="diskless-booting">
+ <para>我應該到哪邊找有關無磁碟開機
+ <quote>diskless booting</quote> 的資料?</para>
+ </question>
+
+ <answer>
+ <para><quote>Diskless booting</quote> 就是讓 FreeBSD 主機從網路
+ 上開機,並且從網路上的 server 上讀取其他必要的檔案,而非由主機
+ 的硬碟上取得這些檔案。詳細的資料可以參考 <ulink
+ url="../handbook/diskless.html"> FreeBSD 手冊的無磁碟開機篇
+ </ulink>。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="router">
+ <para>FreeBSD 的主機可以當作某個網路上的路由器(router)嗎?</para>
+ </question>
+
+ <answer>
+ <para>是的。請參考 FreeBSD 手冊的網路進階篇 <ulink
+ url="../handbook/routing.html"> advanced
+ networking</ulink>,尤其是路由與閘道器 <ulink
+ url="../handbook/routing.html#DEDICATED-ROUTER">routing
+ and gateways</ulink>的部分。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="win95-connection">
+ <para>我可以透過 FreeBSD 將我的 Win95 機器連上 Internet 嗎?</para>
+ </question>
+
+ <answer>
+ <para>基本上,會問這種問題的人在家裡至少有兩台電腦,一台跑 FreeBSD
+ 另外一台跑 Win95;這個想法是將 FreeBSD 主機連上 Internet,然後透
+ 過這台 FreeBSD 主機,讓跑 Win95 的電腦能夠上網。這個問題算是前一
+ 個問題的一個特例</para> <para>... 答案是:可以的!在 FreeBSD 3.x
+ 版中,使用者模式(user-mode)的 &man.ppp.8; 包含了
+ <option>-nat</option> 選項。如果你在
+ <filename>/etc/rc.conf</filename> 使用<option>-nat</option>選項並
+ 設定 <literal>gateway_enable</literal> 為 <emphasis>YES</emphasis>
+ ,以這種設定啟動 &man.ppp.8; ,並且正確的設定你的 Windows 主機的
+ 話,這個做法應該是可以正常使用的。</para>
+
+ <para>關於本主題更詳細的資料可以參考 Steve Sims 所撰寫的 <ulink
+ url="../ppp-primer/index.html"> Pedantic PPP Primer</ulink> 一文。
+ </para>
+
+ <para>如果你使用的是核心模式 (kernel-mode) PPP,或者你有區域連線
+ (Ethernet connection) 可通達 Internet 的話,你將需要使用
+ &man.natd.8;。請查閱 FAQ 中關於 <link linkend="natd">natd</link>
+ 的部分。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="slip-ppp-support">
+ <para>FreeBSD 支援 SLIP 和 PPP 嗎?</para>
+ </question>
+
+ <answer>
+ <para>是的。你可以查查 man pages 中關於 &man.slattach.8;,
+ &man.sliplogin.8;,&man.ppp.8;,以及 &man.pppd.8; 的部分。
+ &man.ppp.8; 及 &man.pppd.8; 提供進出雙向連線的支援,另外
+ &man.sliplogin.8; 專門提供進入連線的支援,而 &man.slattach.8;
+ 專門提供向外連線的支援。</para>
+
+ <para>如果你需要更進一步的資料的話,請查閱 <ulink
+ url="../handbook/ppp-and-slip.html">FreeBSD 手冊中關於 PPP 與 SLIP
+ 的說明</ulink>。</para>
+
+ <para>如果你只能夠過 <quote>shell account</quote> 連線到 Internet
+ 的話,你也許可以試試 <filename role="package">net/slirp</filename>
+ 這個套件程式。這個套件程式可以提供你的電腦直接連上某些(限定的)服務
+ 連線,如 ftp 及 http 等等。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="natd">
+ <para>FreeBSD 支援 NAT 或 Masquerading 嗎?</para>
+ </question>
+
+ <answer>
+ <para>如果你有一個近端的子網路(有一台以上的機器),但是你的
+ Internet provider 卻只分配一個 IP number 給你(或者你只分配到一個
+ 動態的 IP number),你可以參考 &man.natd.8; 這個程式。 &man.natd.8;
+ 讓你可以透過這一個 IP number 讓整個子網路的電腦都能連上 internet。
+ </para>
+
+ <para>&man.ppp.8; 這個程式也提供類似的功能,如果你指定
+ <option>-nat</option> 選項。alias library (&man.libalias.3;)
+ 在這兩個處理方式中都會被使用到。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="parallel-connect">
+ <para>我如何將兩台 FreeBSD 主機用平行埠 (parallel line) 透過 PLIP
+ 連線?</para>
+ </question>
+
+ <answer>
+ <para>請參考手冊中關於 <ulink url="../handbook/plip.html">PLIP
+ section</ulink> 的部分。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="create-dev-net">
+ <para>我沒有辦法建立 <filename>/dev/ed0</filename> 這個 device,
+ 為什麼?</para>
+ </question>
+
+ <answer>
+ <para>因為不需要!在 Berkeley 網路架構中,只有 kernel 程式碼可以直
+ 接存取網路界面卡。請參考 <filename>/etc/rc.network</filename> 這
+ 個檔案和 manual pages 取得與其他不同網路程式。更進一步的資訊:如
+ 果你覺得你完全搞混了的話,您應該找一本與其他 BSD 相關作業系統網路
+ 管理有關書來參考;除了少數顯著的不同外,FreeBSD 的網路管理基本上和
+ SunOS 4.0 和 Ultrix 是一樣的。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ethernet-aliases">
+ <para>我如何建立 Ethernet aliases?</para>
+ </question>
+
+ <answer>
+ <para>如果你的 alias 位址跟你目前網路介面的位址在同一個子網路下的
+ 話,加入一個 <literal>netmask 0xffffffff</literal> 在你的
+ &man.ifconfig.8; command-line,範例如下:</para>
+ <screen>&prompt.root; <userinput>ifconfig ed0 alias 192.0.2.2 netmask 0xffffffff</userinput></screen>
+ <para>不然的話,就如同加入一個新的網路位址一樣輸入你的網路位址與子
+ 網路遮罩:</para>
+ <screen>&prompt.root; <userinput>ifconfig ed0 alias 172.16.141.5 netmask 0xffffff00</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="port-3c503">
+ <para>我如何指定我的 3C503 使用其他不同的的 network port?</para>
+ </question>
+
+ <answer>
+ <para>如果您想使用其他的 port,你必須在 &man.ifconfig.8; 的命令中
+ 指定額外的參數。內定的 port 是 <literal>link0</literal>。要使用
+ AUI port 代替 BNC port 的話,改用 <literal>link2</literal>。這些
+ flags 應該改變ifconfig_* 的變數來指定, 你可以在
+ <filename>/etc/rc.conf</filename> 這個檔案裡面找到 (請參考
+ &man.rc.conf.5;)。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="nfs">
+ <para>為什麼我在使用 FreeBSD 的 NFS 時出現問題?</para>
+ </question>
+
+ <answer>
+ <para>我們用含蓄一點的說法,某些 PC 的網路卡比其他的好,這種狀況在
+ 造成 NFS 這種對網路敏感的程式有時會出現問題。</para>
+
+ <para>參考 <ulink url="../handbook/nfs.html">
+ the Handbook entry on NFS</ulink> 以獲得這個主題的更多資訊。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="nfs-linux">
+ <para>為什麼我不能 NFS-mount Linux 的機器?</para>
+ </question>
+
+ <answer>
+ <para>某些版本的 Linux NFS 程式碼只接受 privileged port 的
+ mount request;試用這行指令看看</para>
+
+ <screen>&prompt.root; <userinput>mount -o -P linuxbox:/blah /mnt</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="nfs-sun">
+ <para>為什麼我不能 NFS-mount Sun 的機器?</para>
+ </question>
+
+ <answer>
+ <para>跑 SunOS 4.X 的 Sun 工作站只接受來自 privileged port 的
+ mount request;試用這行指令看看</para>
+
+ <screen>&prompt.root; <userinput>mount -o -P sunbox:/blah /mnt</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="exports-errors">
+ <para>為什麼 <command>mountd</command> 一直鬼叫說
+ <errorname>can't change attributes</errorname> 而且我一直看到
+ <errorname>bad exports list</errorname> 這個訊息在我的 FreeBSD NFS
+ 伺服器上?</para>
+ </question>
+
+ <answer>
+ <para>這個問題最常發生的原因是在於不了解
+ <filename>/etc/exports</filename> 的正確格式。請詳讀
+ &man.exports.5; 以及手冊中關於 <ulink
+ url="../handbook/nfs.html">NFS</ulink> 的部分,特別是<ulink
+ url="../handbook/nfs.html#CONFIGURING-NFS">configuring
+ NFS</ulink>這一段。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-nextstep">
+ <para>為什麼我在使用 PPP 連線到 NeXTStep 機器時有問題?</para>
+ </question>
+
+ <answer>
+
+ <para>把 TCP extensions 取消,這個設定在
+ <filename>/etc/rc.conf</filename> 裡面(參考 &man.rc.conf.5;) 把
+ 以下這個值設成 NO:</para>
+
+ <programlisting>tcp_extensions=NO</programlisting>
+
+ <para>Xylogic 的 Annex 主機也有相同的問題,您要做相同的修改才能連
+ 上這些主機。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ip-multicast">
+ <para>我要怎樣才能把 IP multicast support 打開?</para>
+ </question>
+
+ <answer>
+ <para>FreeBSD 2.0 以後的版本內定都有 支援 Multicast host 操作。如果
+ 您想將您的主機設定成 multicast router 的話,您必須重新 compile 您
+ 的 kernel,加入 <literal>MROUTING</literal> 的選項,並且執行
+ &man.mrouted.8; FreeBSD 2.2 及之後的版本會在開機時執行
+ &man.mrouted.8; 如果在 <filename>/etc/rc.conf</filename> 中
+ <literal>mrouted_enable</literal> 設定為 <literal>"YES"</literal>
+ </para>
+
+ <para>MBONE 的各種工具可以在他們 ports 下所屬叫做 <ulink
+ url="http://www.FreeBSD.org/ports/mbone.html">mbone</ulink> 目錄
+ 中找到。如果您在找視訊會議的工具如 <command>vic</command> 以及
+ <command>vat</command>的話,到那邊找找吧!</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="dec-pci-chipset">
+ <para>哪些網路卡是使用 DEC PCI chipset?</para>
+ </question><answer>
+
+ <para>以下是 Glen Foster <email>gfoster@driver.nsta.org</email>
+ 提供的清單:</para>
+
+ <table>
+ <title>Network cards based on the DEC PCI chipset</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Vendor</entry>
+ <entry>Model</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>ASUS</entry>
+ <entry>PCI-L101-TB</entry>
+ </row>
+ <row>
+ <entry>Accton</entry>
+ <entry>ENI1203</entry>
+ </row>
+ <row>
+ <entry>Cogent</entry>
+ <entry>EM960PCI</entry>
+ </row>
+ <row>
+ <entry>Compex</entry>
+ <entry>ENET32-PCI</entry>
+ </row>
+ <row>
+ <entry>D-Link</entry>
+ <entry>DE-530</entry>
+ </row>
+ <row>
+ <entry>Dayna</entry>
+ <entry>DP1203, DP2100</entry>
+ </row>
+ <row>
+ <entry>DEC</entry>
+ <entry>DE435, DE450</entry>
+ </row>
+ <row>
+ <entry>Danpex</entry>
+ <entry>EN-9400P3</entry>
+ </row>
+ <row>
+ <entry>JCIS</entry>
+ <entry>Condor JC1260</entry>
+ </row>
+ <row>
+ <entry>Linksys</entry>
+ <entry>EtherPCI</entry>
+ </row>
+ <row>
+ <entry>Mylex</entry>
+ <entry>LNP101</entry>
+ </row>
+ <row>
+ <entry>SMC</entry>
+ <entry>EtherPower 10/100 (Model 9332)</entry>
+ </row>
+ <row>
+ <entry>SMC</entry>
+ <entry>EtherPower (Model 8432)</entry>
+ </row>
+ <row>
+ <entry>TopWare</entry>
+ <entry>TE-3500P</entry>
+ </row>
+ <row>
+ <entry>Znyx (2.2.x)</entry>
+ <entry>ZX312, ZX314, ZX342, ZX345, ZX346, ZX348</entry>
+ </row>
+ <row>
+ <entry>Znyx (3.x)</entry>
+ <entry>ZX345Q, ZX346Q, ZX348Q, ZX412Q, ZX414, ZX442, ZX444,
+ ZX474, ZX478, ZX212, ZX214 (10mbps/hd)</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="fqdn-hosts">
+ <para>為什麼要用 FQDN 才能連到其他機器?</para>
+ </question>
+
+ <answer>
+ <para>你也許會發現要連的機器其實是在另一個網域。舉個例子,假設你是在
+ foo.bar.edu 這個網域中,想要連到在一台叫 <hostid>mumble</hostid>
+ 的主機,他在 <hostid role="domainname">example.org</hostid> 網域下,
+ 你必須用 Fully-Qualified Domain Name <hostid
+ role="fqdn">mumble.example.org</hostid>,而不是只用
+ <hostid>mumble</hostid>。</para>
+
+ <para>傳統的 BSD BIND resolver 允許用這種方式解出機器的位址,但是
+ FreeBSD 內附 <application>bind</application> (see &man.named.8;)
+ 版本內定方式,則是除了你所在的網域以外,不支援其他非 FQDN 的縮寫。
+ 所以如 <hostid>mumble</hostid> 必須在 <hostid
+ role="fqdn">mumble.foo.example.org</hostid>,否則就會從網域的最底
+ 層開始找。</para>
+
+ <para>這和先前的做法不同,也就是不用
+ <hostid role="domainname">mumble.example.org</hostid>,和
+ <hostid role="domainname">mumble.edu</hostid> 繼續搜尋。
+ 看一下 RFC 1535,裡面有提到為什麼之前的做法不好,甚至算是個安全
+ 漏洞。</para>
+
+ <para>這裡有個不錯的解法, 你可以加入一行</para>
+
+ <programlisting>search foo.example.org example.org</programlisting>
+
+ <para>instead of the previous</para>
+
+ <programlisting>domain foo.example.org</programlisting>
+
+ <para>在你的 <filename>/etc/resolv.conf</filename> 檔案中 (請參考
+ &man.resolv.conf.5;)。但是要確定搜尋順序不會違反 RFC 1535 所謂的
+ <quote>boundary between local and public administration</quote>。
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="network-permission-denied">
+ <para>為什麼我在連線時一直出現
+ <errorname>Permission denied</errorname> 的錯誤訊息?</para>
+ </question>
+
+ <answer>
+ <para> 如果在編譯 kernel 時加入 <literal>IPFIREWALL</literal> 選項,
+ 請注意 2.1.7R 內定是拒絕所有未經核准的網路封包(但在開發
+ 2.1-STABLE 時改掉了)。</para>
+
+ <para>I如果不小心弄錯了 firewall 的設定,你可以以
+ <username>root</username> 執行以下命令網路功能就會恢復正常:</para>
+
+ <screen>&prompt.root; <userinput>ipfw add 65534 allow all from any to any</userinput></screen>
+
+ <para>也可以在 <filename>/etc/rc.conf</filename> 加入
+ <literal>firewall_type="open"</literal> 的選項。</para>
+
+ <para>如果想知道如何設定 FreeBSD firewall,請參考 <ulink
+ url="../handbook/firewalls.html">手冊中相關章節</ulink>。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ipfw-overhead">
+ <para>IPFW 會造成多大的網路延遲?</para>
+ </question>
+
+ <answer>
+ <para>請參考手冊中 <ulink
+ url="../handbook/firewalls.html">Firewalls</ulink> 章節,特別是
+ <ulink url="../handbook/firewalls.html#IPFW-OVERHEAD">IPFW
+ Overhead & Optimization</ulink> 這一段。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ipfw-fwd">
+ <para>為什麼我的 <command>ipfw</command> <quote>fwd</quote>
+ redirect 規則將服務轉向其他機器時無法正常運作?</para>
+ </question>
+
+ <answer>
+ <para>可能是你除了轉送封包以外還額外想進行位址轉譯
+ (network address translation, NAT),<quote>fwd</quote> 規則所進
+ 行的動作就如同字面所示;僅轉送封包,它並不會去修改封包中的資料。
+ 假設我們有如下的規則:</para>
+
+ <screen>01000 fwd <replaceable>10.0.0.1</replaceable> from any to <replaceable>foo 21</replaceable></screen>
+
+ <para>當一個通往特定目標位址 <replaceable>foo</replaceable> 的封包
+ 送達主機時,根據這條規則,封包將被轉送至
+ <replaceable>10.0.0.1</replaceable>,但是它的目標位址卻仍然是
+ <replaceable>foo</replaceable>!封包的目標位址並
+ <emphasis>沒有</emphasis> 更改為
+ <replaceable>10.0.0.1</replaceable>。大部分的主機會將封包丟棄,
+ 因為他們並不是這個目標位址。因此,使用 <quote>fwd</quote> 規則
+ 時往往不如使用者所預期的那般順利。這種行為是系統特性,而非錯誤。
+ </para>
+
+ <para>參考 <link linkend="service-redirect">關於服務轉向的常見問
+ 答集</link>, &man.natd.8; 手冊,或者是使用 <ulink
+ url="../../../../ports/index.html">ports collection</ulink> 中許
+ 多服務轉向的工具來正確的完成你想進行的工作。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="service-redirect">
+ <para>要如何把對某台機器的網路服務要求(service request)轉向到另一台?
+ </para>
+ </question>
+
+ <answer>
+ <para>在 ports 目錄的<quote>sysutils</quote>分類中有個叫
+ <literal>socket</literal> 的套件,可以幫你轉向 FTP 或其他類似的
+ 網路服務。只要把該網路服務的命令改成呼叫 socket 即可,如下所示:
+ </para>
+
+ <programlisting>ftp stream tcp nowait nobody /usr/local/bin/socket socket <replaceable>ftp.example.com</replaceable> <replaceable>ftp</replaceable></programlisting>
+
+ <para>其中 <replaceable>ftp.example.com</replaceable> 與
+ <replaceable>ftp</replaceable> 分別是被轉到的機器和 port 名稱。
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="bandwidth-mgr-tool">
+ <para>那裡可以找到管理頻寬的工具?</para>
+ </question>
+
+ <answer>
+ <para>FreeBSD 上有三套頻寬管理工具: &man.dummynet.4; 已經整合進入
+ FreeBSD 系統(更詳細的用途, &man.ipfw.4;); <ulink
+ url="http://www.csl.sony.co.jp/person/kjc/programs.html">ALTQ</ulink>
+ 可以免費使用,<ulink
+ url="http://www.etinc.com/">Emerging Technologies</ulink>
+ 推出的 Bandwidth Manager 則是商用軟體。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="bpf-not-configured">
+ <para>怎麼會跑出
+ <errorname>/dev/bpf0: device not configured</errorname>這個訊息?
+ </para>
+ </question>
+
+ <answer>
+ <para>你執行了一個需要柏克萊封包過濾器 (Berkeley Packet Filter) 的
+ 程式 (&man.bpf.4;),但是你在 kernel 中沒有啟動它。把下面這一行加
+ 入 kernel 設定檔中,編譯一個新的 kernel:</para>
+
+ <programlisting>pseudo-device bpf # Berkeley Packet Filter</programlisting>
+
+ <para>在重新開機之後,還要做出 device node,在
+ <filename>/dev</filename> 下執行:</para>
+
+ <screen>&prompt.root; <userinput>sh MAKEDEV bpf0</userinput></screen>
+
+ <para>如果想要更進一步知道如何做出各種 device node,請參閱 <ulink
+ url="../handbook/kernelconfig-nodes.html">Handbook 關於週邊節點的說明</ulink>
+ 。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="mount-smb-share">
+ <para>我要怎樣才能將 Windows 機器中的磁碟掛入系統, 就像 Linux 提供
+ 的 smbmount 那樣?</para>
+ </question>
+
+ <answer>
+ <para>使用 <application>SMBFS</application> 工具組。這套工具組中
+ 包含了一系列的 kernel 修改還有使用者的工具程式(userland programs)。
+ 這些程式和資訊在 ports 收藏中
+ <filename role="package">net/smbfs</filename> 下可以找到。在
+ 4.5-RELEASE 之後的版本則是系統中內建。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="icmp-response-bw-limit">
+ <para>我在系統日誌中發現以下訊息:
+ <quote>icmp-response bandwidth limit 300/200 pps</quote>,這是
+ 蝦米碗糕?</para>
+ </question>
+
+ <answer>
+ <para>這是系統核心告訴你有某些活動引發它送出比它所認為應該送出更
+ 多的 ICMP 或 TCP 重置訊息 (RST)。ICMP 回應訊息常常是因為有人嘗
+ 試連接未被使用的 UDP 通訊埠。TCP 重置訊息則是有人嘗試連接未開
+ 放 TCP 通訊埠造成的結果。以下這些活動可能就是造成這些訊息的原因:
+ </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>暴力法的服務組絕攻擊(DoS)方式
+ (相較於針對特殊弱點使用單一封包的攻擊方式)。</para>
+ </listitem>
+
+ <listitem>
+ <para>大量的通訊埠掃描(相較於僅嘗試少數的常見服務通訊埠)。</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>出現的數字中第一個代表根據這些流量 kernel 應該送出的封包數,
+ 第二個數字則是 kernel 目前限制最大發送數。你可以利用 sysctl 修改
+ <varname>net.inet.icmp.icmplim</varname> 變數值來更改最大值。舉
+ 例來說,如果希望修改限制為 <literal>300</literal> packets per
+ second:</para>
+
+ <screen>&prompt.root; <userinput>sysctl -w net.inet.icmp.icmplim=300</userinput></screen>
+
+ <para>如果你不想在系統紀錄中看到這些訊息,但是仍然希望保持回應的限
+ 制的話,你可以利用 sysctl 修改
+ <varname>net.inet.icmp.icmplim_output</varname> 變數來取消這些訊
+ 息:</para>
+
+ <screen>&prompt.root; <userinput>sysctl -w net.inet.icmp.icmplim_output=0</userinput></screen>
+
+ <para>最後,如果你想取消這些限制的話,你可以設定
+ <varname>net.inet.icmp.icmplim</varname> (如上例所示) 為
+ <literal>0</literal>。基於上述理由,我們不建議你取消這些限制。
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="unknown-hw-addr-format">
+ <para>這個錯誤訊息
+ <errorname>arp: unknown hardware address format</errorname>
+ 是什麼意思?</para>
+ </question>
+
+ <answer>
+ <para>這代表你的區域網路連線上有一些設備使用 FreeBSD 看不懂的 MAC
+ 格式。這通常是代表有人在你的區域網路上進行實驗,最常見的就是
+ cable modem 的連線。這訊息無害,而且應該不至於影響到 FreeBSD 主
+ 機的效能。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="cvsup-missing-libs">
+ <para>我剛剛裝好 CVSup 套件,但是在嘗試執行時發生了錯誤,要怎麼辦?
+ </para>
+ </question>
+
+ <answer>
+ <para>首先,看看錯誤的訊息是否如下:</para>
+
+ <programlisting>/usr/libexec/ld-elf.so.1: Shared object "libXaw.so.6" not found</programlisting>
+
+ <para>這種錯誤訊息代表你主機上安裝的
+ <filename role="package">net/cvsup</filename> 沒有包含
+ <application>XFree86</application> 套件。如果你想要使用
+ <application>CVSup</application> 內建的圖形介面
+ <acronym>GUI</acronym> 的話,你需要安裝
+ <application>XFree86</application>。此外,如果你只想以命令列方
+ 式使用 <application>CVSup</application> 的話,你應該先移除之前
+ 安裝的套件。並安裝
+ <filename role="package">net/cvsup-without-gui</filename> 這套
+ 軟體。在 FreeBSD 手冊中 <ulink
+ url="http://www.freebsd.org/handbook/cvsup.html">CVSup</ulink>
+ 段落中有更詳細的說明。</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+ <chapter id="security">
+ <chapterinfo>
+ <author>
+ <firstname>Biing Jong</firstname>
+ <surname>Lin</surname>
+ <affiliation>
+ <address><email>bjlin@stic.gov.tw</email></address>
+ </affiliation>
+ </author>
+ </chapterinfo>
+
+ <title>系統安全篇</title>
+ <qandaset>
+ <qandaentry>
+ <question id="sandbox">
+ <para>什麼是 sandbox?</para>
+ </question><answer>
+
+ <para><quote>Sandbox</quote> 是系統安全用的術語,有兩個意義:</para>
+
+ <itemizedlist>
+ <listitem>
+
+ <para>放在某些虛擬防護牆裡的執行程序,這些防護牆是用來阻止
+ 某些人侵入這道程序,進而出入於更大的系統中。</para>
+
+ <para>這道程序可以完全在防護牆裡 <quote>動作</quote>。也就
+ 是說,它所執行的任何程式不可能會滲透到牆的外面。所以如果
+ 您對它有安全上的顧慮,並不需要特別去監聽它的一舉一動,反
+ 正它只能在牆內活動。</para>
+
+ <para>舉例來說,可以用 userid 來做這道防護牆,這正是 security
+ 和 named 說明文件中的定義。</para>
+
+ <para>現在就用 <literal>ntalk</literal> 這個服務作說明(見
+ /etc/inetd.conf)。這個服務以前的 userid 是
+ <username>root</username>,現在執行時則是用
+ <username>tty</username>。<username>tty</username>
+ 這個使用者就是一個 sandbox,如果有人能夠順利用 ntalk
+ 侵入系統,現在他就算進得來也只能用這個 userid。</para>
+ </listitem>
+
+ <listitem>
+ <para>放在某個模擬機器裡的程式,這比上述來得更嚴密。基本上
+ 這表示能侵入該程式的人相信他能再進入所屬的機器,但事實上
+ 只會進入模擬出來的機器,無法進一步修改任何真實的資料。</para>
+
+ <para>達到這個目的最常用的方法,就是在某個子目錄下做出模擬的
+ 環境,然後用 chroot 執行該程式,這樣該程式的根目錄便是這個
+ 子目錄,而非系統真正的根目錄。</para>
+
+ <para>另一個常見作法是將某個檔案系統 mount 成唯讀,但在它
+ 上面另外製造出程式以為可以寫入的檔案系統。這個程式會相信
+ 它可以對其他檔案讀寫,但只有它看不到這個唯讀效應 - 系統
+ 執行的一般程式都看得到。</para>
+
+ <para>我們試圖將這類 sandbox 盡量透明化,讓使用者或侵入者
+ 無法看到他是否在某個 sandbox 裡面。</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>UNIX 實作兩種 sandbox,一個在程式層面,另一個則是由 userid
+ 來達成。</para>
+
+ <para>每個 UNIX 執行程序會用防火牆將它和所有其他程序隔開,某個程序
+ 不可以隨意修改其他程序位址的資料。這和 Windows 中,程式可以輕易
+ 修改其他位址資料,結果導致當機的情形大不相同。</para>
+
+ <para>每個 UNIX 程序都屬於某個特定的 userid。如果該 userid 不是
+ <username>root</username>,就會將它和其他使用者的程序隔開。
+ Userid 同時也用於硬碟資料的存取權上。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="securelevel">
+ <para>什麼是 securelevel?</para>
+ </question>
+
+ <answer>
+ <para>securelevel 是核心中所實作的一個安全機制。基本上當
+ securelevel 是正值時,核心會限制某些工作;即使是 superuser
+ (也就是 <username>root</username>) 也無法完成那些工作。在撰寫
+ 本文時,securelevel 機制在一般的限制外,還能夠限制以下的功能:
+ </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>清除某些特定的檔案旗標,例如 <literal>schg</literal>
+ (系統唯讀標旗, the system immutable flag)</para>
+ </listitem>
+
+ <listitem>
+ <para>經由 <devicename>/dev/mem</devicename> 與
+ <devicename>/dev/kmem</devicename>, 將資料寫入至核心記憶體中
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>載入核心模組</para>
+ </listitem>
+
+ <listitem>
+ <para>更動 &man.ipfirewall.4; 規則。</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>想要檢查在某個運作中的系統的 securelevel 狀態,只要執行以下
+ 命令即可:</para>
+
+ <screen>&prompt.root; <userinput>sysctl kern.securelevel</userinput></screen>
+
+ <para>輸出的結果會包含一個 &man.sysctl.8; 變數名稱 (在這個例子中,
+ 它是 <varname>kern.securelevel</varname>) 以及一個數字。後者即是
+ 目前的 securelevel 值。如果它是一個正值 (也就是大於 0),表示至少
+ 有一些 securelevel 的保護機制已經開啟了。</para>
+
+ <para>你沒有辦法降低一個運作中的系統的 securelevel;如果可以的話,
+ 就失去了這個機制的意義了。如果你要作一些需要 securelevel 為
+ 非正值才可以的動作的話 (例如 <maketarget>installworld</maketarget>
+ 或更動日期),你需要修改 <filename>/etc/rc.conf</filename> 內的
+ securelevel 設定 (找找 <varname>kern_securelevel</varname> 和
+ <varname>kern_securelevel_enable</varname> 變數),然後重新開機。
+ </para>
+
+ <para>想要知道更多有關於 securelevel 與各個不同等級影響的細節,
+ 請參考 &man.init.8; 說明文件。</para>
+
+ <warning>
+ <para>securelevel 可不是萬靈丹;它有許多已知的缺陷,往往造成
+ 一種安全的假象。</para>
+
+ <para>它一個最大的問題,就是要讓這個功能完全有效的話,在
+ securelevel 發揮作用前的啟動過程中,所有使用到的檔案都
+ 必須被保護起來。如果一個攻擊者在 securelevel 有效前 (由於
+ 有些系統在啟動中所作的事情,無法在較高的 securelevel 中
+ 正常運作,所以這會在啟動過程中後期才會運作),能讓他們的程式
+ 被執行的話,securelevel 的保護就完全無效了。保護啟動程序
+ 中所有的檔案在技術上是可行的,但是如果真的這樣作的話,系統
+ 維護將會變成一場夢魘。即使只是修改一個設定檔,也必須將整個
+ 系統關閉,至少也得到單人模式。</para>
+
+ <para>除了這點,還有許多其它的東西都在通信論壇上討論,尤其是
+ freebsd-security。請到 <ulink
+ url="../../../../search/index.html">這裡</ulink> 搜尋以前的
+ 討論。有些人希望 securelevel 能夠儘快消失,由另一個更優秀的
+ 機制取代,不過機會有點渺茫。</para>
+
+ <para>風險自行承擔。</para>
+ </warning>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="extra-named-port">
+ <para>BIND (<command>named</command>) 除了在通訊埠 53 以外也在
+ 其他高編號通訊埠 (high-numbered port) 聆聽 (Listen)。
+ 這是怎麼回事?</para>
+ </question>
+
+ <answer>
+ <para>FreeBSD 3.0 後的版本使用一個特殊的 BIND 版本,這個版本會使
+ 用隨機的高編號通訊埠來回應外部的查詢。如果你因為要適合防火牆的
+ 設定或是單純的想讓自己看來舒服一點而想用 53 通訊埠回應外部查詢,
+ 那麼你可以嘗試更改以下檔案相關內容
+ <filename>/etc/namedb/named.conf</filename>:</para>
+
+ <programlisting>options {
+ query-source address * port 53;
+};</programlisting>
+
+ <para>你也可以將 <literal>*</literal> 更改為特定 IP address,
+ 藉以加強控制條件。</para>
+
+ <para>順便恭喜你。能夠讀取你系統上的 &man.sockstat.1; 報告並且注意
+ 不正常狀況是一件好事!</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="sendmail-port-587">
+ <para>Sendmail 除了在標準的通訊埠 25 外也在通訊埠 587 聆聽!這是怎
+ 麼回事?</para>
+ </question>
+
+ <answer>
+ <para>較新版本的 Sendmail 支援 mail submission 這項功能,並且使
+ 用通訊埠 587。這項功能還沒有被廣泛支援但是支援的數目正在增長
+ 中。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="toor-account">
+ <para>我發現了這個 UID 0 <username>toor</username> 帳號,這是什麼
+ 碗糕?我被黑掉了嗎?</para>
+ </question>
+
+ <answer>
+ <para>放心。<username>toor</username> 是一個
+ <quote>alternative</quote> 管理者帳號 (toor 是 root 的轉向拼法)。
+ 以往是跟隨 &man.bash.1; 安裝而建制的,後來則成為系統內定建制的一
+ 個帳號。這個帳號將伴隨一個非標準的 shell 測試使用, 讓你不需要去
+ 更改到 <username>root</username> 的內建 shell。因為這些其他的 shell
+ 並沒有跟隨系統預設值安裝 (舉例來說,某些由 ports 安裝的
+ shell package),而被內定安裝在 <filename>/usr/local/bin</filename>
+ 目錄下,有可能存在不同的檔案系統中。 倘若 <username>root</username>
+ 的 shell 被放在 <filename>/usr/local/bin</filename>,且
+ <filename>/usr</filename> (或是其他包含著
+ <filename>/usr/local/bin</filename> 這個子目錄的檔案系統)
+ 因為某些原因並沒有被正常的 mount 起來的話,<username>root</username>
+ 將無法正常的登入系統進行維修 (雖然說你重開機成單人模式就會問你要
+ 載入哪個 shell)。</para>
+
+ <para>有些人使用 <username>toor</username> 帳號進行每日的
+ <username>root</username> 維護工作,如此可以使用非標準的
+ shell,而 <username>root</username> 可以保留標準 shell,
+ 以因應單一使用者模式 (single user mode) 或緊急狀況處理。
+ 依照系統內定值,你將無法使用 <username>toor</username> 登入,
+ 因為這個帳號尚未更改密碼設定。因此你如果你想啟動這個帳號,你需要
+ 使用 <username>root</username> 登入系統並且修改
+ <username>toor</username> 的密碼。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="suidperl">
+ <para>為什麼 <command>suidperl</command> 無法正常運作?</para>
+ </question>
+
+ <answer>
+ <para>因為某些安全的考,<command>suidperl</command> 內定的安裝
+ 並沒有設定 suid bit。系統管理者可以依照以下命令啟動 suid 設定。
+ </para>
+
+ <screen>&prompt.root; <userinput>chmod u+s /usr/bin/suidperl</userinput></screen>
+
+ <para>如果你想要在由 source 升級時 <command>suidperl</command> 內定
+ 啟動 suid 功能的話,編輯 <filename>/etc/make.conf</filename> 加入
+ <varname>ENABLE_SUIDPERL=true</varname> 然後執行
+ <command>make buildworld</command>。</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+ <chapter id="ppp">
+ <title>PPP</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="userppp">
+ <para>I cannot make &man.ppp.8; work. What am I doing wrong?</para>
+ </question>
+
+ <answer>
+ <para>You should first read the
+ &man.ppp.8;
+ man page and the <ulink
+ url="../handbook/ppp-and-slip.html#USERPPP">
+ PPP section of the handbook</ulink>. Enable logging with
+ the command</para>
+
+ <programlisting>set log Phase Chat Connect Carrier lcp ipcp ccp command</programlisting>
+
+ <para>This command may be typed at the
+ &man.ppp.8; command prompt or it may be
+ entered in the <filename>/etc/ppp/ppp.conf</filename>
+ configuration file (the start of the
+ <literal>default</literal> section is the best
+ place to put it). Make sure that
+ <filename>/etc/syslog.conf</filename> (see &man.syslog.conf.5;) contains the lines</para>
+
+ <programlisting>!ppp
+*.* /var/log/ppp.log</programlisting>
+
+ <para>and that the file <filename>/var/log/ppp.log</filename>
+ exists. You can now find out a lot about what is going on
+ from the log file. Do not worry if it does not all make sense.
+ If you need to get help from someone, it may make sense to
+ them.</para>
+
+ <para>If your version of &man.ppp.8; does not understand the
+ <command>set log</command> command, you should download the
+ <ulink url="http://people.FreeBSD.org/~brian/">
+ latest version</ulink>. It will build on FreeBSD version
+ 2.1.5 and higher.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-hangs">
+ <para>Why does &man.ppp.8; hang when I run it?</para>
+ </question>
+
+ <answer>
+ <para>This is usually because your hostname will not resolve.
+ The best way to fix this is to make sure that
+ <filename>/etc/hosts</filename> is consulted by your
+ resolver first by editing <filename>/etc/host.conf</filename>
+ and putting the <literal>hosts</literal> line first. Then,
+ simply put an entry in <filename>/etc/hosts</filename> for
+ your local machine. If you have no local network, change your
+ <hostid>localhost</hostid> line:</para>
+
+ <programlisting>127.0.0.1 foo.bar.com foo localhost</programlisting>
+
+ <para>Otherwise, simply add another entry for your host.
+ Consult the relevant man pages for more details.</para>
+
+ <para>You should be able to successfully
+ <command>ping -c1 `hostname`</command> when you are done.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-nodial-auto">
+ <para>Why will &man.ppp.8; not dial in <literal>-auto</literal>
+ mode?</para>
+ </question>
+
+ <answer>
+ <para>First, check that you have got a default route. By running
+ <command>netstat -rn</command> (see &man.netstat.1;), you should see two entries like this:</para>
+
+ <programlisting>Destination Gateway Flags Refs Use Netif Expire
+default 10.0.0.2 UGSc 0 0 tun0
+10.0.0.2 10.0.0.1 UH 0 0 tun0</programlisting>
+
+ <para>This is assuming that you have used the addresses from the
+ handbook, the man page or from the ppp.conf.sample file.
+ If you do not have a default route, it may be because you are
+ running an old version of &man.ppp.8;
+ that does not understand the word <literal>HISADDR</literal>
+ in the ppp.conf file. If your version of
+ &man.ppp.8; is from before FreeBSD
+ 2.2.5, change the</para>
+
+ <programlisting>add 0 0 HISADDR</programlisting>
+
+ <para>line to one saying</para>
+
+
+ <programlisting>add 0 0 10.0.0.2</programlisting>
+
+ <para>Another reason for the default route line being missing
+ is that you have mistakenly set up a default router in your
+ <filename>/etc/rc.conf</filename> (see &man.rc.conf.5;) file (this file was called
+ <filename>/etc/sysconfig</filename> prior to release 2.2.2),
+ and you have omitted the line saying</para>
+
+ <programlisting>delete ALL</programlisting>
+
+ <para>from <filename>ppp.conf</filename>. If this is the case,
+ go back to the <ulink
+ url="../handbook/ppp-and-slip.html#USERPPP-FINAL">
+ Final system configuration</ulink> section of the
+ handbook.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="no-route-to-host">
+ <para>What does <errorname>No route to host</errorname> mean?</para>
+ </question>
+
+ <answer>
+ <para>This error is usually due to a missing</para>
+
+ <programlisting>MYADDR:
+ delete ALL
+ add 0 0 HISADDR</programlisting>
+
+ <para>section in your <filename>/etc/ppp/ppp.linkup</filename>
+ file. This is only necessary if you have a dynamic IP address
+ or do not know the address of your gateway. If you are using
+ interactive mode, you can type the following after entering
+ <literal>packet mode</literal> (packet mode is
+ indicated by the capitalized <acronym>PPP</acronym> in the
+ prompt):</para>
+
+ <programlisting>delete ALL
+add 0 0 HISADDR</programlisting>
+
+ <para>Refer to the <ulink
+ url="../handbook/ppp-and-slip.html#USERPPP-DYNAMICIP">
+ PPP and Dynamic IP addresses</ulink> section of the handbook
+ for further details.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="connection-threeminutedrop">
+ <para>Why does my connection drop after about 3 minutes?</para>
+ </question>
+
+ <answer>
+ <para>The default PPP timeout is 3 minutes. This can be
+ adjusted with the line</para>
+
+ <programlisting>set timeout <replaceable>NNN</replaceable></programlisting>
+
+ <para>where <replaceable>NNN</replaceable> is the number of
+ seconds of inactivity before the connection is closed. If
+ <replaceable>NNN</replaceable> is zero, the connection is never
+ closed due to a timeout. It is possible to put this command in
+ the <filename>ppp.conf</filename> file, or to type it at the
+ prompt in interactive mode. It is also possible to adjust it on
+ the fly while the line is active by connecting to
+ <application>ppp</application>s server socket using
+ &man.telnet.1; or &man.pppctl.8;.
+ Refer to the
+ &man.ppp.8; man
+ page for further details.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-drop-heavy-load">
+ <para>Why does my connection drop under heavy load?</para>
+ </question>
+
+ <answer>
+ <para>If you have Link Quality Reporting (LQR) configured,
+ it is possible that too many LQR packets are lost between
+ your machine and the peer. Ppp deduces that the line must
+ therefore be bad, and disconnects. Prior to FreeBSD version
+ 2.2.5, LQR was enabled by default. It is now disabled by
+ default. LQR can be disabled with the line</para>
+
+ <programlisting>disable lqr</programlisting>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-drop-random">
+ <para>Why does my connection drop after a random amount of
+ time?</para>
+ </question>
+
+ <answer>
+ <para>Sometimes, on a noisy phone line or even on a line with
+ call waiting enabled, your modem may hang up because it
+ thinks (incorrectly) that it lost carrier.</para>
+
+ <para>There is a setting on most modems for determining how
+ tolerant it should be to temporary losses of carrier. On a
+ USR Sportster for example, this is measured by the S10
+ register in tenths of a second. To make your modem more
+ forgiving, you could add the following send-expect sequence
+ to your dial string:</para>
+
+ <programlisting>set dial "...... ATS10=10 OK ......"</programlisting>
+
+ <para>Refer to your modem manual for details.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-hangs-random">
+ <para>Why does my connection hang after a random amount of
+ time?</para>
+ </question><answer>
+
+ <para>Many people experience hung connections with no apparent
+ explanation. The first thing to establish is which side of
+ the link is hung.</para>
+
+ <para>If you are using an external modem, you can simply try
+ using &man.ping.8; to see if the
+ <acronym>TD</acronym> light is flashing when you transmit data.
+ If it flashes (and the <acronym>RD</acronym> light does not),
+ the problem is with the remote end. If <acronym>TD</acronym>
+ does not flash, the problem is local. With an internal modem,
+ you will need to use the <literal>set server</literal> command in
+ your <filename>ppp.conf</filename> file. When the hang occurs,
+ connect to &man.ppp.8; using &man.pppctl.8;. If your network connection
+ suddenly revives (PPP was revived due to the activity on the
+ diagnostic socket) or if you cannot connect (assuming the
+ <literal>set socket</literal> command succeeded at startup
+ time), the problem is local. If you can connect and things are
+ still hung, enable local async logging with <literal>set log
+ local async</literal> and use &man.ping.8; from
+ another window or terminal to make use of the link. The async
+ logging will show you the data being transmitted and received
+ on the link. If data is going out and not coming back, the
+ problem is remote.</para>
+
+ <para>Having established whether the problem is local or remote,
+ you now have two possibilities:</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-remote-not-responding">
+ <para>The remote end is not responding. What can I do?</para>
+ </question>
+
+ <answer>
+ <para>There is very little you can do about this. Most ISPs
+ will refuse to help if you are not running a Microsoft OS.
+ You can <literal>enable lqr</literal> in your
+ <filename>ppp.conf</filename> file, allowing &man.ppp.8; to detect
+ the remote failure and hang up, but this detection is
+ relatively slow and therefore not that useful. You may want to
+ avoid telling your ISP that you are running user-PPP...</para>
+
+ <para>First, try disabling all local compression by adding the
+ following to your configuration:</para>
+
+ <programlisting>disable pred1 deflate deflate24 protocomp acfcomp shortseq vj
+deny pred1 deflate deflate24 protocomp acfcomp shortseq vj</programlisting>
+
+ <para>Then reconnect to ensure that this makes no difference.
+ If things improve or if the problem is solved completely,
+ determine which setting makes the difference through trial
+ and error. This will provide good ammunition when you contact
+ your ISP (although it may make it apparent that you are not
+ running a Microsoft product).</para>
+
+ <para>Before contacting your ISP, enable async logging locally
+ and wait until the connection hangs again. This may use up
+ quite a bit of disk space. The last data read from the port
+ may be of interest. It is usually ascii data, and may even
+ describe the problem
+ (<quote>Memory fault, core dumped</quote>?).</para>
+
+ <para>If your ISP is helpful, they should be able to enable
+ logging on their end, then when the next link drop occurs,
+ they may be able to tell you why their side is having a
+ problem. Feel free to send the details to &a.brian;, or
+ even to ask your ISP to contact me directly.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-hung">
+ <para>&man.ppp.8; has hung. What can I do?</para>
+ </question>
+
+ <answer>
+ <para>Your best bet here is to rebuild &man.ppp.8; by adding
+ <literal>CFLAGS+=-g</literal> and <literal>STRIP=</literal>
+ to the end of the Makefile, then doing a
+ <command>make clean &amp;&amp; make &amp;&amp; make
+ install</command>. When &man.ppp.8; hangs, find the &man.ppp.8; process id
+ with <command>ps ajxww | fgrep ppp</command> and run
+ <command>gdb ppp <replaceable>PID</replaceable></command>.
+ From the gdb prompt, you can then use <command>bt</command>
+ to get a stack trace.</para>
+
+ <para>Send the results to <email>brian@Awfulhak.org</email>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-loginok-thennothing">
+ <para>Why does nothing happen after the <quote>Login OK!</quote>
+ message?</para>
+ </question>
+
+ <answer>
+ <para>Prior to FreeBSD version 2.2.5, once the link was
+ established, &man.ppp.8;
+ would wait for the peer to initiate the Line Control Protocol
+ (LCP). Many ISPs will not initiate negotiations and expect
+ the client to do so. To force
+ &man.ppp.8; to initiate the LCP, use the
+ following line:</para>
+
+ <programlisting>set openmode active</programlisting>
+
+ <note>
+ <para>It usually does no
+ harm if both sides initiate negotiation, so openmode is now
+ active by default. However, the next section explains when
+ it <emphasis>does</emphasis> do some harm.</para>
+ </note>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-same-magic">
+ <para>I keep seeing errors about magic being the same. What does
+ it mean?</para>
+ </question>
+
+ <answer>
+ <para>Occasionally, just after connecting, you may see messages
+ in the log that say <quote>magic is the same</quote>.
+ Sometimes, these messages are harmless, and sometimes one side
+ or the other exits. Most PPP implementations cannot survive
+ this problem, and even if the link seems to come up, you will see
+ repeated configure requests and configure acknowledgments in
+ the log file until &man.ppp.8; eventually gives up and closes the
+ connection.</para>
+
+ <para>This normally happens on server machines with slow disks
+ that are spawning a getty on the port, and executing &man.ppp.8; from
+ a login script or program after login. I have also heard reports
+ of it happening consistently when using slirp. The reason is
+ that in the time taken between &man.getty.8; exiting and &man.ppp.8; starting,
+ the client-side &man.ppp.8; starts sending Line Control Protocol (LCP)
+ packets. Because ECHO is still switched on for the port on
+ the server, the client &man.ppp.8; sees these packets
+ <quote>reflect</quote> back.</para>
+
+ <para>One part of the LCP negotiation is to establish a magic
+ number for each side of the link so that
+ <quote>reflections</quote> can be detected. The protocol says
+ that when the peer tries to negotiate the same magic number, a
+ NAK should be sent and a new magic number should be chosen.
+ During the period that the server port has ECHO turned on, the
+ client &man.ppp.8; sends LCP packets, sees the same magic in the
+ reflected packet and NAKs it. It also sees the NAK reflect
+ (which also means &man.ppp.8; must change its magic). This produces a
+ potentially enormous number of magic number changes, all of
+ which are happily piling into the server's tty buffer. As soon
+ as &man.ppp.8; starts on the server, it is flooded with magic number
+ changes and almost immediately decides it has tried enough to
+ negotiate LCP and gives up. Meanwhile, the client, who no
+ longer sees the reflections, becomes happy just in time to see
+ a hangup from the server.</para>
+
+ <para>This can be avoided by allowing the peer to start
+ negotiating with the following line in your ppp.conf
+ file:</para>
+
+ <programlisting>set openmode passive</programlisting>
+
+ <para>This tells &man.ppp.8; to wait for the server to initiate LCP
+ negotiations. Some servers however may never initiate
+ negotiations. If this is the case, you can do something
+ like:</para>
+
+ <programlisting>set openmode active 3</programlisting>
+
+ <para>This tells &man.ppp.8; to be passive for 3 seconds, and then to
+ start sending LCP requests. If the peer starts sending
+ requests during this period, &man.ppp.8; will immediately respond
+ rather than waiting for the full 3 second period.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-lcp-constant">
+ <para>LCP negotiations continue until the connection is
+ closed. What is wrong?</para>
+ </question>
+
+ <answer>
+ <para>There is currently an implementation mis-feature in
+ &man.ppp.8; where it does not associate
+ LCP, CCP &amp; IPCP responses with their original requests. As
+ a result, if one PPP
+ implementation is more than 6 seconds slower than the other
+ side, the other side will send two additional LCP configuration
+ requests. This is fatal.</para>
+
+ <para>Consider two implementations,
+ <hostid>A</hostid> and
+ <hostid>B</hostid>. <hostid>A</hostid> starts
+ sending LCP requests immediately after connecting and
+ <hostid>B</hostid> takes 7 seconds to start. When
+ <hostid>B</hostid> starts, <hostid>A</hostid>
+ has sent 3 LCP REQs. We are assuming the line has ECHO switched
+ off, otherwise we would see magic number problems as described in
+ the previous section. <hostid>B</hostid> sends a
+ REQ, then an ACK to the first of
+ <hostid>A</hostid>'s REQs. This results in
+ <hostid>A</hostid> entering the <acronym>OPENED</acronym>
+ state and sending and ACK (the first) back to
+ <hostid>B</hostid>. In the meantime,
+ <hostid>B</hostid> sends back two more ACKs in response to
+ the two additional REQs sent by <hostid>A</hostid>
+ before <hostid>B</hostid> started up.
+ <hostid>B</hostid> then receives the first ACK from
+ <hostid>A</hostid> and enters the
+ <acronym>OPENED</acronym> state.
+ <hostid>A</hostid> receives the second ACK from
+ <hostid>B</hostid> and goes back to the
+ <acronym>REQ-SENT</acronym> state, sending another (forth) REQ
+ as per the RFC. It then receives the third ACK and enters the
+ <acronym>OPENED</acronym> state. In the meantime,
+ <hostid>B</hostid> receives the forth REQ from
+ <hostid>A</hostid>, resulting in it reverting to the
+ <acronym>ACK-SENT</acronym> state and sending
+ another (second) REQ and (forth) ACK as per the RFC.
+ <hostid>A</hostid> gets the REQ, goes into
+ <acronym>REQ-SENT</acronym> and sends another REQ. It
+ immediately receives the following ACK and enters
+ <acronym>OPENED</acronym>.</para>
+
+ <para>This goes on until one side figures out that they are
+ getting nowhere and gives up.</para>
+
+ <para>The best way to avoid this is to configure one side to be
+ <literal>passive</literal> - that is, make one side
+ wait for the other to start negotiating. This can be done
+ with the</para>
+
+ <programlisting>set openmode passive</programlisting>
+
+ <para>command. Care should be taken with this option. You
+ should also use the</para>
+
+ <programlisting>set stopped N</programlisting>
+
+ <para>command to limit the amount of time that
+ &man.ppp.8; waits for the peer to begin
+ negotiations. Alternatively, the</para>
+
+ <programlisting>set openmode active N</programlisting>
+
+ <para>command (where <replaceable>N</replaceable> is the
+ number of seconds to wait before starting negotiations) can be
+ used. Check the manual page for details.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-lockups">
+ <para>Why does &man.ppp.8; lock up shortly after connection?</para>
+ </question>
+
+ <answer>
+ <para>Prior to version 2.2.5 of FreeBSD, it was possible that
+ your link was disabled shortly after connection due to
+ &man.ppp.8; mis-handling Predictor1
+ compression negotiation. This would only happen if both sides
+ tried to negotiate different Compression Control Protocols
+ (CCP). This problem is now corrected, but if you are still
+ running an old version of &man.ppp.8;
+ the problem can be circumvented with the line</para>
+
+ <programlisting>disable pred1</programlisting>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-shell-test-lockup">
+ <para>Why does &man.ppp.8; lock up when I shell out to test it?</para>
+ </question>
+
+ <answer>
+ <para>When you execute the <command>shell</command> or
+ <command>!</command> command, &man.ppp.8; executes a
+ shell (or if you have passed any arguments,
+ &man.ppp.8; will execute those arguments). Ppp will
+ wait for the command to complete before continuing. If you
+ attempt to use the PPP link while running the command, the link
+ will appear to have frozen. This is because
+ &man.ppp.8; is waiting for the command to
+ complete.</para>
+
+ <para>If you wish to execute commands like this, use the
+ <command>!bg</command> command instead. This will execute
+ the given command in the background, and &man.ppp.8; can continue to
+ service the link.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-nullmodem">
+ <para>Why does &man.ppp.8; over a null-modem cable never exit?</para>
+ </question>
+
+ <answer>
+ <para>There is no way for &man.ppp.8; to
+ automatically determine that a direct connection has been
+ dropped. This is due to the lines that are used in a
+ null-modem serial cable. When using this sort of connection,
+ LQR should always be enabled with the line</para>
+
+ <programlisting>enable lqr</programlisting>
+
+ <para>LQR is accepted by default if negotiated by the peer.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-auto-noreasondial">
+ <para>Why does &man.ppp.8; dial for no reason in -auto mode?</para>
+ </question><answer>
+
+ <para>If &man.ppp.8; is dialing
+ unexpectedly, you must determine the cause, and set up Dial
+ filters (dfilters) to prevent such dialing.</para>
+
+ <para>To determine the cause, use the following line:</para>
+
+ <programlisting>set log +tcp/ip</programlisting>
+
+ <para>This will log all traffic through the connection. The
+ next time the line comes up unexpectedly, you will see the
+ reason logged with a convenient timestamp next to it.</para>
+
+ <para>You can now disable dialing under these circumstances.
+ Usually, this sort of problem arises due to DNS lookups. To
+ prevent DNS lookups from establishing a connection (this will
+ <emphasis>not</emphasis> prevent
+ &man.ppp.8; from passing the packets
+ through an established connection), use the following:</para>
+
+ <programlisting>set dfilter 1 deny udp src eq 53
+set dfilter 2 deny udp dst eq 53
+set dfilter 3 permit 0/0 0/0</programlisting>
+
+ <para>This is not always suitable, as it will effectively break
+ your demand-dial capabilities - most programs will need a DNS
+ lookup before doing any other network related things.</para>
+
+ <para>In the DNS case, you should try to determine what is
+ actually trying to resolve a host name. A lot of the time,
+ &man.sendmail.8; is the culprit. You should make sure that
+ you tell sendmail not to do any DNS lookups in its
+ configuration file. See the section on
+ <link linkend="ispmail">Mail Configuration</link> for details
+ on how to create your own configuration file and what should
+ go into it. You may also want to add the following line to
+ your <filename>.mc</filename> file:</para>
+
+ <programlisting>define(`confDELIVERY_MODE', `d')dnl</programlisting>
+
+ <para>This will make sendmail queue everything until the queue
+ is run (usually, sendmail is invoked with
+ <option>-bd -q30m</option>, telling it to run the queue every
+ 30 minutes) or until a <command>sendmail -q</command> is done
+ (perhaps from your ppp.linkup file).</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ccp-errors">
+ <para>What do these CCP errors mean?</para>
+ </question>
+
+ <answer>
+ <para>I keep seeing the following errors in my log file:</para>
+
+ <programlisting>CCP: CcpSendConfigReq
+CCP: Received Terminate Ack (1) state = Req-Sent (6)</programlisting>
+
+ <para>This is because &man.ppp.8; is trying to negotiate Predictor1
+ compression, and the peer does not want to negotiate any
+ compression at all. The messages are harmless, but if you
+ wish to remove them, you can disable Predictor1 compression
+ locally too:</para>
+
+ <programlisting>disable pred1</programlisting>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-lockup-ioerrors">
+ <para>Why does &man.ppp.8; lock up during file transfers with IO
+ errors?</para>
+ </question>
+
+ <answer>
+ <para>Under FreeBSD 2.2.2 and before, there was a bug in the
+ tun driver that prevents incoming packets of a size larger
+ than the tun interface's MTU size. Receipt of a packet
+ greater than the MTU size results in an IO error being logged
+ via syslogd.</para>
+
+ <para>The PPP specification says that an MRU of 1500 should
+ <emphasis>always</emphasis> be accepted as a minimum,
+ despite any LCP negotiations, therefore it is possible that
+ should you decrease the MTU to less than 1500, your ISP will
+ transmit packets of 1500 regardless, and you will tickle this
+ non-feature - locking up your link.</para>
+
+ <para>The problem can be circumvented by never setting an MTU of
+ less than 1500 under FreeBSD 2.2.2 or before.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-connectionspeed">
+ <para>Why does &man.ppp.8; not log my connection speed?</para>
+ </question>
+
+ <answer>
+
+ <para>In order to log all lines of your modem
+ <quote>conversation</quote>, you must enable the
+ following:</para>
+
+ <programlisting>set log +connect</programlisting>
+
+ <para>This will make &man.ppp.8; log
+ everything up until the last requested <quote>expect</quote>
+ string.</para>
+
+ <para>If you wish to see your connect speed and are using PAP
+ or CHAP (and therefore do not have anything to
+ <quote>chat</quote> after the CONNECT in the dial script - no
+ <literal>set login</literal> script), you must make sure that
+ you instruct &man.ppp.8; to <quote>expect</quote> the whole CONNECT
+ line, something like this:</para>
+
+ <programlisting>set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 4 \
+ \"\" ATZ OK-ATZ-OK ATDT\\T TIMEOUT 60 CONNECT \\c \\n"</programlisting>
+
+ <para>Here, we get our CONNECT, send nothing, then expect a
+ line-feed, forcing &man.ppp.8; to read
+ the whole CONNECT response.</para>
+
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-ignores-backslash">
+ <para>Why does &man.ppp.8; ignore the <literal>\</literal> character
+ in my chat script?</para>
+ </question><answer>
+
+ <para>Ppp parses each line in your config files so that it can
+ interpret strings such as
+ <literal>set phone "123 456 789"</literal> correctly (and
+ realize that the number is actually only
+ <emphasis>one</emphasis> argument. In order to specify a
+ <literal>&quot;</literal> character, you must escape it
+ using a backslash (<literal>\</literal>).</para>
+
+ <para>When the chat interpreter parses each argument, it
+ re-interprets the argument in order to find any special
+ escape sequences such as <literal>\P</literal> or
+ <literal>\T</literal> (see the man page). As a result of this
+ double-parsing, you must remember to use the correct number of
+ escapes.</para>
+
+ <para>If you wish to actually send a <literal>\</literal>
+ character to (say) your modem, you would need something
+ like:</para>
+
+ <programlisting>set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK"</programlisting>
+
+ <para>resulting in the following sequence:</para>
+
+ <programlisting>ATZ
+OK
+AT\X
+OK</programlisting>
+
+ <para>or</para>
+
+ <programlisting>set phone 1234567
+set dial "\"\" ATZ OK ATDT\\T"</programlisting>
+
+ <para>resulting in the following sequence:</para>
+
+ <programlisting>ATZ
+OK
+ATDT1234567</programlisting>
+
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-segfault-nocore">
+ <para>Why does &man.ppp.8; get a seg-fault, but I see no
+ <filename>ppp.core</filename> file?</para>
+ </question>
+
+ <answer>
+ <para>Ppp (or any other program for that matter) should never
+ dump core. Because &man.ppp.8; runs with an effective user id of 0,
+ the operating system will not write &man.ppp.8;'s core image to disk
+ before terminating it. If, however &man.ppp.8;
+ is actually terminating due to a
+ segmentation violation or some other signal that normally
+ causes core to be dumped, <emphasis>and</emphasis>
+ you are sure you are using the latest version (see the start of
+ this section), then you should do the following:</para>
+
+ <screen>&prompt.user; <userinput>tar xfz ppp-*.src.tar.gz</userinput>
+&prompt.user; <userinput>cd ppp*/ppp</userinput>
+&prompt.user; <userinput>echo STRIP= &gt;&gt;Makefile</userinput>
+&prompt.user; <userinput>echo CFLAGS+=-g &gt;&gt;Makefile</userinput>
+&prompt.user; <userinput>make clean all</userinput>
+&prompt.user; <userinput>su</userinput>
+&prompt.root; <userinput>make install</userinput>
+&prompt.root; <userinput>chmod 555 /usr/sbin/ppp</userinput></screen>
+
+ <para>You will now have a debuggable version of &man.ppp.8; installed.
+ You will have to be <username>root</username> to run &man.ppp.8; as all of its privileges
+ have been revoked. When you start &man.ppp.8;, take a careful note
+ of what your current directory was at the time.</para>
+
+ <para>Now, if and when &man.ppp.8; receives the segmentation violation,
+ it will dump a core file called <filename>ppp.core</filename>. You should then do
+ the following:</para>
+
+ <screen>&prompt.user; <userinput>su</userinput>
+&prompt.root; <userinput>gdb /usr/sbin/ppp ppp.core</userinput>
+<prompt>(gdb)</prompt> <userinput>bt</userinput>
+.....
+<prompt>(gdb)</prompt> <userinput>f 0</userinput>
+....
+<prompt>(gdb)</prompt> <userinput>i args</userinput>
+....
+<prompt>(gdb)</prompt> <userinput>l</userinput>
+.....</screen>
+
+ <para>All of this information should be given alongside your
+ question, making it possible to diagnose the problem.</para>
+
+ <para>If you are familiar with gdb, you may wish to find out some
+ other bits and pieces such as what actually caused the dump and
+ the addresses &amp; values of the relevant variables.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-autodialprocess-noconnect">
+ <para>Why does the process that forces a dial in auto mode never
+ connect?</para>
+ </question>
+
+ <answer>
+ <para>This was a known problem with
+ &man.ppp.8; set up to negotiate a
+ dynamic local IP number with the peer in auto mode. It is
+ fixed in the latest version - search the man page for
+ <literal>iface</literal>.</para>
+
+ <para>The problem was that when that initial program calls
+ &man.connect.2;, the IP number of the tun interface is assigned
+ to the socket endpoint. The kernel creates the first outgoing
+ packet and writes it to the tun device.
+ &man.ppp.8; then reads the packet and
+ establishes a connection. If, as a result of
+ &man.ppp.8;'s dynamic IP assignment, the
+ interface address is changed, the original socket endpoint will
+ be invalid. Any subsequent packets sent to the peer will
+ usually be dropped. Even if they are not, any responses will
+ not route back to the originating machine as the IP number is
+ no longer owned by that machine.</para>
+
+ <para>There are several theoretical ways to approach this
+ problem. It would be nicest if the peer would re-assign the
+ same IP number if possible <literal>:-)</literal>
+ The current version of &man.ppp.8; does
+ this, but most other implementations do not.</para>
+
+ <para>The easiest method from our side would be to never change
+ the tun interface IP number, but instead to change all outgoing
+ packets so that the source IP number is changed from the
+ interface IP to the negotiated IP on the fly. This is
+ essentially what the <literal>iface-alias</literal> option in
+ the latest version of &man.ppp.8; is
+ doing (with the help of
+ &man.libalias.3; and &man.ppp.8;'s <option>-nat</option> switch) -
+ it is maintaining all previous interface addresses and NATing
+ them to the last negotiated address.</para>
+
+ <para>Another alternative (and probably the most reliable) would
+ be to implement a system call that changes all bound sockets
+ from one IP to another. &man.ppp.8; would
+ use this call to modify the sockets of all existing programs
+ when a new IP number is negotiated. The same system call could
+ be used by dhcp clients when they are forced to re-bind() their
+ sockets.</para>
+
+ <para>Yet another possibility is to allow an interface to be
+ brought up without an IP number. Outgoing packets would be
+ given an IP number of 255.255.255.255 up until the first
+ SIOCAIFADDR ioctl is done. This would result in fully binding
+ the socket. It would be up to &man.ppp.8;
+ to change the source IP number, but only if it is set to
+ 255.255.255.255, and only the IP number and IP checksum would
+ need to change. This, however is a bit of a hack as the kernel
+ would be sending bad packets to an improperly configured
+ interface, on the assumption that some other mechanism is
+ capable of fixing things retrospectively.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-nat-games">
+ <para>Why do most games not work with the -nat switch?</para>
+ </question>
+
+ <answer>
+ <para>The reason games and the like do not work when libalias
+ is in use is that the machine on the outside will try to open a
+ connection or send (unsolicited) UDP packets to the machine on
+ the inside. The NAT software does not know that it should send
+ these packets to the interior machine.</para>
+
+ <para>To make things work, make sure that the only thing
+ running is the software that you are having problems with, then
+ either run tcpdump on the tun interface of the gateway or
+ enable &man.ppp.8; tcp/ip logging (<literal>set log +tcp/ip</literal>)
+ on the gateway.</para>
+
+ <para>When you start the offending software, you should see
+ packets passing through the gateway machine. When something
+ comes back from the outside, it will be dropped (that is the
+ problem). Note the port number of these packets then shut down
+ the offending software. Do this a few times to see if the port
+ numbers are consistent. If they are, then the following line in
+ the relevant section of <filename>/etc/ppp/ppp.conf</filename> will make the
+ software functional:</para>
+
+ <programlisting>nat port <replaceable>proto</replaceable> <replaceable>internalmachine</replaceable>:<replaceable>port</replaceable> <replaceable>port</replaceable></programlisting>
+
+ <para>where <replaceable>proto</replaceable> is either
+ <literal>tcp</literal> or <literal>udp</literal>,
+ <replaceable>internalmachine</replaceable> is the machine that
+ you want the packets to be sent to and
+ <replaceable>port</replaceable> is the destination port number
+ of the packets.</para>
+
+ <para>You will not be able to use the software on other machines
+ without changing the above command, and running the software
+ on two internal machines at the same time is out of the question
+ - after all, the outside world is seeing your entire internal
+ network as being just a single machine.</para>
+
+ <para>If the port numbers are not consistent, there are three
+ more options:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Submit support in
+ libalias. Examples of <quote>special cases</quote> can be found
+ in <filename>/usr/src/lib/libalias/alias_*.c</filename>
+ (<filename>alias_ftp.c</filename> is a good prototype). This
+ usually involves reading certain recognised outgoing packets,
+ identifying the instruction that tells the outside machine to
+ initiate a connection back to the internal machine on a
+ specific (random) port and setting up a <quote>route</quote> in
+ the alias table so that the subsequent packets know where to
+ go.</para>
+
+ <para>This is the most difficult solution, but it is the best
+ and will make the software work with multiple machines.</para>
+ </listitem>
+
+ <listitem>
+ <para>Use a proxy. The
+ application may support socks5 for example, or (as in the
+ <quote>cvsup</quote> case) may have a <quote>passive</quote>
+ option that avoids ever requesting that the peer open
+ connections back to the local machine.</para>
+ </listitem>
+
+ <listitem>
+ <para>Redirect everything to
+ the internal machine using <literal>nat addr</literal>. This
+ is the sledge-hammer approach.</para>
+ </listitem>
+ </orderedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="useful-port-numbers">
+ <para>Has anybody made a list of useful port numbers?</para>
+ </question><answer>
+
+ <para>Not yet, but this is intended to grow into such a list
+ (if any interest is shown). In each example,
+ <replaceable>internal</replaceable> should be replaced with
+ the IP number of the machine playing the game.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><application>Asheron's Call</application></para>
+
+ <para><literal>nat port udp
+ <replaceable>internal</replaceable>
+ :65000 65000</literal></para>
+
+ <para>Manually change the port number within the game to
+ 65000. If you have got a number of machines that you wish
+ to play on assign a unique port number for each (i.e.
+ 65001, 65002, etc) and add a <literal>nat port</literal>
+ line for each one.</para>
+ </listitem>
+
+ <listitem>
+ <para><application>Half Life</application></para>
+
+ <para><literal>nat port udp
+ <replaceable>internal</replaceable>:27005
+ 27015</literal></para>
+ </listitem>
+
+ <listitem>
+ <para><application>PCAnywhere 8.0</application></para>
+
+ <para><literal>nat port udp
+ <replaceable>internal</replaceable>:5632
+ 5632</literal></para>
+
+ <para><literal>nat port tcp
+ <replaceable>internal</replaceable>:5631
+ 5631</literal></para>
+ </listitem>
+
+ <listitem>
+ <para><application>Quake</application></para>
+
+ <para><literal>nat port udp
+ <replaceable>internal</replaceable>:6112
+ 6112</literal></para>
+
+ <para>Alternatively, you may want to take a look at <ulink
+ url="http://www.battle.net/support/proxy/">
+ www.battle.net</ulink> for Quake proxy support.</para>
+ </listitem>
+
+ <listitem>
+ <para><application>Quake 2</application></para>
+
+ <para><literal>nat port udp
+ <replaceable>internal</replaceable>:27901
+ 27910</literal></para>
+ <para><literal>nat port udp
+ <replaceable>internal</replaceable>:60021
+ 60021</literal></para>
+ <para><literal>nat port udp
+ <replaceable>internal</replaceable>:60040
+ 60040</literal></para>
+ </listitem>
+
+ <listitem>
+ <para><application>Red Alert</application></para>
+
+ <para><literal>nat port udp
+ <replaceable>internal</replaceable>:8675
+ 8675</literal></para>
+
+ <para><literal>nat port udp
+ <replaceable>internal</replaceable>:5009
+ 5009</literal></para>
+ </listitem>
+ </itemizedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="fcs-errors">
+ <para>What are FCS errors?</para>
+ </question>
+
+ <answer>
+ <para>FCS stands for <literal>F</literal>rame
+ <literal>C</literal>heck
+ <literal>S</literal>equence. Each PPP packet
+ has a checksum attached to ensure that the data being
+ received is the data being sent. If the FCS of an incoming
+ packet is incorrect, the packet is dropped and the HDLC FCS
+ count is increased. The HDLC error values can be displayed
+ using the <literal>show hdlc</literal> command.</para>
+
+ <para>If your link is bad (or if your serial driver is dropping
+ packets), you will see the occasional FCS error. This is not
+ usually worth worrying about although it does slow down the
+ compression protocols substantially. If you have an external
+ modem, make sure your cable is properly shielded from
+ interference - this may eradicate the problem.</para>
+
+ <para>If your link freezes as soon as you have connected and you
+ see a large number of FCS errors, this may be because your link
+ is not 8 bit clean. Make sure your modem is not using software
+ flow control (XON/XOFF). If your datalink
+ <emphasis>must</emphasis> use software flow control, use the
+ command <literal>set accmap 0x000a0000</literal> to tell
+ &man.ppp.8; to escape the <literal>^Q</literal> and
+ <literal>^S</literal> characters.</para>
+
+ <para>Another reason for seeing too many FCS errors may be that
+ the remote end has stopped talking <acronym>PPP</acronym>. You
+ may want to enable <literal>async</literal> logging at this
+ point to determine if the incoming data is actually a login or
+ shell prompt. If you have a shell prompt at the remote end,
+ it is possible to terminate &man.ppp.8; without dropping the line by
+ using the <literal>close lcp</literal> command (a following
+ <literal>term</literal> command will reconnect you to the shell
+ on the remote machine.</para>
+
+ <para>If nothing in your log file indicates why the link might
+ have been terminated, you should ask the remote administrator
+ (your ISP?) why the session was terminated.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry id="PPPoEwithNAT">
+ <question id="macos-win98-pppoe-freeze">
+ <para>Why do MacOS and Windows 98 connections freeze when
+ running PPPoE on the gateway?</para>
+ </question>
+
+ <answer>
+ <para>Thanks to Michael Wozniak
+ <email>mwozniak@netcom.ca</email> for figuring this out and
+ Dan Flemming <email>danflemming@mac.com</email> for the Mac
+ solution:</para>
+
+ <para>This is due to what is called a <quote>Black Hole</quote>
+ router. MacOS and Windows 98 (and maybe other Microsoft OSs)
+ send TCP packets with a requested segment size too big to fit
+ into a PPPoE frame (MTU is 1500 by default for Ethernet)
+ <emphasis>and</emphasis> have the <quote>do not
+ fragment</quote> bit set (default of TCP) and the Telco router
+ is not sending ICMP <quote>must fragment</quote> back to the
+ www site you are trying to load. (Alternatively, the router is
+ sending the ICMP packet correctly, but the firewall at the www
+ site is dropping it.) When the www server is sending
+ you frames that do not fit into the PPPoE pipe the Telco router
+ drops them on the floor and your page does not load (some
+ pages/graphics do as they are smaller than a MSS.) This seems
+ to be the default of most Telco PPPoE configurations (if only
+ they knew how to program a router... sigh...)</para>
+
+ <para>One fix is to use regedit on your 95/98 boxes to add the
+ following registry entry...</para>
+
+ <programlisting>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\MaxMTU</programlisting>
+
+ <para>It should be a string with a value <quote>1436</quote>, as
+ some ADSL routers are reported to be unable to deal with packets
+ larger than this. This registry key has been changed to
+ <literal>Tcpip\Parameters\Interfaces\<replaceable>ID for adapter</replaceable>\MTU</literal>
+ in Windows 2000 and becomes a DWORD.</para>
+
+ <para>Refer to the Microsoft Knowledge Base documents <ulink
+ url="http://support.microsoft.com/support/kb/articles/Q158/4/74.asp">Q158474
+ - Windows TCPIP Registry Entries</ulink> and <ulink
+ url="http://support.microsoft.com/support/kb/articles/Q120/6/42.asp">Q120642
+ - TCPIP & NBT Configuration Parameters for Windows
+ NT</ulink> for more information on changing Windows MTU to
+ work with a NAT router.</para>
+
+ <para>Another regedit possibility under Windows 2000 is to
+ set the
+ <literal>Tcpip\Parameters\Interfaces\<replaceable>ID for
+ adapter</replaceable>\EnablePMTUBHDetect</literal> DWORD
+ to 1 as mentioned in the Microsoft document 120642
+ mentioned above.</para>
+
+ <para>Unfortunately, MacOS does not provide an interface for
+ changing TCP/IP settings. However, there is commercial software
+ available, such as OTAdvancedTuner (OT for OpenTransport, the
+ MacOS TCP/IP stack) by <ulink
+ url="http://www.softworks.com/">Sustainable Softworks</ulink>,
+ that will allow users to customize TCP/IP settings. MacOS NAT
+ users should select <literal>ip_interface_MTU</literal> from
+ the drop-down menu, enter <literal>1450</literal> instead of
+ <literal>1500</literal> in the box, click the box next to
+ <literal>Save as Auto Configure</literal>, and click
+ <literal>Make Active</literal>.</para>
+
+ <para>The latest version of &man.ppp.8;
+ (2.3 or greater) has an <command>enable tcpmssfixup</command>
+ command that will automatically adjust the MSS to an appropriate
+ value. This facility is enabled by default. If you are stuck
+ with an older version of &man.ppp.8;, you
+ may want to look at the <application>tcpmssd</application>
+ port.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="desperation">
+ <para>None of this helps - I am desperate! What can I do?</para>
+ </question>
+
+ <answer>
+ <para>If all else fails, send as much information as you can,
+ including your config files, how you are starting
+ &man.ppp.8;, the relevant parts of your
+ log file and the output of the <command>netstat -rn</command>
+ command (before and after connecting) to the &a.questions; or
+ the <ulink url="news:comp.unix.bsd.freebsd.misc">
+ comp.unix.bsd.freebsd.misc</ulink> news group, and someone
+ should point you in the right direction.</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+ <chapter id="serial">
+ <title>Serial Communications</title>
+
+ <para>This section answers common questions about serial
+ communications with FreeBSD. PPP and SLIP are covered in the
+ <xref linkend="networking" remap="Networking"/> section.</para>
+
+
+ <qandaset>
+ <qandaentry>
+ <question id="found-serial">
+ <para>How do I tell if FreeBSD found my serial ports?</para>
+ </question>
+
+ <answer>
+ <para>As the FreeBSD kernel boots, it will probe for the serial
+ ports in your system for which the kernel was configured.
+ You can either watch your system closely for the messages it
+ prints or run the command</para>
+
+ <screen>&prompt.user; <userinput>dmesg | grep sio</userinput></screen>
+
+ <para>after your system is up and running.</para>
+
+ <para>Here is some example output from the above command:</para>
+
+ <programlisting>sio0 at 0x3f8-0x3ff irq 4 on isa
+sio0: type 16550A
+sio1 at 0x2f8-0x2ff irq 3 on isa
+sio1: type 16550A</programlisting>
+
+ <para>This shows two serial ports. The first is on irq 4, is
+ using port address <literal>0x3f8</literal>, and has a
+ 16550A-type UART chip. The second uses the same kind of chip
+ but is on irq 3 and is at port address <literal>0x2f8</literal>.
+ Internal modem cards are treated just like serial ports---except
+ that they always have a modem <quote>attached</quote> to the
+ port.</para>
+
+ <para>The <filename>GENERIC</filename> kernel includes support
+ for two serial ports using the same irq and port address
+ settings in the above example. If these settings are not
+ right for your system, or if you have added modem cards or have
+ more serial ports than your kernel is configured for, just
+ reconfigure your kernel. See section
+ <link linkend="make-kernel">about building a kernel</link> for
+ more details.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="found-modem">
+ <para>How do I tell if FreeBSD found my modem cards?</para>
+ </question>
+
+ <answer>
+ <para>Refer to the answer to the previous question.</para>
+
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="missing-tty0X">
+ <para>I just upgraded to 2.0.5 and my
+ <devicename>tty0<replaceable>X</replaceable></devicename>
+ are missing! How do I solve this problem?</para>
+ </question>
+
+ <answer>
+ <para>Do not worry, they have been merged with the
+ <devicename>ttyd<replaceable>X</replaceable></devicename> devices. You will have to change
+ any old configuration files you have, though.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="access-serial-ports">
+ <para>How do I access the serial ports on FreeBSD?</para>
+ </question>
+
+ <answer>
+ <para>The third serial port,
+ <devicename>sio2</devicename>
+ (see &man.sio.4;, known as COM3 in DOS), is on <devicename>/dev/cuaa2</devicename>
+ for dial-out devices, and on <devicename>/dev/ttyd2</devicename>
+ for dial-in devices. What is the difference between these two
+ classes of devices?</para>
+
+ <para>You use <devicename>ttyd<replaceable>X</replaceable></devicename> for dial-ins. When
+ opening <devicename>/dev/ttyd<replaceable>X</replaceable></devicename> in blocking mode, a
+ process will wait for the corresponding
+ <devicename>cuaa<replaceable>X</replaceable></devicename> device to become inactive, and then
+ wait for the carrier detect line to go active. When you open
+ the <devicename>cuaa<replaceable>X</replaceable></devicename> device, it makes sure the serial
+ port is not already in use by the <devicename>ttyd<replaceable>X</replaceable></devicename>
+ device. If the port is available, it <quote>steals</quote> it
+ from the <devicename>ttyd<replaceable>X</replaceable></devicename> device. Also, the
+ <devicename>cuaa<replaceable>X</replaceable></devicename> device does not care about carrier
+ detect. With this scheme and an auto-answer modem, you can have
+ remote users log in and you can still dial out with the same
+ modem and the system will take care of all the
+ conflicts.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="enable-multiport-serial">
+ <para>How do I enable support for a multiport serial
+ card?</para>
+ </question>
+
+ <answer>
+ <para>Again, the section on kernel configuration provides
+ information about configuring your kernel. For a multiport
+ serial card, place an &man.sio.4; line
+ for each serial port on the card in the kernel configuration
+ file. But place the irq and vector specifiers on only one of
+ the entries. All of the ports on the card should share one irq.
+ For consistency, use the last serial port to specify the irq.
+ Also, specify the <literal>COM_MULTIPORT</literal>
+ option.</para>
+
+ <para>The following example is for an AST 4-port serial card on
+ irq 7:</para>
+
+ <programlisting>options "COM_MULTIPORT"
+device sio4 at isa? port 0x2a0 tty flags 0x781
+device sio5 at isa? port 0x2a8 tty flags 0x781
+device sio6 at isa? port 0x2b0 tty flags 0x781
+device sio7 at isa? port 0x2b8 tty flags 0x781 irq 7 vector siointr</programlisting>
+
+ <para>The flags indicate that the master port has minor number 7
+ (<literal>0x700</literal>), diagnostics enabled during probe
+ (<literal>0x080</literal>), and all the ports share an irq
+ (<literal>0x001</literal>).</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="multiport-serial-share-irq">
+ <para>Can FreeBSD handle multiport serial cards sharing
+ irqs?</para>
+ </question>
+
+ <answer>
+ <para>Not yet. You will have to use a different irq for each
+ card.</para>
+
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="default-serial-params">
+ <para>Can I set the default serial parameters for a
+ port?</para>
+ </question>
+
+ <answer>
+ <para>The <devicename>ttyd<replaceable>X</replaceable></devicename> (or
+ <devicename>cuaa<replaceable>X</replaceable></devicename>) device is the regular device
+ you will want to open for your applications. When a process
+ opens the device, it will have a default set of terminal I/O
+ settings. You can see these settings with the command</para>
+
+ <screen>&prompt.root; <userinput>stty -a -f /dev/ttyd1</userinput></screen>
+
+ <para>When you change the settings to this device, the settings
+ are in effect until the device is closed. When it is reopened,
+ it goes back to the default set. To make changes to the
+ default set, you can open and adjust the settings of the
+ <quote>initial state</quote> device. For example, to turn on
+ <acronym>CLOCAL</acronym> mode, 8 bits, and
+ <acronym>XON/XOFF</acronym> flow control by default for
+ ttyd5, do:</para>
+
+ <screen>&prompt.root; <userinput>stty -f /dev/ttyid5 clocal cs8 ixon ixoff</userinput></screen>
+
+ <para>A good place to do this is in
+ <filename>/etc/rc.serial</filename>. Now, an application will
+ have these settings by default when it opens
+ <filename>ttyd5</filename>. It can still change these settings
+ to its liking, though.</para>
+
+ <para>You can also prevent certain settings from being changed
+ by an application by making adjustments to the
+ <quote>lock state</quote> device. For example, to lock the
+ speed of <devicename>ttyd5</devicename> to 57600 bps, do</para>
+
+ <screen>&prompt.root; <userinput>stty -f /dev/ttyld5 57600</userinput></screen>
+
+ <para>Now, an application that opens <devicename>ttyd5</devicename>
+ and tries to change the speed of the port will be stuck with
+ 57600 bps.</para>
+
+ <para>Naturally, you should make the initial state and lock state
+ devices writable only by <username>root</username>. The
+ &man.MAKEDEV.8;
+ script does <emphasis>NOT</emphasis> do this when it creates the
+ device entries.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="enable-dialup">
+ <para>How can I enable dialup logins on my modem?</para>
+ </question>
+
+ <answer>
+ <para>So you want to become an Internet service provider, eh?
+ First, you will need one or more modems that can auto-answer.
+ Your modem will need to assert carrier-detect when it detects a
+ carrier and not assert it all the time. It will need to hang up
+ the phone and reset itself when the data terminal ready
+ (<acronym>DTR</acronym>) line goes from on to off. It should
+ probably use <filename>RTS/CTS</filename> flow control or no
+ local flow control at all. Finally, it must use a constant
+ speed between the computer and itself, but (to be nice to your
+ callers) it should negotiate a speed between itself and the
+ remote modem.</para>
+
+ <para>For many Hayes command-set--compatible modems, this
+ command will make these settings and store them in
+ nonvolatile memory:</para>
+
+ <programlisting>AT &amp;C1 &amp;D3 &amp;K3 &amp;Q6 S0=1 &amp;W</programlisting>
+
+ <para>See the section <link linkend="direct-at">on sending AT
+ commands</link> below for information on how to make these
+ settings without resorting to an MS-DOS terminal program.</para>
+
+ <para>Next, make an entry in
+ <filename>/etc/ttys</filename> (see &man.ttys.5;) for the modem. This file lists all the ports
+ on which the operating system will await logins. Add a line
+ that looks something like this:</para>
+
+ <programlisting>ttyd1 "/usr/libexec/getty std.57600" dialup on insecure</programlisting>
+
+ <para>This line indicates that the second serial port
+ (<devicename>/dev/ttyd1</devicename>) has a modem connected
+ running at 57600 bps and no parity
+ (<literal>std.57600</literal>, which comes from the file
+ <filename>/etc/gettytab</filename>, see &man.gettytab.5;).
+ The terminal type for this port is <literal>dialup</literal>.
+ The port is <literal>on</literal> and is
+ <literal>insecure</literal>---meaning <username>root</username>
+ logins on the port are not allowed. For dialin ports like this one,
+ use the <devicename>ttyd<replaceable>X</replaceable></devicename>
+ entry.</para>
+
+ <para>It is common practice to use <literal>dialup</literal> as
+ the terminal type. Many users set up in their <filename>.profile</filename> or
+ <filename>.login</filename> files a prompt for the actual terminal type if the
+ starting type is dialup. The example shows the port as
+ insecure. To become <username>root</username> on this port, you
+ have to login as a regular user, then &man.su.1; to become
+ <username>root</username>. If you use <literal>secure</literal>
+ then <username>root</username> can login in directly.</para>
+
+ <para>After making modifications to
+ <filename>/etc/ttys</filename>, you need to send a hangup or
+ <acronym>HUP</acronym> signal to the
+ &man.init.8; process:</para>
+
+ <screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen>
+
+ <para>This forces the &man.init.8; process to reread
+ <filename>/etc/ttys</filename>. The init process will then start getty
+ processes on all <literal>on</literal> ports. You can find
+ out if logins are available for your port by typing</para>
+
+ <screen>&prompt.user; <userinput>ps -ax | grep '[t]tyd1'</userinput></screen>
+
+ <para>You should see something like:</para>
+
+ <programlisting>747 ?? I 0:00.04 /usr/libexec/getty std.57600 ttyd1</programlisting>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="dumb-terminal">
+ <para>How can I connect a dumb terminal to my FreeBSD
+ box?</para>
+ </question>
+
+ <answer>
+ <para>If you are using another computer as a terminal into your
+ FreeBSD system, get a null modem cable to go between the two
+ serial ports. If you are using an actual terminal, see its
+ accompanying instructions.</para>
+
+ <para>Then, modify
+ <filename>/etc/ttys</filename> (see &man.ttys.5;), like above. For example, if you are
+ hooking up a WYSE-50 terminal to the fifth serial port,
+ use an entry like this:</para>
+
+ <programlisting>ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure</programlisting>
+
+ <para>This example shows that the port on
+ <devicename>/dev/ttyd4</devicename> has a wyse50 terminal
+ connected at 38400 bps with no parity
+ (<literal>std.38400</literal> from
+ <filename>/etc/gettytab</filename>, see &man.gettytab.5;) and <username>root</username> logins are
+ allowed (<literal>secure</literal>).</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="cannot-tip">
+ <para>Why can I not run <command>tip</command> or
+ <command>cu</command>?</para>
+ </question>
+
+ <answer>
+ <para>On your system, the programs &man.tip.1;
+ and &man.cu.1;
+ are probably executable only by
+ <username>uucp</username>
+ and group <groupname>dialer</groupname>. You can use the group
+ <groupname>dialer</groupname> to control who has access to your
+ modem or remote systems. Just add yourself to group
+ dialer.</para>
+
+ <para>Alternatively, you can let everyone on your system
+ run &man.tip.1; and &man.cu.1; by
+ typing:</para>
+
+ <screen>&prompt.root; <userinput>chmod 4511 /usr/bin/cu</userinput>
+&prompt.root; <userinput>chmod 4511 /usr/bin/tip</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="hayes-unsupported">
+ <para>My stock Hayes modem is not supported---what
+ can I do?</para>
+ </question>
+
+ <answer>
+ <para>Actually, the man page for &man.tip.1; is
+ out of date. There is a generic Hayes dialer already built in.
+ Just use <literal>at=hayes</literal> in your
+ <filename>/etc/remote</filename> (see &man.remote.5;) file.</para>
+
+ <para>The Hayes driver is not smart enough to recognize some of
+ the advanced features of newer modems---messages like
+ <literal>BUSY</literal>, <literal>NO DIALTONE</literal>, or
+ <literal>CONNECT 115200</literal> will just confuse it. You
+ should turn those messages off when you use &man.tip.1;
+ (using <literal>ATX0&amp;W</literal>).</para>
+
+ <para>Also, the dial timeout for &man.tip.1; is 60
+ seconds. Your modem should use something less, or else tip
+ will think there is a communication problem. Try
+ <literal>ATS7=45&amp;W</literal>.</para>
+
+ <para>Actually, as shipped &man.tip.1; does not yet
+ support it fully. The solution is to edit the file
+ <filename>tipconf.h</filename> in the directory
+ <filename>/usr/src/usr.bin/tip/tip</filename>. Obviously you
+ need the source distribution to do this.</para>
+
+ <para>Edit the line <literal>#define HAYES 0</literal>
+ to <literal>#define HAYES 1</literal>. Then
+ <command>make</command> and <command>make install</command>.
+ Everything works nicely after that.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="direct-at">
+ <para>How am I expected to enter these AT commands?</para>
+ </question>
+
+ <answer>
+ <para>Make what is called a <quote>direct</quote> entry in your
+ <filename>/etc/remote</filename> file (see &man.remote.5;). For example, if your modem is hooked
+ up to the first serial port, <devicename>/dev/cuaa0</devicename>,
+ then put in the following line:</para>
+
+ <programlisting>cuaa0:dv=/dev/cuaa0:br#19200:pa=none</programlisting>
+
+ <para>Use the highest bps rate your modem supports in the br
+ capability. Then, type
+ <command>tip <devicename>cuaa0</devicename></command> (see &man.tip.1;)
+ and you will be connected to your modem.</para>
+
+ <para>If there is no <devicename>/dev/cuaa0</devicename> on your
+ system, do this:</para>
+
+ <screen>&prompt.root; <userinput>cd /dev</userinput>
+&prompt.root; <userinput>sh MAKEDEV cuaa0</userinput></screen>
+
+ <para>Or use cu as <username>root</username> with the following command:</para>
+
+ <screen>&prompt.root; <userinput>cu -l<replaceable>line</replaceable> -s<replaceable>speed</replaceable></userinput></screen>
+
+ <para>with <replaceable>line</replaceable> being the serial port (e.g.
+ <devicename>/dev/cuaa0</devicename>) and <replaceable>speed</replaceable> being the speed
+ (e.g.<literal>57600</literal>). When you are done entering
+ the AT commands hit <literal>~.</literal> to exit.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="gt-failure">
+ <para>Why does the <literal>&lt;@&gt;</literal> sign for the pn
+ capability not work?</para></question><answer>
+
+ <para>The <literal>&lt;@&gt;</literal> sign in the phone number
+ capability tells tip to look in
+ <filename>/etc/phones</filename> for a phone number. But the
+ <literal>&lt;@&gt;</literal> sign is also a special character
+ in capability files like <filename>/etc/remote</filename>.
+ Escape it with a backslash:</para>
+
+ <programlisting>pn=\@</programlisting>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="dial-command-line">
+ <para>How can I dial a phone number on the command
+ line?</para>
+ </question><answer>
+
+ <para>Put what is called a <quote>generic</quote> entry in your
+ <filename>/etc/remote</filename> file (see &man.remote.5;). For example:</para>
+
+ <programlisting>tip115200|Dial any phone number at 115200 bps:\
+ :dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du:
+tip57600|Dial any phone number at 57600 bps:\
+ :dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du:</programlisting>
+
+ <para>Then you can do something like <command>tip -115200
+ 5551234</command>. If you prefer &man.cu.1;
+ over
+ &man.tip.1;, use a generic cu entry:</para>
+
+ <programlisting>cu115200|Use cu to dial any number at 115200bps:\
+ :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:</programlisting>
+
+ <para>and type <command>cu 5551234 -s 115200</command>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="set-bps">
+ <para>Do I have to type in the bps rate every time I do
+ that?</para>
+ </question><answer>
+
+ <para>Put in an entry for <literal>tip1200</literal> or
+ <literal>cu1200</literal>, but go ahead and use whatever bps
+ rate is appropriate with the br capability.
+ &man.tip.1;
+ thinks a good default is 1200 bps which is why it looks for
+ a <literal>tip1200</literal> entry. You do not have to use 1200
+ bps, though.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="terminal-server">
+ <para>How can I more easily access a number of hosts through a
+ terminal server?</para>
+ </question>
+
+ <answer>
+ <para>Rather than waiting until you are connected and typing
+ <literal>CONNECT <replaceable>host</replaceable></literal>
+ each time, use tip's <literal>cm</literal> capability. For
+ example, these entries in
+ <filename>/etc/remote</filename> (see &man.remote.5;):</para>
+
+ <programlisting>pain|pain.deep13.com|Forrester's machine:\
+ :cm=CONNECT pain\n:tc=deep13:
+muffin|muffin.deep13.com|Frank's machine:\
+ :cm=CONNECT muffin\n:tc=deep13:
+deep13:Gizmonics Institute terminal server:\
+ :dv=/dev/cuaa2:br#38400:at=hayes:du:pa=none:pn=5551234:</programlisting>
+
+ <para>will let you type <command>tip pain</command> or
+ <command>tip muffin</command> to connect to the hosts
+ <hostid>pain</hostid> or <hostid>muffin</hostid>; and
+ <command>tip deep13</command> to get to the terminal
+ server.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="tip-multiline">
+ <para>Can tip try more than one line for each site?</para>
+ </question>
+
+ <answer>
+ <para>This is often a problem where a university has several
+ modem lines and several thousand students trying to use
+ them...</para>
+
+ <para>Make an entry for your university in
+ <filename>/etc/remote</filename> (see &man.remote.5;) and use <literal>&lt;\@&gt;</literal> for
+ the <literal>pn</literal> capability:</para>
+
+ <programlisting>big-university:\
+ :pn=\@:tc=dialout
+dialout:\
+ :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:</programlisting>
+
+ <para>Then, list the phone numbers for the university in
+ <filename>/etc/phones</filename> (see &man.phones.5;):</para>
+
+ <programlisting>big-university 5551111
+big-university 5551112
+big-university 5551113
+big-university 5551114</programlisting>
+
+ <para>&man.tip.1;
+ will try each one in the listed order, then give
+ up. If you want to keep retrying, run &man.tip.1;
+ in a while loop.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="multi-controlp">
+ <para>Why do I have to hit CTRL+P twice to send CTRL+P
+ once?</para>
+ </question>
+
+ <answer>
+ <para>CTRL+P is the default <quote>force</quote> character,
+ used to tell &man.tip.1;
+ that the next character is literal data. You can set the
+ force character to any other character with the
+ <literal>~s</literal> escape, which means <quote>set a
+ variable</quote>.</para>
+
+ <para>Type <literal>~sforce=<replaceable>single-char
+ </replaceable></literal> followed by a newline.
+ <replaceable>single-char</replaceable> is any single character.
+ If you leave out <replaceable>single-char</replaceable>,
+ then the force character is the nul character, which you can
+ get by typing CTRL+2 or CTRL+SPACE. A pretty good value for
+ <replaceable>single-char</replaceable> is SHIFT+CTRL+6, which
+ I have seen only used on some terminal servers.</para>
+
+ <para>You can have the force character be whatever you want by
+ specifying the following in your
+ <filename>$HOME/.tiprc</filename> file:</para>
+
+ <programlisting>force=<replaceable>single-char</replaceable></programlisting>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="uppercase">
+ <para>Why is everything I type suddenly in UPPER CASE?</para>
+ </question>
+
+ <answer>
+ <para>You must have pressed CTRL+A, &man.tip.1;
+ <quote>raise character</quote>, specially
+ designed for people with broken caps-lock keys. Use
+ <literal>~s</literal> as above and set the variable
+ <quote>raisechar</quote> to something reasonable. In fact,
+ you can set it to the same as the force character, if you
+ never expect to use either of these features.</para>
+
+ <para>Here is a sample .tiprc file perfect for Emacs users who
+ need to type CTRL+2 and CTRL+A a lot:</para>
+
+ <programlisting>force=^^
+raisechar=^^</programlisting>
+
+<para>The ^^ is SHIFT+CTRL+6.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="tip-filetransfer">
+ <para>How can I do file transfers with
+ <command>tip</command>?</para>
+ </question>
+
+ <answer>
+ <para>If you are talking to another Unix system, you can send
+ and receive files with <literal>~p</literal> (put) and
+ <literal>~t</literal> (take). These commands run
+ &man.cat.1; and
+ &man.echo.1; on the remote system to accept and send files.
+ The syntax is:</para>
+
+ <programlisting>~p &lt;local-file&gt; [&lt;remote-file&gt;]
+~t &lt;remote-file&gt; [&lt;local-file&gt;]</programlisting>
+
+ <para>There is no error checking, so you probably should use
+ another protocol, like zmodem.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="zmodem-tip">
+ <para>How can I run zmodem with
+ <application>tip</application>?</para>
+ </question>
+
+ <answer>
+ <para>First, install one of the zmodem programs from the
+ ports collection (such as one of the two from the comms
+ category, <application>lrzsz</application> or
+ <application>rzsz</application>.</para>
+
+ <para>To receive files, start the sending program on the
+ remote end. Then, press enter and type
+ <literal>~C rz</literal> (or <literal>~C lrz</literal> if you
+ installed <application>lrzsz</application>) to begin
+ receiving them locally.</para>
+
+ <para>To send files, start the receiving program on the remote
+ end. Then, press enter and type
+ <literal>~C sz <replaceable>files</replaceable></literal>
+ (or <literal>~C lsz <replaceable>files</replaceable></literal>)
+ to send them to the remote system.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="cannot-find-serial">
+ <para>Why does FreeBSD not find my serial ports, even
+ when the settings are correct?</para>
+ </question>
+
+ <answer>
+ <para>Motherboards and cards with Acer UARTs do not probe
+ properly under the FreeBSD sio probe. Obtain a patch from
+ <ulink url="http://www.lemis.com/serial-port-patch.html">
+ www.lemis.com</ulink> to fix your problem.</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+ <chapter id="misc">
+ <title>其它各式各樣的問題</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="more-swap">
+ <para>為甚麼 FreeBSD 用的置換(swap)空間比 Linux 多?</para>
+ </question>
+
+ <answer>
+ <para>FreeBSD僅是看起來置換空間(swap)用的比Linux多而已。在事實上,
+ 並不然。主要的差異是在於,FreeBSD積極的將閒置無用的主記憶體內容
+ 推入置換空間(swap)中,以使得主記憶體可以更為有效率的被使用。而
+ Linux的策略是將置換空間(swap)用來作為解決記憶體問題的最終手段。
+ 較頻繁的使用置換空間(swap)。是一種更有效率的使用主記憶體的手段。
+ </para>
+
+ <para>註:當一方面FreeBSD積極的使用置換空間(swap)的同時,你必需注
+ 意到,FreeBSD並不會任意的將所有的東西都推入置換空間(swap)中。如此,
+ 你才不會在一夜宿醉起床後發現,整個系統都被倒進了置換空間(swap)之中。
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="top-freemem">
+ <para>即使我只有運行少數程式,為什麼 <command>top</command> 顯示出
+ 來的剩餘記憶體還是很少?</para>
+ </question>
+
+ <answer>
+ <para>簡單的答案是,所有未使用到的閒置記憶體都是被浪費的記憶體,
+ 任何未被你的程式所利用到的記憶體將被核心(kernel)用來當
+ 作磁碟快取(disk cache)。而這種記憶體被 &man.top.1; 標記為
+ <literal>閒置的(Inact)</literal>,<literal>快取(Cache)</literal>,
+ 以及 <literal>緩衝區(Buf)</literal>,並負責在各個不同的位置負責
+ 暫存資料。被暫存(cached)的資料代表系統不需要去存取較慢的磁碟裝置
+ 就可以得到資料,如此,可以提升系統的效能。總而言之,&man.top.1;
+ 顯示出較少的 <literal>閒置(Free)</literal> 記憶體是好的,只要顯示
+ 出來的值不是 <literal>非常</literal> 的低。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="aout-elf">
+ <para>為甚麼要用(甚麼是) a.out 和 ELF 執行檔格式?</para>
+ </question>
+
+ <answer>
+ <para>要了解為什麼Freebsd使用 <filename>ELF</filename> 格式,你有必
+ 要先認識一下三種在目前 Unix 系統中最被廣泛應用到的執行檔格式:
+ </para>
+
+ <note>
+ <para>在 FreeBSD 3.x 之前,FreeBSD 使用 a.out 格式。</para>
+ </note>
+
+ <itemizedlist>
+ <listitem>
+ <para>&man.a.out.5;</para>
+
+ <para>這是最早,同是也是 <quote>最典型</quote> 的Unix目的檔
+ 格式。這種格式的檔案使用一種短且緊密的檔頭,同時,伴隨著一
+ 個魔術數字用來辨識格式。(參考 &man.a.out.5; 有更多詳細的說
+ 明)。它包含有三個節區: .text .data 及 .bss 加上一個符號表
+ 及字串表。</para>
+ </listitem>
+
+ <listitem>
+ <para><acronym>COFF</acronym></para>
+
+ <para>SVR3目的檔格式。檔頭包含了一個節區表,所以可以具備比
+ .text .data .bss 還多的節區。</para>
+ </listitem>
+
+ <listitem>
+ <para><acronym>ELF</acronym></para>
+
+ <para>ELF為 <acronym>COFF</acronym> 格式的後繼者,主要的特徵為
+ 可以具有複數節區段,並可以使用32-bits或是64-bits的數值。
+ 主要的缺點為: <acronym>ELF</acronym> 格式是在每個系統中只
+ 會有一種 ABI 的假設為前題被設計出來的。但是,在事實上,這個
+ 假設錯的離譜。因為,縱使在商用的 SYSV 世界裡,也至少有 SVR4,
+ Solaris 和 SCO 三種 ABI。</para>
+
+ <para>譯註:ABI(Application Binary Interface)。如果一定要翻譯,
+ 就叫它 <emphasis>應用程式二進位介面</emphasis> 好了。 ABI被發
+ 展出來的用意,是為了促使在相同CPU所發展出來的應用程式,能夠
+ 在不同的系統上,作到二元檔(Binary Code)相容。比方說,
+ <acronym>Sun</acronym> 所提出的 <acronym>Solaris ABI</acronym>
+ ,保證執行檔能夠在相同 CPU 的 Solaris 系統上執行,另一個例子是
+ Windows 系統。同屬於 Intel x86 版本的執行檔能夠自由的在Windows
+ 9x/me及Windows NT/2k/XP之間執行。</para>
+
+ <para>FreeBSD提供一個公用程式將程式所需的ABI資訊烙上,藉此試著
+ 去解決這個問題。請參考 &man.brandelf.1; 以取得更多資訊。i
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>FreeBSD 來自 <quote>傳統</quote> 的陣營。在傳統上,FreeBSD都
+ 使用 &man.a.out.5; 格式,這樣的技術在好幾代的 BSD 都被證明是可靠的。
+ 雖然,在FreeBSD上可以建立以及正確的執行原生 <acronym>ELF</acronym>
+ 格式檔案(包含核心)。然而, FreeBSD在一開始反對將預設格式轉換為 ELF,
+ 為什麼呢?當Linux開始痛苦的轉換至 <acronym>ELF</acronym> 格式時,
+ 並非是為了要逃離 <filename>a.out</filename> 格式。相反的,這是因
+ 為之前 Linux的共享函式庫(shared libraries)採用以跳躍表格
+ (jump-table)為基礎的技術去設計。這是一種讓發展者感到困擾,且非常
+ 難以使用,不具足夠彈性的方法。既然,已經存在的
+ <acronym>ELF</acronym> 工具提供了共享函式庫(shared libraries)的解
+ 決方案,而且,那看起來是個 <quote>前衛的方法</quote>,因此,所需
+ 的轉換代價就可接受因而轉換。</para>
+
+ <para>在FreeBSD的狀況中,我們的共享函式庫(shared libraries)機制和
+ <application>SunOS</application> 的型式非常相近,且易於使用。然而,
+ 從 3.0 開始,FreeBSD 正式將 <acronym>ELF</acronym> 改為預設格式。
+ 雖然,<filename>a.out</filename> 格式依舊如以往般的好,但是,我們
+ 編譯工具的撰寫者,GNU 的成員,他們中止了對
+ <filename>a.out</filename> 格式的支援與維護。在這種狀況下,迫使
+ 我們必須自行維護另一份版本的 compiler 和 linker,也使得我們無法
+ 從最新的 GNU 發展成果中獲得好處。此外,對 ISO-C++ 的需求,尤其是
+ 建構子(constructors)和解構子(destructors),也帶動未來版本中對
+ <acronym>ELF</acronym> 的原生支援。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="binary-formats">
+ <para>是的, 但是, 為什麼會有這麼多不同格式的執行檔存在呢?</para>
+ </question>
+
+ <answer>
+ <para>在黑暗而遙遠的過去,僅有簡陋的硬體存在。而因為硬體簡陋,當然也
+ 只能執行小而簡單的系統。a.out 格式是基於那個時代所需要,而被創造
+ 出來的(例如像PDP-11)。在這之後,許多人試著將 Unix 移植到其他平台
+ 時,他們也保留了 a.out 格式的執行檔。因為,這對早期的 Motorola 68k,
+ VAXen 之類的系統已經足夠使用了。</para>
+
+ <para>然而,人並不會滿足於現狀。一些聰明的硬體工程師想到了,如果能
+ 讓軟體多處理一些事,那 CPU 的電晶體數就能少一點,並且跑得更快。要
+ 在這種新式的硬體上工作(現在稱為RISC),<filename>a.out</filename>
+ 這種格式就不合適了。基於這樣的現實所需,更多的執行檔格式被發展出
+ 來,以提供比簡單且受到許多限制的 <filename>a.out</filename> 格式
+ 更好的效能。比方像是 <acronym>COFF</acronym>,
+ <acronym>ECOFF</acronym>,已及一些較不為人所周知的格式紛紛被創造
+ 出來。但是,這些格式都已達到各自的極限,直到有一天
+ <acronym>ELF</acronym> 的出現。</para>
+
+ <para>此外,當程式的體積越來越大,而磁碟空間和主記憶體相對來說都較
+ 小時,共享函式庫(shared libraries)的觀念被發展出來了。在這同時,
+ 虛擬記憶體系統(VM System)也變得越來越精巧。當每一種進步都在
+ <filename>a.out</filename>格式上被發展出來時,它的可用性也同時變
+ 得越來越低。另外,人們還希望程式能在執行期間動態載入,或是將已經
+ 執行過且沒有用的初始化程式碼丟棄,藉以節省更多的記憶。程式語言在
+ 這個時期也便得更精巧,人們也希望在 main 之前自動的執行更多的東西。
+ 因此,許多繁雜且另人嘆為觀止的技巧被用在 <filename>a.out</filename>
+ 格式上去解決這些問題。但是,由於 <filename>a.out</filename> 格式
+ 先天的限制,要解決這些問題必需付出更多的代價及時間成本,並讓程式
+ 的複雜度大為提升。而 <acronym>ELF</acronym> 格式可以一舉解決這一
+ 切問題。但是,要將整個系統從根本轉換過去,將會有不短的陣痛期,因
+ 此, <acronym>ELF</acronym>格式將會有一陣子與
+ <filename>a.out</filename> 並存。</para>
+
+ <para>然而,隨著時間的過去,FreeBSD的 build tools 演化成平行的兩個
+ 支線(尤其是組譯器和載入器)。FreeBSD這條路加進了共享函式庫
+ (shared libraries)並修正了一些錯誤。而原來發展這些程式的 GNU 成員
+ 則為了因應現況,重寫了這些程式,以更簡單的方式對跨平台編譯
+ (building cross compilers),以及多種格式
+ (plugging in different formats) 作出了支援。許多人想作出以 FreeBSD
+ 為目的平台的跨平台編譯器。但不幸的是,FreeBSD 的 as 和 ld 不能作
+ 這項工作。新的 GNU 工具程式加入了跨平台編譯 (Cross Compiler),
+ <acronym>ELF</acronym>格式支援,共享函式庫(shared libraries),
+ C++ 的擴充... 等等。此外,許多廠商以 <acronym>ELF</acronym> 格式
+ 發行其產品,如果這些東西能在 FreeBSD 上執行的話當然是最好的。既然,
+ 能夠執行 <acronym>ELF</acronym> 格式的執行檔了,為什麼還須要
+ <filename>a.out</filename> 呢?它已經是一匹垂垂老矣的馬了,在竭力
+ 盡忠的奉獻這麼多年之後,該是讓它在牧場肥沃的草地上好好休息的時候
+ 了。</para>
+
+ <para><acronym>ELF</acronym> 格式比 a.out 具有更良好的展現能力,並
+ 且在底層系統中具有更多的可擴展性。<acronym>ELF</acronym> 工具程式
+ 更容易被維護,且提供跨平台編譯的支援,這一點對很多人來說是很重要
+ 的。<acronym>ELF</acronym> 格式可能比 a.out 慢一點,但是其差異非
+ 常難測量出來。這兩者間還有許多細節上的不同,比方說分頁對應的方式,
+ 程式碼初始化的方法...等等。這些並不是很重要,但是,兩者就是不同。
+ 以後,GENERIC 核心(kernel)將會移除對 <filename>a.out</filename>
+ 格式。當不在有執行傳統 <filename>a.out</filename> 程式的須要時,
+ 將會從核心(kernel)中移除。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="chmod-symlinks">
+ <para>為甚麼chmod不會改變符號連結(symlink)的存取權限?</para>
+ </question>
+
+ <answer>
+ <para>Symlinks 本身並沒有存取權限,同時,在預設的狀況下,
+ &man.chmod.1; 將不會跟隨著 symlinks 去改便目標檔案的存取權限。因此,
+ 如果你有一個檔案 <filename>foo</filename>,同時,有一個 symlink
+ <filename>bar</filename> 指向這個檔案,以下這個命令將永遠會成功
+ 的被執行。</para>
+
+ <screen>&prompt.user; <userinput>chmod g-w bar</userinput></screen>
+
+ <para>然而,在 <filename>foo</filename> 上的存取權限將不會被改
+ 變。</para>
+
+ <para>你必需使用 <option>-H</option> 或是將 <option>-L</option>
+ 與 <option>-R</option> 選項一起使用,參考 &man.chmod.1; 以及
+ &man.symlink.7; 以取得更多的資訊。</para>
+
+ <warning>
+ <para>使用選項 <option>-R</option> 會讓 &man.chmod.1; 以
+ <acronym>遞迴(RECURSIVE)</acronym> 的方式工作。當你把
+ &man.chmod.1; 用在目錄或是連結到目錄的符號連結時更要小心。
+ 如果你要改變一個符號連結參考到的目錄之存取權限 &man.chmod.1; ,
+ 且注意不要加上任何選項,並且在 symlink 的結尾加上斜線
+ (<filename>/</filename>)。舉例來說,如果
+ <filename>foo</filename> 連結到目錄 <filename>bar</filename>,
+ 而你要更改 <filename>foo</filename> (實際上是
+ <filename>bar</filename>),那就使用:</para>
+
+ <screen>&prompt.user; <userinput>chmod 555 foo/</userinput></screen>
+
+ <para>結尾的斜線會使得 &man.chmod.1; 改變
+ <filename>foo</filename> 所指向的目錄 <filename>bar</filename>
+ 的權限。</para>
+ </warning>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="login-8char">
+ <para>為什麼在 FreeBSD 2.2.x 及更早的版本中,登入名稱(login names)
+ 被限制在八個字元以下呢?</para>
+ </question>
+
+ <answer>
+ <para>你可能認為修改 <literal>UT_NAMESIZE</literal> 後在重新編譯整個
+ 系統是很容易的事。而且在這之後,每件事都可以運作的很好。不幸的是,
+ 有許多的程式和工具(包含系統工具)把數字寫死在程式裡頭(並非總是
+ <literal>8</literal> 或 <literal>9</literal>,有時可能是古怪的
+ <literal>15</literal> 或 <literal>20</literal>)。這不僅僅是會將
+ 你的系統記錄檔弄壞而已(來自於變動長度和固定長度記錄的差異),同時
+ 也會破壞 Sun 的 NIS Client 的運作。同時,和其他的Unix系統之間也
+ 有可能會產生未知的問題。</para>
+
+ <para>在FreeBSD 3.0 及之後的版本,帳號的最大長度增加到16個字元,
+ 同時,那些將長度寫死的程式也被找出來並作了適當的修正。正因為影響
+ 系統的範圍很廣,所以直到3.0版之後才算大致修正完成。</para>
+
+ <para>如果你有自信在出問題的時後能自行解決,你可以利用下面的方法讓
+ 較早期的版本支援較長的帳號。首先,修改
+ <filename>/usr/include/utmp.h</filename> 中的UT_NAMESIZE。
+ 然後,你必須把 <filename>/usr/include/sys/param.h</filename>
+ 中的 MAXLOGNAME 改成跟 UT_NAMESIZE 相同。最後,如果你是從原始程
+ 式建立系統, 別忘了 /usr/include 每次都會被更新。
+ 修改 /usr/src/.. 中適當的檔案。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="dos-binaries">
+ <para>我能在FreeBSD下執行DOS程式嗎?</para>
+ </question>
+
+ <answer>
+ <para>是的,自3.0版起你可以使用BSDI的
+ <application>doscmd</application> DOS 模擬器,如果你對這個東西
+ 有興趣,或是想加入發展行列,請寄一封電子郵件到 &a.emulation; 。
+ </para>
+
+ <para>對於3.0之前的系統,在 ports 中有一套軟體可以模儗 8088,並提
+ 供足夠的BIOS中斷服務以執行DOS文字模式的程式,這套軟體叫做
+ <application>pcemu</application>,同時,運行它須要
+ X Windows(由XFree86提供)。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="translation">
+ <para>如果要把FreeBSD文件翻譯成我的母語,我需要作什麼?</para>
+ </question>
+
+ <answer>
+ <para>參閱FreeBSD文件中的 <ulink
+ url="../fdp-primer/translations.html">翻譯常見問答</ulink>。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="freebsd-mail-bounces">
+ <para>為什麼我寄到 FreeBSD.org 相關地址的電子郵件都被退回了呢?</para>
+ </question>
+
+ <answer>
+ <para>FreeBSD.org 的郵件系統對於進來的郵件採取嚴格的檢查,並且退回
+ 所有設定不正確,或是潛在的垃圾郵件。你的郵件被退回可能是因為下列
+ 原因所引起:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>這封電子郵件來自已知的垃圾郵件區域或是IP中。</para>
+
+ <para>FreeBSD郵件伺服器將拒絕接收已知的垃圾郵件來源的電子郵件。
+ 如果提供你網路服務的公司或是網域中有產生過垃圾郵件或是有垃圾
+ 郵件轉播站,請你換一個服務提供者,或是乾脆放棄。</para>
+ </listitem>
+
+ <listitem>
+ <para>電子郵件的本文僅有HTML。</para>
+
+ <para>郵件應該已純文字格式發送,請設定你的電子郵件軟體送出純文
+ 字格式。</para>
+ </listitem>
+
+ <listitem>
+ <para>FreeBSD的郵件處理程式無法由IP反查送件主機的IP。</para>
+
+ <para>設置 DNS 反查是接受一台主機郵件的一個標準要求,請為您的郵件
+ 主機設置 DNS 反查。許多提供家庭網路服務 (DSL,cable,dialup 等)
+ 的公司並不提供這樣的服務。在這種情況下,請透過網路服務提供者的
+ 郵件伺服器送出您的電子郵件。</para>
+ </listitem>
+
+ <listitem>
+ <para>在 SMTP 使用 EHLO/HELO 命令時所給予的 hostname 無法被解析到
+ 一個 IP 位置。</para>
+
+ <para>在郵件被接受以前,一個充分合格,且可被解析的主機名稱在
+ SMTP 協定的對談中是必要的。如果你沒有在 DNS 伺服器中登記你
+ 的主機名稱,請透過網路服務提供者的郵件伺服器送出您的電子郵
+ 件。</para>
+ </listitem>
+
+ <listitem>
+ <para>你的訊息中夾帶著一個 message ID 以 <quote>localhost</quote>
+ 字串結束。</para>
+
+ <para>某些郵件軟體產生某些不正確的 message ID,這將不被接受。
+ 你必需更改設定讓你的郵件軟體產生正確的 message ID,如果這無
+ 法解決,考慮說服你的郵件軟體作者更新程式以處理這個問題。</para>
+ </listitem>
+ </itemizedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="free-account">
+ <para>我可以在哪裡找到一個免費的FreeBSD帳號?</para>
+ </question>
+
+ <answer>
+ <para>FreeBSD的伺服器本身不提供任何對外的服務,其他的單位中,
+ 有人提供開放的 Unix 系統服務。其中有些可能要收取些許費用。</para>
+
+ <para><ulink url="http://www.arbornet.org/">Arbornet, Inc</ulink>,
+ 也被稱為 M-Net,自 1983 年起就開始提供 Unix 系統服務。一開始,
+ 他們使用 Altos 並執行 System III。他們在 1991 年轉換系統成為
+ BSD/OS。在 2000 年六月,他們再度更換成為 FreeBSD。M-Net 能讓使
+ 用者透過 SSH 及 telnet 連線到主機,並提供完整的 FreeBSD 軟體以
+ 供使用。然而,M-Net 作為一個非盈利組織運行,存取權只限於成員和
+ 贊助者,M-Net 也提供 BBS 系統和網路聊天服務。</para>
+
+ <para><ulink url="http://www.grex.org/">Grex</ulink> 提供了非常
+ 類似 M-Net 的服務,包括了 BBS 系統和網路聊天。然而,機器是使用
+ Sun 4M,並執行 SunOS。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="sup-define">
+ <para>什麼是 <command>sup</command>,我該如何使用它?</para>
+ </question>
+
+ <answer>
+ <para><ulink url="http://www.FreeBSD.org/cgi/ports.cgi?^sup">
+ SUP</ulink> 的意思是 Software Update Protocol,由 CMU 發展,
+ 用來維持整個發展的同步。我們利用它保持遠端的站台和原始站台之間
+ 的同步工作。</para>
+
+ <para>然而,SUP 在頻寬的使用上並不太友善,同時,目前也不再使用了。
+ 目前建議維持原始碼同步更新的方法是
+ <ulink url="../handbook/synching.html#CVSUP">CVSup</ulink>。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="daemon-name">
+ <para>這個可愛的小紅人叫作什麼?</para>
+ </question>
+
+ <answer>
+ <para>似乎,他並沒有一個正式的名字,姑且就稱其為
+ <quote>BSD 小惡魔</quote> 吧。如果你執意要使用一個名字。那就叫他
+ <quote>小動物(beastie)</quote> 吧。註:<quote>beastie</quote>
+ 在讀音上跟 <quote>BSD</quote> 很接近。</para>
+
+ <para>你可以在BSD小惡魔的 <ulink
+ url="http://www.mckusick.com/beastie/index.html">主頁</ulink>
+ 上取得更多的資訊。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="use-beastie">
+ <para>我能使用 BSD 小惡魔圖案嗎?</para>
+ </question>
+
+ <answer>
+ <para>也許吧,我也不確定。BSD小惡魔圖案的版權是屬於馬歇爾蘇格蘭教會的
+ Marshall Kirk McKusick 所擁有。你可以試著去查看網頁<ulink
+ url="http://www.mckusick.com/beastie/mainpage/copyright.html">關於BSD小惡魔肖像</ulink>
+ 以取得更詳細的使用細節。</para>
+
+ <para>總而言之,如果你純粹為了自己想要鑑賞,那麼,你可以自由的使用肖像。如果你是個人使用,只要情況適當,應該都會被許可。
+ 如果你想在商業上使用,則你必需聯繫蘇格蘭教會的 Kirk McKusick 以取得許可。
+ 如果你需要更進一步詳細的資訊,請參考 <ulink
+ url="http://www.mckusick.com/beastie/index.html">BSD小惡魔的首頁</ulink>。
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="daemon-images">
+ <para>你有任何的 BSD 小惡魔圖案可以讓我使用嗎?</para>
+ </question>
+
+ <answer>
+ <para>你可以在 <filename>/usr/share/examples/BSD_daemon/</filename> 找到 Xfig 及 eps 兩種格式的圖檔。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="glossary">
+ <para>我在文件、郵遞論壇上,常會看到一些縮寫字、技術字彙,這些可以去哪邊查呢?</para>
+ </question>
+
+ <answer>
+ <para>請參閱 <ulink
+ url="&url.books.handbook;/freebsd-glossary.html">
+ &os; 字彙表</ulink>。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="bikeshed-painting">
+ <para>為什麼我該在意腳踏車車棚的顏色?</para>
+ </question>
+
+ <answer>
+ <para>最短最短的答案是:『不用在意』。稍微長一點的答案是:『雖然你有能力自己去建造一座腳踏車車棚,但是,
+ 這不代表因為你不喜歡現在這個車棚的顏色,就要中止他的建築。』這個比喻的意思是,
+ 你不需要去爭論每一個細項特徵,只因為你有辦法去作它。
+ 某些人的評論是:『雜音的程度,與變化的複雜性是成反比』。</para>
+
+ <para>更長且較完整的答案是,在經過長時間爭論關於是否該將 &man.sleep.1;
+ 的秒參數移除,&a.phk;發表了一篇長論 <quote><ulink
+ url="http://www.FreeBSD.org/cgi/getmsg.cgi?fetch=506636+517178+/usr/local/www/db/text/1999/freebsd-hackers/19991003.freebsd-hackers">
+ 在青翠草地上的腳踏車車棚(任何顏色的)...</ulink></quote>。以下,僅摘要該則文章部分內容:</para>
+
+ <blockquote>
+ <attribution>&a.phk; on freebsd-hackers, October
+ 2, 1999</attribution>
+
+ <para><quote>什麼是關於這個腳踏車車棚?</quote> 部分的人這樣的詢問我。</para>
+
+ <para>這是一個非常長遠的故事,否則就是一個古老的故事。但是事實上,
+ 這個故事非常的短。C·諾斯科特·帕金森(C. Northcote Parkinson) 在 1960
+ 年代初期寫了一本書,書名為 <quote>Parkinson's Law(中文書名:升官有道-暴露上司心態之帕金森定律)</quote>
+ ,這本書包含了很多具有卓見的動態管理學。</para>
+
+ <para>[引述一點在這本書上的評論]</para>
+
+ <para>在這個被捲入腳踏車車棚案的特殊例子,主要的要素是核能發電場,我想,這足以說明這本書的年齡。</para>
+
+ <para>帕金森展示了該如何在董事會中贏得贊同去建造一座數百萬或甚至十億美元的核能發電場,
+ 但是,如果你想要去建造一座腳踏車車棚,你將會被糾纏在無窮無盡的討論之中。</para>
+
+ <para>他(帕金森)並解釋,這是因為一個核能發電場是這樣的廣闊,這樣的昂貴,並且這樣的複雜,
+ 以至於人們無法掌握它,而並非嘗試,他們急切的希望有人能夠幫他們處理並解決所有瑣碎的細項。
+ Richard P. Feynmann 給了一些有趣,且非常一針見血的論點,在他的書提到了 Los Alamos 的例子。</para>
+
+ <para>另一方面,任何人都能自己在週末組裝一座腳踏車車棚出來,並且仍有閒聊可以觀賞電視及玩遊戲。
+ 因此,無論你作了多麼完善的準備,也不管你提出的方案是多麼的妥當,某些人仍將抓住機會跑出來告訴你,
+ 他正在作同樣的事,正在付出努力,他就在 <emphasis>這裡</emphasis>。</para>
+
+ <para>在丹麥,我們稱這個叫作『虎死留皮』(setting your fingerprint)。這關係到你個人的驕傲和聲望,
+ 這關係到你是否可以指著某地後對著別人說:『這裡! 這是 <emphasis>我</emphasis> 作的。』
+ 這是政治人物很重要的一個特徵。但是,時機是大多數人民所賦與的。想想那些留在水泥地上的腳印吧。</para>
+ </blockquote>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+ <chapter id="funnies">
+ <chapterinfo>
+ <author>
+ <firstname>Edward</firstname>
+ <surname>Chuang</surname>
+ <affiliation>
+ <address><email>edwardc@firebird.org.tw</email></address>
+ </affiliation>
+ </author>
+ </chapterinfo>
+
+ <title>FreeBSD 冷笑話集</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="very-very-cool">
+ <para>How cool is FreeBSD?</para>
+ </question>
+
+ <answer>
+ <para>問:有人做過 FreeBSD 執行時的溫度測試嗎? 我知道 Linux
+ 比 DOS 涼,但沒聽人提過 FreeBSD,似乎很熱。</para>
+
+ <para>答:沒有,但是在味覺上有做過無數次測試。我們矇上自願受試者的
+ 眼睛,事先再給他們服用 250 毫克的 LSD-25 迷幻藥。35% 的受試者說
+ FreeBSD 嘗起來像橘子,而 Linux 則是紫色的榛樹果實。據我所知,沒
+ 有一組提到溫度上特別的差異。後來發現,有太多受試者在測試時夢遊走
+ 出房間影響到數據,最後只得放棄整個調查。我想大部份的受試者現在在
+ Apple 工作,繼 Drag and Drop 之後,研究全新的 <quote>Scratch and
+ Sniff</quote> 圖形界面。It's a funny old business we're in!</para>
+
+ <para>不開玩笑了,FreeBSD 和 Linux 都使用 <acronym>HLT</acronym>
+ (halt) 指令,可在系統閒置時降低電力的使用也減少了熱的產生。如果有設定 APM(Automatic Power Management)
+ ,FreeBSD 也可以讓 CPU 進入省電模式。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="letmeoutofhere">
+ <para>誰在我的記憶體插槽中沙沙作響??</para>
+ </question>
+
+ <answer>
+ <para>問:FreeBSD 編譯核心時有做甚麼 <quote>奇特</quote> 的事
+ 讓記憶體沙沙作響嗎?當編譯時(還有開機時確認軟碟後的短暫時間),
+ 也種似乎來自記憶體插槽的奇怪聲音。</para>
+
+ <para>答:是的!在 BSD 的文件中你會常常看到 <quote>背後靈</quote>,
+ 大部份的人都不知道那是一種實際存在的精神體 --- 掌控著你的電腦。
+ 你聽到的聲音是這些背後靈以高音口哨在溝通怎樣做許多的系統管理工
+ 作。</para>
+
+ <para>如果這些聲音很困擾你,來自 DOS 的
+ <command>fdisk /mbr</command> 就能擺脫,但如果有相反的效果
+ 也不要驚訝。事實上,如果在儀式中聽到 Bill Gates 恐怖的聲音從內
+ 建的喇叭傳來,馬上逃而且不要回頭! 從 BSD 背後靈不平衡的影響中
+ 解放,DOS 和 Windows 背後靈通常都能重新控制整台機器並對你的靈
+ 魂詛咒。如果有選擇,我想我寧願習慣奇怪的聲音。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="changing-lightbulbs">
+ <para>要幾個 FreeBSD hacker 才能換掉一個電燈泡?</para>
+ </question>
+
+ <answer>
+ <para>一千一百七十二個:</para>
+
+ <para>二十三個在 -current 上抱怨看不到光了;</para>
+
+ <para>四個宣稱這是設定上的問題,所以像這樣的 email 應該放在
+ -questions;</para>
+
+ <para>三個 submit PR,其中一個送錯到 doc 下,並且內容只
+ 有”這裡好暗”;</para>
+
+ <para>一個 commit 尚未測試的電燈泡,造成不能 buildworld,
+ 五分鐘後他把原來的燈泡換回來;</para>
+
+ <para>八個煽起 flame war,責怪送出 PR 的人沒有包括 patch;</para>
+
+ <para>五個埋怨 buildworld 爛掉了;</para>
+
+ <para>三十一個說 buildworld 可以用,不能用的人一定是 cvsup 的
+ 時機不對;</para>
+
+ <para>一個把換成新燈泡的 patch 丟到 -hackers 上;</para>
+
+ <para>一個說他三年前就做出了 patch,但送到 -current 後卻被忽略掉,
+ 所以他對整個 PR 系統有很不好的印象。此外,他也認為拿出的新燈泡無
+ 法反光;</para>
+
+ <para>三十七個咆哮說電燈泡不屬於基本系統的一部份,所以 committer
+ 不能不先諮詢整個 Community 的意見就這樣做下去。還有,-core
+ 到底和這件事有什麼關係?!</para>
+
+ <para>兩百人抱怨換燈泡之後,腳踏車棚的顏色變得好奇怪;</para>
+
+ <para>三個指出,用來換燈泡的 patch 不符合 &man.style.9; 的規定;</para>
+
+ <para>十七個埋怨拿出來的新燈泡為什麼是用 GPL;</para>
+
+ <para>五百八十六人陷入一場 flame war,在 GPL、BSD、MIT、NPL
+ 各個 license 和 FSF 某位不具名創辦人士個人衛生之間,比較彼此
+ 的優勢;</para>
+
+ <para>七個將這一串討論的不同部份分別移到 -chat 和 -advocacy;</para>
+
+ <para>就算提出的新燈泡比舊的暗,還是有一個把它 commit 進來;</para>
+
+ <para>兩個換回原先的燈泡,並且留下極為憤怒的 commit 訊息。他們認為
+ 與其讓 FreeBSD 用暗燈泡,還不如乾脆待在黑暗中算了;</para>
+
+ <para>四十六人對取消不用暗燈泡這件事大聲疾呼,要求 -core
+ 立刻提出澄清;</para>
+
+ <para>十一個要求換成小一點的電燈泡,以便未來 FreeBSD 如果移植到
+ 電子雞上後會更為方便;</para>
+
+ <para>七十三人抱怨 -hackers 和 -chat 上的 SNR,藉 unsubscribe
+ 來表示抗議;</para>
+
+ <para>十三個送出”unsubscribe”、”我要如何 unsubscribe”或”拜託把
+ 我從 list 名單中刪掉”,信的最後面則是一般由 majordomo 加上去
+ 的 footer;</para>
+
+ <para>當每個人忙於彼此叫罵時,有個傢伙趁沒人注意,把可以用的燈泡偷
+ 偷換上去;</para>
+
+ <para>三十一個指出如果用 TenDRA 編譯新的燈泡,會比舊的來得亮
+ 0.364%(雖然燈泡會被編譯成正六面體),所以 FreeBSD 內定的編譯器
+ 應該是 TenDRA,而不是 EGCS;</para>
+
+ <para>有個人說新燈泡缺乏美感;</para>
+
+ <para>九個人(包括原先送 PR 的人)問”什麼是 MFC?”;</para>
+
+ <para>五十七個抱怨自從換了燈泡後,兩個星期都沒有光出現。</para>
+
+ <para><emphasis>&a.nik; 補注:</emphasis></para>
+
+ <para><emphasis>剛看到時,我快笑翻了。</emphasis></para>
+
+ <para><emphasis>然後想到,”等一下,不是應該還有一個要將這些記在
+ list 上嗎?”</emphasis></para>
+
+ <para><emphasis>接著終於了解我的使命 :-)</emphasis></para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="dev-null">
+ <para>寫入 <filename>/dev/null</filename> 的資料跑到哪裡去了?</para>
+ </question>
+ <answer>
+ <para>在 CPU 中有一種特別的資料散熱器,利用排出散熱片/風扇組合時,
+ 轉換成熱能.這就是為什麼 CPU 冷卻日趨重要的原因;當人們使用更快
+ 的處理器時,他們變成不在乎有越來越多他們的資料都送進了
+ <filename>/dev/null</filename> ,而使的他們的 CPU 過熱.
+ 如果你刪除了 <filename>/dev/null</filename> (那將會有效的關閉
+ CPU 的資料散熱器) 你的 CPU 也許會降低工作溫度,但是你的系統將
+ 會很快的像是罹患了便秘伴隨著所有超出的資料開始變成行為不正常。
+ 如果你有快速的網路連線,你可以利用讀取
+ <filename>/dev/random</filename> 並將他隨意傳送至各處,
+ 來降低你 CPU 的溫度;然而你將陷入使你網路連線或
+ <filename>/</filename> 有過熱的風險或是惹惱你的 ISP,
+ 大部分的資料最終將會在他們的設備上轉換成熱,不過他們通常都擁有
+ 好的散熱,所以如果你做的不太過分,應該是沒什麼大不了的。</para>
+
+ <para><emphasis>Paul Robinson 補充:</emphasis></para>
+
+ <para>中文版 FAQ 注:以下短文屬於美式幽默,恐翻譯後造成語焉不詳,
+ 語意不通的情形,故保留原汁原味讓讀者自行品嚐。</para>
+
+ <para>There are other methods. As every good sysadmin knows,
+ it is part of standard practise to send data to the screen
+ of interesting variety to keep all the pixies that make up
+ your picture happy. Screen pixies (commonly mis-typed or
+ re-named as 'pixels') are categorised by the type of hat
+ they wear (red, green or blue) and will hide or appear
+ (thereby showing the colour of their hat) whenever they
+ receive a little piece of food. Video cards turn data into
+ pixie-food, and then send them to the pixies - the more
+ expensive the card, the better the food, so the better
+ behaved the pixies are. They also need constant simulation
+ - this is why screen savers exist.</para>
+
+ <para>To take your suggestions further, you could just throw
+ the random data to console, thereby letting the pixies
+ consume it. This causes no heat to be produced at all,
+ keeps the pixies happy and gets rid of your data quite
+ quickly, even if it does make things look a bit messy on
+ your screen.</para>
+
+ <para>Incidentally, as an ex-admin of a large ISP who
+ experienced many problems attempting to maintain a stable
+ temperature in a server room, I would strongly discourage
+ people sending the data they do not want out to the
+ network. The fairies who do the packet switching and
+ routing get annoyed by it as well.</para>
+ </answer>
+ </qandaentry>
+
+
+ <qandaentry>
+ <question id="pttlz">
+ <para>1993 年就有『make world』了?</para>
+ </question>
+
+ <answer>
+ <para>問:根據 jkh 的 <ulink
+ url="http://www.freebsd.org/cgi/cvsweb.cgi/src/Makefile.diff?r1=1.5;r2=1.6;f=h">
+ 這份 commit</ulink>,應該是 Aug 13 22:47:28 1994 UTC
+ 之後才會有 make world,怎麼會有在那之前會有呢?</para>
+
+ <para>答:根據 pttlz.bbs@ptt.cc (工蟻) 於 Apr 7 17:09:47 2008 CST 自稱:
+ 『make world 是我古早 (15 年前) 時玩 freebsd 時用的』,所以 1993 年就有
+ pttlz 的『make world』存在了,請注意人家可是自稱『15 年前』的長輩,
+ 請勿對長輩權威挑戰,謝謝!</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+ <chapter id="advanced">
+ <chapterinfo>
+ <author>
+ <firstname>En-Ran</firstname>
+ <surname>Zhou</surname>
+ <affiliation>
+ <address><email>zhouer@tfcis.org</email></address>
+ </affiliation>
+ </author>
+ </chapterinfo>
+
+ <title>進階主題</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="learn-advanced">
+ <para>如何能學習更多有關 FreeBSD 內部的東西?</para>
+ </question>
+
+ <answer>
+ <para>目前市面上還沒有探討作業系統內部的書是專為 FreeBSD 而寫
+ 的。然而,許多一般的 UNIX 知識都可以直接應用在 FreeBSD 上。附
+ 加一點,仍然有相關的書是專為 BSD 所寫的。</para>
+
+ <para>請參考 Handbook 的<ulink
+ url="../handbook/bibliography-osinternals.html">作業系統內部之參考書目</ulink>
+ 。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="how-to-contribute">
+ <para>如何能為 FreeBSD 出一份力?</para>
+ </question>
+
+ <answer>
+ <para>請參考這篇文章 <ulink
+ url="../../articles/contributing/article.html">Contributing
+ to FreeBSD</ulink> 來提供您的建議。如果您能幫忙那就更歡迎了!</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="define-snap-release">
+ <para>SNAP 和 RELEASE 是什麼?</para>
+ </question>
+
+ <answer>
+ <para>目前有三個活躍/半活躍的分支在 FreeBSD 的 <ulink
+ url="http://www.FreeBSD.org/cgi/cvsweb.cgi">CVS Repository</ulink>
+ (古早分支已經幾乎沒在更新了,因為通常只有三個活躍的發展分支):
+ </para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>RELENG_5</literal> 即
+ <emphasis>5-STABLE</emphasis></para>
+ </listitem>
+
+ <listitem>
+ <para><literal>RELENG_6</literal> 即
+ <emphasis>6-STABLE</emphasis></para>
+ </listitem>
+
+ <listitem>
+ <para><literal>HEAD</literal> 即
+ <emphasis>-CURRENT</emphasis> 也就是目前的
+ <emphasis>7.X-CURRENT</emphasis></para>
+ </listitem>
+ </itemizedlist>
+
+ <para>與上面其他兩個分支相比,其實 <literal>HEAD</literal> 並不是真正
+ 的 branch tag,它只是個 symbolic constant,代表 <quote><emphasis>current
+ (尚未分支的發展中版本)</emphasis></quote>,通常我們會簡寫為 <quote>-CURRENT</quote>。</para>
+
+ <para>就現在而言,<quote>-CURRENT</quote> 就是指 7.X 的發展;
+ 而 <literal>5-STABLE</literal> 分支(<symbol>RELENG_5</symbol>)是在 2004 年 10 月從
+ <quote>-CURRENT</quote> fork 出來的;
+ <literal>6-STABLE</literal> 分支(<symbol>RELENG_6</symbol>)是在 2005 年 11 月從
+ <quote>-CURRENT</quote> fork 出來的。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="custrel">
+ <para>要怎麼作出自己的 release?</para>
+ </question>
+
+ <answer>
+ <para>請參照 <ulink
+ url="../../articles/releng/article.html">Release 工程</ulink>
+ 文章說明。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="makeworld-clobbers">
+ <para>為何 <command>make world</command> 會把原來裝的 binary 檔都換掉了?</para>
+ </question>
+
+ <answer>
+ <para>沒錯,就是這樣子。如名字所示,<command>make world</command>
+ 會重新編譯系統內建的每個 binary 檔,這樣在結束時就可確定有個一致且乾淨的環境(所以要花上好一段時間)。</para>
+
+ <para>在執行 <command>make world</command> 或
+ <command>make install</command> 時,如果有設
+ <literal>DESTDIR</literal> 這個環境變數,新產生的 binary 將會裝在
+ <literal>${DESTDIR}</literal> 下同樣的目錄樹中。但在某些修改
+ shared library 和重建 binary 的無特定情況下,這樣做可能會使
+ <command>make world</command> 失敗。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="cvsup-round-robin">
+ <para>Why isn't cvsup.FreeBSD.org a round robin DNS entry to
+ share the load amongst the various CVSup servers?</para>
+ </question>
+
+ <answer>
+ <para>While CVSup mirrors update from the master CVSup
+ server hourly, this update might happen at any time during
+ the hour. This means that some servers have newer code
+ than others, even though all servers have code that is
+ less than an hour old. If <hostid role="fqdn">cvsup.FreeBSD.org</hostid> was a round
+ robin DNS entry that simply redirected users to a random
+ CVSup server, running CVSup twice in a row could download
+ code older than the code already on the system.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="bus-speed-defaulted">
+ <para>在系統開機時,出現 <quote>(bus speed defaulted)</quote>。</para>
+ </question>
+
+ <answer>
+
+ <para>Adaptec 1542 SCSI 卡允許使用者用軟體調整匯流排的存取速度。
+ 早期的 1542 驅動程式試圖將它設成可用的最快速度,但後來發現在一
+ 些機器上不能用,所以現在要在 kernel 設定中加
+ <symbol>TUNE_1542</symbol> 這個選項來啟動這個功能。在支援的機器
+ 上用這個選項會使硬碟存取更快,但在不支援的機器上有可能會毀掉資料。
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ctm">
+ <para>在網路頻寬有限的情況下,我也可以跟上 current 的發展嗎?</para>
+ </question>
+
+ <answer>
+ <para>是的,藉著 <ulink url="../handbook/synching.html#CTM">CTM
+ </ulink> 您就可以<literal>不用</literal>下載全部的程式碼。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="split-240k">
+ <para>是怎麼把發行版本中的檔案切成一個個 240k 的小檔案的?</para>
+ </question>
+
+ <answer>
+ <para>以 BSD 為基礎的較新系統有個 <option>-b</option> 選項
+ 可以把檔案以任意數目 byte 切開。</para>
+
+ <para>這裡是 <filename>/usr/src/Makefile</filename> 中的一個
+ 例子:</para>
+
+ <programlisting>bin-tarball:
+(cd ${DISTDIR}; \
+tar cf - . \
+gzip --no-name -9 -c | \
+split -b 240640 - \
+${RELEASEDIR}/tarballs/bindist/bin_tgz.)</programlisting>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="submitting-kernel-extensions">
+ <para>我在 kernel 中加了新功能,我要把它寄給誰?</para>
+ </question>
+
+ <answer>
+ <para>請參考 <ulink
+ url="../../articles/contributing/article.html">Contributing
+ to FreeBSD</ulink> 中的文章,以了解要如何提供您的程式碼。</para>
+
+ <para>同時也謝謝您的關心!</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="pnp-initialize">
+ <para>ISA 的隨插即用卡是如何偵測及初始化的?</para>
+ </question>
+
+ <answer>
+ <para>由 Frank Durda IV 所寫:
+ <email>uhclem@nemesis.lonestar.org</email></para>
+
+ <para>簡單的說,當主機發出是否有 PnP 卡的詢問訊號時,所有的 PnP 卡
+ 會在幾個固定的 I/O port 作回應。所以當偵測 PnP 的程式開始時,它
+ 會先問有沒有 PnP 卡在,接著所有 PnP 卡會在它讀的 port 以自己的
+ 型號 # 作回答,這樣偵測程式就會得到一個 wired-OR <quote>yes</quote>
+ 的數字,其中至少會有一個 bit 是打開的。然後偵測程式會要求型號
+ (由 Microsoft/Intel指定)小於 X 的卡<quote>離線</quote>。再去看是
+ 否還有卡回答同樣的詢問,如果得到 <literal>0</literal>,就表示沒
+ 有型號大於 X 的卡。 現在程式會問是否有型號小於 <literal>X</literal>
+ 的卡,如果有的話,程式再要型號大於 X-(limit/4) 的卡離線,然後重覆
+ 上面的動作。用重複這種類似 semi-binary search 的方法,在某範圍內
+ 找個幾次後,測程式最後會在機器中區分出所有的 PnP 卡,搜尋次數也
+ 遠低於一個個找的 2^64 次。</para>
+
+ <para>一張卡的 ID 由兩個 32-bit(所以上面是 2&circ;64) + 8bit 偵錯碼
+ 組成,第一個 32 bits 是用來區分各家廠商的。這些廠商從來沒有出來澄
+ 清過,但看來應假設同一家出的不同種類的卡的廠商 ID 有可能不同。用
+ 32 bits 只來表示不同廠商的想法實在有點過頭了。</para>
+
+ <para>第二個 32 bits 則是型號 #、乙太網路位址、或一些使這張卡獨特的
+ 資料。除非第一個 32 bits 不同,否則廠商不可能作出第二個 32 bit 相
+ 同的兩張卡。所以在一台機器中可以有同樣的好幾張卡,然而他們整個
+ 64 bits 還是會都不一樣。</para>
+
+ <para>這兩個 32 bit 絕對不可以全為零,這才能使得最開始 binary search
+ 中的 wired-OR 會得到一個非零數字。</para>
+
+ <para>一旦系統區分出所有卡的 ID,接著會經由同樣的 I/O port 一個個重
+ 新啟動每張卡,接著找出已知介面卡所需的資源、有哪些中斷可以使用等
+ 等。所有卡都會被掃描一次,來收集這些資料。</para>
+
+ <para>這些資訊接著和硬碟上的 ECU 檔案、或 MLB BIOS 裡的資料結合在一
+ 起,通常是綜合 ECU 和 MLB 裡的 BIOS PnP 資料,這些週邊並不支援真正
+ 的 PnP,然而偵測程式在檢查 BIOS 和 ECU 資料後,它可以避免 PnP 週邊
+ 和那些偵測不到的相衝突。</para>
+
+ <para>接著再度拜訪這些 PnP 週邊,這次會把可用的 I/O、DMA、IRQ 和記憶
+ 體映射的位址都指定給它們。這些週邊就會出現在所指定的地方,直到下一
+ 次重新開機為止,不過也沒有人說不能把它們隨時移來移去。</para>
+
+ <para>上面有相當多的簡化,但你應該已經了解大致的過程。</para>
+
+ <para>Microsoft 把表示印表機狀態的幾個主要 port 拿來作 PnP,他們的
+ 邏輯是沒有一張卡會在這些地方解碼作相反的 I/O cycles。但是我找到
+ 一款早期仍在評估 PnP 提案時的 IBM 原廠 printer board,它的確去解
+ 對這些狀態 port 的寫入資料,但是 MS <quote>說了就算</quote>。所以
+ 它們的確有對印表機狀態 port 寫入,還有讀取該位址 +
+ <literal>0x800</literal>、和另一個在 <literal>0x200</literal> 及
+ <literal>0x3ff</literal> 之間的 port。</para>
+
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="major-numbers">
+ <para>我為某設備寫了驅動程式,能不能給它一個 major number?</para>
+ </question>
+
+ <answer>
+ <para>這要看你是否打算將這個驅動程式公開使用,如果是的話,請把它的
+ 原始碼送一份給我們,還有 <filename>files.i386</filename> 修改的
+ 部份、kernel 設定檔樣本、以及用來產生設備檔的 &man.MAKEDEV.8;。
+ 如果你不打算公開、或因為版權問題而不能公開的話,我們有特地保留
+ character major number 32 和 block major number 8 給這方面的使用,
+ 直接用這兩個就好了。不論如何,我們都會很感激你能在 &a.hackers;
+ 發表驅動程式的消息。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="alternate-directory-layout">
+ <para>關於更動目錄放置的原則?</para>
+ </question>
+
+ <answer>
+ <para>在回答關於更動目錄放置的原則方面,我在 1983 年寫好目前的作法
+ 後就沒有再改變過,這種方式是針對原先的 FFS 檔案系統,後來也沒有
+ 對它作任何更動。它在避免 cylinder group 被填滿這方面做得相當成功,
+ 但是就像有些人已經注意到,它和 find 就配合得不大好。大部份的檔案
+ 系統是由那些用 depth first search(aka ftw) 產生的 archive 製造出
+ 來,解出來的目錄 inode 會橫跨好幾個 cylinder group,如果以後要做
+ depth first search 的話,這是最糟糕的情況之一。如果我們知道總共
+ 會產生多少目錄的話,解法是在做任何存取/寫入動作之前,在每個
+ cylinder group 上先造出(所有目錄數/cylinder greoup 的數目)這麼多
+ 的目錄。很明顯的,我們必須要有根據地去猜這 個數字,就算一個像 10
+ 的很小固定數目也會使效率以級數成長。區分 restore (即解開上述的
+ archive) 和一般檔案操作的方法可以是(現在用的演算法可能要更敏感):
+ 如果一些目錄(最多 10 個)都在 10 秒內產 生的話,那麼就把這些目錄
+ 聚集在同一個 cylinder group。不管怎樣, 我的經驗指出這是一個已經
+ 充份實驗過的部份。</para>
+
+ <para>Kirk McKusick, September 1998</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="kernel-panic-troubleshooting">
+ <para>如何在 kernel panics 時得到最多的資訊?</para>
+ </question>
+
+ <answer>
+ <para><emphasis>[這節是從 &a.wpaul; 在 &os.current; <link
+ linkend="mailing">mailing list</link> 上發表的信中節錄,
+ &a.des; 修正了打字錯誤、再加上括弧裡的注解。]</emphasis></para>
+
+ <programlisting>From: Bill Paul &lt;wpaul@skynet.ctr.columbia.edu&gt;
+Subject: Re: the fs fun never stops
+To: Ben Rosengart
+Date: Sun, 20 Sep 1998 15:22:50 -0400 (EDT)
+Cc: current@FreeBSD.org</programlisting>
+
+ <para><emphasis>[Ben 發表了下面的 panic 訊息]</emphasis></para>
+
+ <programlisting>&gt; Fatal trap 12: page fault while in kernel mode
+&gt; fault virtual address = 0x40
+&gt; fault code = supervisor read, page not present
+&gt; instruction pointer = 0x8:0xf014a7e5
+ ^^^^^^^^^^
+&gt; stack pointer = 0x10:0xf4ed6f24
+&gt; frame pointer = 0x10:0xf4ed6f28
+&gt; code segment = base 0x0, limit 0xfffff, type 0x1b
+&gt; = DPL 0, pres 1, def32 1, gran 1
+&gt; processor eflags = interrupt enabled, resume, IOPL = 0
+&gt; current process = 80 (mount)
+&gt; interrupt mask =
+&gt; trap number = 12
+&gt; panic: page fault</programlisting>
+
+ <para>當你看到像這樣的訊息時,只把它拷一份送上來是不夠的。我在上面
+ 特地標明的 instruction pointer 值相當重要,不幸的是它會因設定而
+ 不同。換句話說,這個值會跟你用的 kernel image 檔而變動。如果是用
+ 某個 snapshot 版本的 GENERIC kernel,也許其他人可以追蹤到出問題
+ 的函式,但如果你是用自訂的 kernel,那麼只有
+ <emphasis>你</emphasis>才能告訴我們問題出在那裡。</para>
+
+ <para>要做的事包括這些:</para>
+
+ <procedure>
+ <step>
+ <para>把 instruction pointer 的值記下來。注意在前面的
+ <literal>0x8:</literal> 在這個情況中並不重要,我們要的是
+ <literal>0xf0xxxxxx</literal>。</para>
+ </step>
+
+ <step>
+ <para>當系統重新開機後,執行這道命令:
+
+ <screen>&prompt.user; <userinput>nm -n /(造成 panic 的 kernel 檔案) | grep f0xxxxxx</userinput></screen>
+
+ 其中 <literal>f0xxxxxx</literal> 就是記下來的
+ instruction pointer 值。有可能不會剛好找到完整的這個字串,
+ 這是因為 kernel symbol table 裡的各個 symbol 只是函式的進
+ 入點,但 instruction pointer 所指的位址有可能是在函式內的
+ 某一處,而不一定在開頭。所以如果找不到整個字串,那麼把
+ instruction pointer 值的最後一個數字拿掉,再試一次:
+
+ <screen>&prompt.user; <userinput>nm -n /(造成 panic 的 kernel 檔案) | grep f0xxxxx</userinput></screen>
+
+ 如果這樣也找不到,那就把另一個數字去掉再找,一直重複到找到
+ 為止, 結果是一串可能造成 panic 的函式列表。這樣比直接找到
+ 出問題的函式來得差,但至少好過什麼都沒有。</para>
+
+ </step>
+ </procedure>
+
+ <para>我常常看到人們顯示一大片 panic 訊息,但很少看到有人花一點時間
+ 把 instruction pointer 和 kernel symbol table 中的函式比較一下。
+ </para>
+
+ <para>要追蹤出造成 panic 原因的最好方法是先做出 crash dump,然後用
+ &man.gdb.1; 在上面做 stack trace。</para>
+
+ <para>不管是那一種,我通常是用這個方法:</para>
+
+ <procedure>
+ <step>
+ <para>寫好 kernel 設定檔。如果你需要用 kernel debugger,在設
+ 定檔中加上 <literal>options DDB</literal> 這個選項。
+ (當我懷疑有出現無窮迴圈時,通常會用這個來設定中斷點。)
+ </para>
+ </step>
+
+ <step>
+ <para>用 <command>config -g
+ <replaceable>KERNELCONFIG</replaceable></command>
+ 做出用來編譯的目錄。</para>
+ </step>
+
+ <step>
+ <para><command>cd /sys/compile/
+ <replaceable>KERNELCONFIG</replaceable>; make
+ </command></para>
+ </step>
+
+ <step>
+ <para>等待 kernel 編譯結束。</para>
+ </step>
+
+ <step>
+ <para><command>make install</command></para>
+ </step>
+
+ <step>
+ <para>重新開機</para>
+ </step>
+ </procedure>
+
+ <para>&man.make.1; 將會製造出兩個 kernel。<filename>kernel</filename>
+ 還有 <filename>kernel.debug</filename>。
+ <filename>kernel</filename> 將會被安裝到
+ <filename>/kernel</filename>,而 <filename>kernel.debug</filename>
+ 可用來給 &man.gdb.1; 當作 debugging symbols 的來源。</para>
+
+ <para>要確定能抓到 crash dump,先編輯
+ <filename>/etc/rc.conf</filename> 將 <literal>dumpdev</literal> 指
+ 到 swap 分割區。這樣 &man.rc.8; 會用 &man.dumpon.8; 來啟動
+ crash dump,你也可以手動執行 &man.dumpon.8; 在 panic 之後,
+ crash dump 可以用 &man.savecore.8; 存起來;如果
+ <filename>/etc/rc.conf</filename> 裡有設 <literal>dumpdev</literal>
+ 那麼重新開機後 &man.rc.8; 會自動執行 &man.savecore.8; 把
+ crash dump 存在 <filename>/var/crash</filename>。</para>
+
+ <note>
+ <para>FreeBSD 的 crash dump 通常和機器裡的實際記憶體一樣大,就
+ 像如果有 64MB 記憶體,crash dump 大小就是 64MB。所以要確定
+ <filename>/var/crash</filename> 下有足夠的空間,或是可以手
+ 動執行 &man.savecore.8; 把 crash dump 放到另一個空間較夠的
+ 目錄下。另一種也許可以限制 crash dump 的方法,是在 kernel
+ 設定檔中用 <literal>options MAXMEM=(foo)</literal>,將 kernel
+ 可用的記憶體限制在合理的大小。舉例來說,如果你有 128MB 的記憶
+ 體,但是可以限制 kernel 只能用 16MB 的記憶體,這樣 crash dump
+ 就是 16MB 而不是 128MB 了。</para>
+ </note>
+
+ <para>一旦發現有了 crash dump,就可以用 &man.gdb.1; 來做
+ stack trace ,如下所示:</para>
+
+ <screen>&prompt.user; <userinput>gdb -k /sys/compile/KERNELCONFIG/kernel.debug /var/crash/vmcore.0</userinput>
+<prompt>(gdb)</prompt> <userinput>where</userinput></screen>
+
+ <para>要注意可能會出現好幾個螢幕的可用資訊,你可以用 &man.script.1;
+ 把所有輸出都存起來。用包括所有 debug symbol 的 kernel 來除錯,這
+ 樣應該可以直接顯示 panic 是發生在那一行。通常是由下往上讀
+ stack strace,這樣才能一個個追蹤出有哪些動作引到 crash。也可以用
+ &man.gdb.1; 把各種變數或結構的內容印出來,以檢查系統 crash 時的
+ 實際狀態。</para>
+
+ <para>好啦,如果你有第二台電腦而且有夠瘋狂,可以將 &man.gdb.1; 設定
+ 成遠端除錯。這樣你可以在一台機器中用 &man.gdb.1; 去除錯另一台裡的
+ kernel,可以執行的包括設定中斷點、在 kernel 原始碼中一步步執行等
+ 等,就像在一般使用者程式上除錯一樣。由於沒有什麼機會為除錯而設置
+ 兩台並鄰電腦,所以我還沒有這樣玩過。</para>
+
+ <para><emphasis>[Bill 補充:"我忘了提到一點:如果你有啟動 DDB 而
+ kernel 也已經進入除錯器,可以在 DDB 命令列下打 'panic',強迫產生
+ panic (還有 crash dump)。也有可能在 panic 階段時再進入除錯器,
+ 如果這樣的話,輸入 'continue',接著它就會完成 crash dump。" -ed]
+ </emphasis></para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="dlsym-failure">
+ <para>為什麼 dlsym() 不能操作 ELF 執行檔?</para>
+ </question>
+
+ <answer>
+ <para>在 ELF 一系列的工具中,內定是不會讓 dynamic linker 看到執行
+ 檔裡定義了哪些 symbol。所以 <function>dlsym()</function> 沒有辦
+ 法用藉由呼叫 <function>dlopen(NULL, flags)</function> 取得的
+ handle,用它去搜尋有那些 symbol 一定會失敗。</para>
+
+ <para>如果你想要用 <function>dlsym()</function> 找出某個 process
+ 的主執行檔中有哪些 symbol,則要在 link 時對 ELF linker (&man.ld.1;)
+ 加上 <option>-export-dynamic</option> 這個參數。</para>
+
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="change-kernel-address-space">
+ <para>我要如何增加或減少 kernel 能定址的空間?</para>
+ </question>
+
+ <answer>
+ <para>預設值是,FreeBSD 3.x 的 kernel 可以定址的空間是 256 MB 而
+ FreeBSD 4.x 可以到 1 GB。如果是網路負荷相當重的伺服器
+ (例如大型 FTP 或 HTTP 伺服器),你也許會發現 256 MB 可能不大夠。
+ </para>
+
+ <para>所以,要如何增加定址空間呢?要從兩方面著手。首先首先告訴
+ kernel 本身要保留較大空間給自己。其次,既然是在定址空間的最上
+ 面載入 kernel,所以還要調低載入的位址,才不會和前面定址的範圍
+ 重疊。</para>
+
+ <para>增加 <filename>src/sys/i386/include/pmap.h</filename> 裡的
+ <literal>NKPDE</literal> 就可以達成第一個目標。1 GB 的定址空間會
+ 像這樣:</para>
+
+ <programlisting>#ifndef NKPDE
+#ifdef SMP
+#define NKPDE 254 /* addressable number of page tables/pde's */
+#else
+#define NKPDE 255 /* addressable number of page tables/pde's */
+#endif /* SMP */
+#endif</programlisting>
+
+ <para>要算出 <literal>NKPDE</literal> 的正確值,將想要的空間大小
+ (以 megabyte 為單位)除以 4,接著單 CPU 機器減 1,
+ 雙 CPU 則是減 2。</para>
+
+ <para>要解決第二個問題,必須自行算出 kernel 被載入的位址:求出
+ 0x100100000 減掉定址空間大小的值(以 byte 為單位),如 1 GB 大小就是
+ 0xc0100000。把<filename>src/sys/i386/conf/Makefile.i386</filename>
+ 裡的 <symbol>LOAD_ADDRESS</symbol> 設成這個值﹔接著在
+ <filename>src/sys/i386/conf/kernel.script</filename> 中,將
+ section 列表最前面的 location counter 設成相同的值,如下:</para>
+
+ <programlisting>OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
+OUTPUT_ARCH(i386)
+ENTRY(btext)
+SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/obj/elf/home/src/tmp/usr/i386-unknown-freebsdelf/lib);
+SECTIONS
+{
+ /* Read-only sections, merged into text segment: */
+ . = 0xc0100000 + SIZEOF_HEADERS;
+ .interp : { *(.interp) }</programlisting>
+
+ <para>然後重新編譯您的 kernel。您可能會在執行 &man.ps.1;、&man.top.1;
+ 這類的程式時碰到問題﹔<command>make world</command> 應該就可以解決
+ (或把改過的 <filename>pmap.h</filename> 複製到
+ <filename>/usr/include/vm/</filename> 下,再手動編譯
+ <filename>libkvm</filename>,&man.ps.1; 還有 &man.top.1;)。</para>
+
+ <para>注意:kernel 所能定址的空間大小必須是 4 megabytes 的倍數。
+ </para>
+
+ <para>[&a.dg; 補充:<emphasis>我認為 kernel 定址空間大小應該要是 2
+ 的乘冪,但不大確定這一點。舊的啟動程式會動到
+ high order address bits,記得它假設至少有 256 MB。]</emphasis>
+ </para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+ <chapter id="acknowledgments">
+ <chapterinfo>
+ <author>
+ <firstname>Vanilla</firstname>
+ <surname>Shu</surname>
+ <affiliation>
+ <address><email>vanilla@FreeBSD.org</email></address>
+ </affiliation>
+ </author>
+ </chapterinfo>
+
+ <title>感謝</title>
+
+ <blockquote>
+ <attribution>FreeBSD Core Team</attribution>
+
+ <para>假如您在這份 FAQ 中找到錯誤的地方,或是您想增加些甚麼,
+ 請寫封信到 &a.faq; 。我們非常感謝您的建議,
+ 因為您的建議讓這份文件變得更好!</para>
+ </blockquote>
+
+ <variablelist>
+ <varlistentry>
+ <term>&a.jkh;</term>
+ <listitem>
+ <para>不停的更新過時的 FAQ</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.dwhite;</term>
+
+ <listitem>
+ <para>經常在 freebsd-questions 上回答問題</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.joerg;</term>
+
+ <listitem>
+ <para>經常在 Usenet 上回答問題</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.wollman;</term>
+
+ <listitem>
+ <para>Networking and formatting</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Jim Lowe</term>
+
+ <listitem>
+ <para>Multicast information</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.pds;</term>
+
+ <listitem>
+ <para>FreeBSD FAQ 這份文件的打字苦工</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>The FreeBSD Team</term>
+
+ <listitem>
+ <para>Kvetching, moaning, submitting data</para>
+
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>對於那些曾經對這份 FAQ 提供幫助,而我們沒提到的人們,
+ 我們由衷的感謝您!</para>
+ </chapter>
+
+
+ <chapter id="ports">
+ <chapterinfo>
+ <author>
+ <firstname>Yi-Feng</firstname>
+ <surname>Tzeng</surname>
+ <affiliation>
+ <address><email>yftzeng@iis.sinica.edu.tw</email></address>
+ </affiliation>
+ </author>
+ </chapterinfo>
+
+ <title>Ports and Packages 常見問題</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="make-fetch">
+ <para>如何只抓取 tarball?</para>
+ </question>
+
+ <answer>
+ <para>如果只希望抓取 tarball 下來的話,僅需輸入以下指令即可:
+ <screen>&prompt.root; <userinput>make fetch</userinput></screen>
+ 如果是要抓取單一的 port,以
+ <filename role="package">editors/joe</filename> 為例:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/editors/joe</userinput>
+&prompt.root; <userinput>make fetch</userinput></screen>
+
+ <para>那麼,預設會將 <filename role="package">editors/joe</filename>
+ 的 tarball 下載至 <filename>/usr/ports/distfiles</filename>
+ 目錄下。</para>
+
+ <para>如果是希望抓取安裝此 ports 所有相關相依 ports 的 tarball,以
+ <filename role="package">systuils/portupgrade</filename> 為例的話,
+ 則:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/systuils/portupgrade</userinput>
+&prompt.root; <userinput>make fetch-recursive</userinput></screen>
+
+ <para>預設會將此 port 與所有需要的其他 port 的 tarball,下載至
+ <filename>/usr/ports/distfiles</filename> 目錄下。</para>
+
+ <para>如果是希望抓取全部所有 ports 的 tarball ,則:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
+&prompt.root; <userinput>make fetch</userinput></screen>
+
+ <para>則會所將全部所有 ports 的 tarball 下載至
+ <filename>/usr/ports/distfiles</filename> 目錄下。</para>
+
+ <para>如果是希望抓取 ftp 分類下所有 ports 的 tarball ,則:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/ftp</userinput>
+&prompt.root; <userinput>make fetch-recursive</userinput></screen>
+
+ <para>則會所將 ftp 分類下所有 ports 的 tarball 都下載至
+ <filename>/usr/ports/distfiles</filename> 目錄下。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="make-extract">
+ <para>如何僅做到解開 tarball的步驟?</para>
+ </question>
+
+ <answer>
+ <para>有時候習慣自己 patch 原始碼的時候,會很常用到這個功能。以
+ <filename role="package">editors/joe</filename> 為例:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/editors/joe</userinput>
+&prompt.root; <userinput>make extract</userinput></screen>
+
+ <para>會將 tarball解開至
+ <filename>/usr/ports/editors/joe/work</filename> 目錄下。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="make-patch">
+ <para>如何僅做到解開 tarball 並補上官方提供的 patch ?</para>
+ </question>
+
+ <answer>
+ <para>此法與 <link linkend="make-extract">make extract</link>
+ 的方法有一些類似,不同於是先補上官方提供的 patch,再行 patch
+ 自己的修正。 有時候習慣自己 patch 原始碼的時候,
+ 則這個方式正好符合您的需求。
+ 以 <filename role="package">editors/joe</filename> 為例:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/editors/joe</userinput></screen>
+ <screen>&prompt.root; <userinput>make patch</userinput></screen>
+
+ <para>會將 tarball解開至 <filename>/usr/ports/editors/joe/work</filename> 目錄下
+ ,並補上官方提供的 patch。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="make-install">
+ <para>如何安裝一個新的 port?</para>
+ </question>
+
+ <answer>
+ <para>如果系統上未安裝此軟體,則可以選擇安裝一個新的 port。
+ 以 <filename role="package">editors/joe</filename> 為例的話,則:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/editors/joe</userinput></screen>
+ <screen>&prompt.root; <userinput>make install</userinput></screen>
+
+ <para>如此會在系統上安裝一個新的 joe 軟體。
+ 如果需要在安裝完成後,一併清除編輯時期所留下來的暫存目錄,則可配合 <userinput>make clean</userinput> 的方法一起使用,如:</para>
+ <screen>&prompt.root; <userinput>cd /usr/ports/editors/joe</userinput></screen>
+ <screen>&prompt.root; <userinput>make clean</userinput></screen>
+
+ <para>如果想要一次清掉所有 ports 產生的暫存資料,則只要回到 ports 的根目錄執行即可:</para>
+ <screen>&prompt.root; <userinput>cd /usr/ports</userinput></screen>
+ <screen>&prompt.root; <userinput>make clean</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="make-package">
+ <para>如何安裝一個新的 port,並打包(package)起來?</para>
+ </question>
+
+ <answer>
+ <para>將安裝完成的軟體打包起來,有許多便利性:包括在叢集系統中,可供其它機器使用,
+ 或將未來此軟體出問題可重新利用此 package 重新快速安裝。
+ 以 <filename role="package">editors/joe</filename> 為例的話,則:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/editors/joe</userinput></screen>
+ <screen>&prompt.root; <userinput>make package</userinput></screen>
+
+ <para>如此會在系統上安裝一個新的 joe 軟體,並將此軟體打包(package)起來。
+ package 預設會在 <filename>/usr/ports/editors/joe</filename> 目錄下,如果希望集中管理的話,建議做如下的步驟:</para>
+
+ <screen>&prompt.root; <userinput>mkdir -p /usr/ports/packages</userinput></screen>
+
+ <para>以後打包的 packages 都會存放在此目錄下,並且系統會自動做分類,以方便管理。
+ 如果需要在安裝完成後,一併清除編輯時期所留下來的暫存目錄,則可配合 make clean 一起使用,如:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/editors/joe</userinput></screen>
+ <screen>&prompt.root; <userinput>make package clean</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="make-depend-package">
+ <para>如何打包一個 port,並將其所有相依的 ports 也打包起來?</para>
+ </question>
+
+ <answer>
+ <para>因為 <link linkend="make-package">make package</link> 只有打包單一套件,
+ 中間依賴的 ports 並沒有一起打包,這會出現一個常遇到的問題:
+ 就是如果一個 port 需要依賴其它的 ports,那麼必須將其它 ports 也一起打包,否則安裝 packages 會有相依性的問題。
+ 以 <filename role="package">sysutils/portupgrade</filename> 為例:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/sysutils/portupgrade</userinput></screen>
+ <screen>&prompt.root; <userinput>make DEPENDS_TARGET=package package</userinput></screen>
+
+ <para>如此會對所有 portupgrade 所相依賴的 ports 都一併打包,也包括自己本身。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="pkg-create">
+ <para>如何對一個已經安裝的 port 打包?</para>
+ </question>
+
+ <answer>
+ <para>如果安裝好一個套件,事前並未打包,事後想打包的話,則:
+ 以 <filename role="package">editors/joe</filename> 為例:</para>
+
+ <screen>&prompt.root; <userinput>cd /var/db/pkg</userinput></screen>
+ <screen>&prompt.root; <userinput>pkg_create -b joe-{版本號}</userinput></screen>
+
+ <para>會將已安裝的 port 打包起來,放在 <filename>/var/db/pkg</filename> 目錄下。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="make-clean">
+ <para>如何清理 ports 編輯期間所產生的暫存資料?</para>
+ </question>
+
+ <answer>
+ <para>在安裝 port 的時候,會有編譯期間所需要的工作目錄(work),因此通常安裝好一個套件後,會清除此暫存目錄,以節省硬碟空間。
+ 以 <filename role="package">editors/joe</filename> 為例:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/editors/joe</userinput></screen>
+ <screen>&prompt.root; <userinput>make clean</userinput></screen>
+
+ <para>如果是希望清除所有 ports 的暫存目錄,則:</para>
+ <screen>&prompt.root; <userinput>cd /usr/ports</userinput></screen>
+ <screen>&prompt.root; <userinput>make clean</userinput></screen>
+
+ <para>如果是希望清除所有 ftp 分類的暫存目錄,則:</para>
+ <screen>&prompt.root; <userinput>cd /usr/ports/ftp</userinput></screen>
+ <screen>&prompt.root; <userinput>make clean</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="make-distclean">
+ <para>如何清理 ports 編輯期間所產生的暫存資料,以及 tarball 檔?</para>
+ </question>
+
+ <answer>
+ <para>在 <link linkend="make-clean">make clean</link> 僅只是清除編輯期間所需要的工作目錄(work),並沒有將編譯
+ ports 時一併下載的 tarball 刪除(相對應之 tarball 預設會存放在 <filename>/usr/ports/distfiles</filename>)
+ 如果想把 tarball 一併清除的話,以 <filename role="package">editors/joe</filename> 為例:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/editors/joe</userinput></screen>
+ <screen>&prompt.root; <userinput>make distclean</userinput></screen>
+
+ <para><userinput>make distclean</userinput> 的步驟包含了 <userinput>make clean</userinput>
+ 的功能,也就是說除了會刪除 tarball 外,還會一併清除編譯時的暫存 work 目錄。</para>
+
+ <para>如果是希望清除所有 ports 的暫存 work 目錄及 tarball,則:</para>
+ <screen>&prompt.root; <userinput>cd /usr/ports</userinput></screen>
+ <screen>&prompt.root; <userinput>make distclean</userinput></screen>
+
+ <para>而如果是希望清除所有 ftp 分類的 work 目錄及 tarball,則:</para>
+ <screen>&prompt.root; <userinput>cd /usr/ports/ftp</userinput></screen>
+ <screen>&prompt.root; <userinput>make distclean</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="make-depends-list">
+ <para>如何在安裝 ports 前查詢所依賴的相關套件?</para>
+ </question>
+
+ <answer>
+ <para>在安裝 ports 前,可以查詢所依賴的相關套件。
+ 以 <filename role="package">mail/p5-Mail-SpamAssassin</filename> 為例:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/mail/p5-Mail-SpamAssassin</userinput></screen>
+ <screen>&prompt.root; <userinput>make all-depends-list</userinput></screen>
+ <para><userinput>make all-depends-list</userinput> 顯示此套件所有相依的套件。</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/mail/p5-Mail-SpamAssassin</userinput></screen>
+ <screen>&prompt.root; <userinput>make pretty-print-build-depends-list</userinput></screen>
+ <para><userinput>make all-depends-list</userinput> 顯示此套件在編譯期間所需要的套件。</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/mail/p5-Mail-SpamAssassin</userinput></screen>
+ <screen>&prompt.root; <userinput>make pretty-print-run-depends-list</userinput></screen>
+ <para><userinput>make all-depends-list</userinput> 顯示此套件要執行時所需要的套件。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="make-deinstall">
+ <para>如何移除已安裝的 ports?</para>
+ </question>
+
+ <answer>
+ <para>以 <filename role="package">editors/joe</filename> 為例:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/editors/joe</userinput></screen>
+ <screen>&prompt.root; <userinput>make deinstall</userinput></screen>
+
+ <para>或是使用 <userinput>pkg_delete</userinput>:</para>
+ <screen>&prompt.root; <userinput>pkg_delete joe-{version}</userinput></screen>
+
+ <para>有時候套件之間的相依性會導致無法直接移除,如果要強制移除的話,則:</para>
+ <screen>&prompt.root; <userinput>pkg_delete -f joe-{version}</userinput></screen>
+ <para>但請注意:很有可能會導致其它相依到這軟體的套件執行起來出現問題。</para>
+ <para>至於二者的差別,請參考 <link linkend="deinstall-vs-pkg-delete">make deinstall 與 pkg_delete 有什麼不同</link></para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="make-deinstall-depends">
+ <para>如何一併移除所相依的 ports?</para>
+ </question>
+
+ <answer>
+ <para>以 <filename role="package">sysutils/portupgrade</filename> 為例:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/sysutils/portupgrade</userinput></screen>
+ <screen>&prompt.root; <userinput>make deinstall-depends</userinput></screen>
+
+ <para>執行此步驟前,請注意是否會移除其他套件也有共同相依的部分。建議先參考
+ <link linkend="make-depends-list">make-depends-list</link> 的方法來檢查。</para>
+
+ <para>或是使用</para>
+ <screen><userinput>pkg_delete</userinput></screen>
+ <para>這樣若仍有相依該套件的話,會先警告而不會移除。除非有另外加了 -f 參數來強制移除。</para>
+ <screen>&prompt.root; <userinput>pkg_delete -r portupgrade-{version}</userinput></screen>
+ <para>至於二者的差別,請參考 <link linkend="deinstall-vs-pkg-delete">make deinstall 與 pkg_delete 有什麼不同</link></para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="make-reinstall">
+ <para>如何重新安裝已安裝過的 ports?</para>
+ </question>
+
+ <answer>
+ <para>重新安裝的前提是:之前有安裝過或目前已安裝。以 <filename role="package">editors/joe</filename> 為例:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/editors/joe</userinput></screen>
+ <screen>&prompt.root; <userinput>make deinstall clean install</userinput></screen>
+
+ <para>或是</para>
+ <screen>&prompt.root; <userinput>cd /usr/ports/editors/joe</userinput></screen>
+ <screen>&prompt.root; <userinput>make reinstall</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="make-search">
+ <para>如何以關鍵字搜尋 ports?</para>
+ </question>
+
+ <answer>
+ <para>如果要從全部的 ports collection 中找尋與關鍵字 "ldap" 有關的 ports,則:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports</userinput></screen>
+ <screen>&prompt.root; <userinput>make search key=ldap</userinput></screen>
+
+ <para>如果只要從與 ftp 相關的 ports 下找尋與關鍵字 "ldap" 有關的 ports,則:</para>
+ <screen>&prompt.root; <userinput>cd /usr/ports/ftp</userinput></screen>
+ <screen>&prompt.root; <userinput>make search key=ldap</userinput></screen>
+
+ <para>還有另一個用法,方法只是將 key 換成 name。如果已經知道要搜尋 ports 的名稱,或只想找名稱相關的關鍵字 "ldap", 則:</para>
+ <screen>&prompt.root; <userinput>cd /usr/ports</userinput></screen>
+ <screen>&prompt.root; <userinput>make search name=ldap</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="upgrade-ports">
+ <para>如何升級已安裝的 ports?</para>
+ </question>
+
+ <answer>
+ <para>如果已經安裝套件,事後欲升級的話,必須先移除舊版的 port。以 <filename role="package">editors/joe</filename> 為例:</para>
+ <screen>&prompt.root; <userinput>cd /usr/ports/editors/joe</userinput></screen>
+ <screen>&prompt.root; <userinput>make clean reinstall</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="pkg-info">
+ <para>如何查詢目前系統安裝了哪些套件?</para>
+ </question>
+
+ <answer>
+ <para>查詢目前系統已安裝的全部套件:</para>
+
+ <screen>&prompt.root; <userinput>pkg_info</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="pkg-info-grep">
+ <para>如何查詢目前系統有沒有安裝這個關鍵字的套件?</para>
+ </question>
+
+ <answer>
+ <para>假設要找的關鍵字是 joe 的話:</para>
+ <screen>&prompt.root; <userinput>pkg_info | grep joe</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="pkg-info-W">
+ <para>如何查詢某個檔案是屬於哪些套件?</para>
+ </question>
+
+ <answer>
+ <para>如果想查詢 <filename>/usr/local/bin/joe</filename> 是屬於哪個套件的話,則:</para>
+ <screen>&prompt.root; <userinput>pkg_info -W /usr/local/bin/joe</userinput></screen>
+ <para>如果沒有回傳任何資訊的話,代表著這個檔案是由 FreeBSD 內建的。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="pkg-info-L">
+ <para>如何查詢某個套件安裝了哪些檔案?</para>
+ </question>
+
+ <answer>
+ <para>如果想查詢目前系統所安裝的 <filename role="package">joe</filename> 包含了哪些檔案,則:</para>
+ <screen>&prompt.root; <userinput>pkg_info -L /var/db/pkg/joe-{version}</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="reinstall-upgrade">
+ <para>如何安裝舊版的 ports?</para>
+ </question>
+
+ <answer>
+ <para>有時候會因為相依性,或是新版有問題,而會想裝舊版本的套件。
+ 這裡介紹的方法是利用 CVS 的好處,回歸到以前舊版本存在的日子,以安裝舊版本的套件。</para>
+
+ <para>首先,若我們要回復到某一個套件的版本時,需要去查詢 FreeBSD ports CVS repository。
+ 最常見的就是 <ulink url="http://www.freshports.org/">Freshports</ulink> 網站、 FreeBSD 的
+ <ulink url="http://lists.freebsd.org/pipermail/cvs-all/">Mailing FreeBSD cvs</ulink> 或是 FreeBSD
+ <ulink url="http://www.freebsd.org/cgi/cvsweb.cgi/ports/">ports cvsweb</ulink>。</para>
+
+ <para>查到該套件版本所依存的日子後,就修改 CVS tag。一般預設 ports 的 CVS tag 會寫在 <filename>/usr/share/examples/cvsup/ports-supfile</filename>
+ ,如要回溯到 2002/10/05 號的話,則:</para>
+ <screen>&prompt.root; <userinput>vi /usr/share/examples/cvsup/ports-supfile</userinput></screen>
+ <screen>*default date=2002.10.05.00.00.00 #將 date 改成當日</screen>
+
+ <para>然後按照一般 CVSup 或 csup 的時候一樣,執行 CVSup 或 csup (make update),此時的
+ ports collections 就會回到當時的情形,那麼該套件的舊版也會出現在 ports collections 中,只要安裝即可。</para>
+
+ <para>如果僅是想回溯某部份的 ports,則必須加上額外的資訊,如僅希望把 <filename role="package">lang/perl5.8</filename> 回溯,
+ 而我們得知此屬於 lang 中的一支,則:</para>
+ <screen>&prompt.root; <userinput>vi /usr/share/examples/cvsup/ports-supfile</userinput></screen>
+ <screen>#ports-all #將 ports-all 標示起來</screen>
+ <screen>ports-lang #加入這行</screen>
+ <para>最後,執行 CVSup 或 csup ,並安裝即可。目前若希望單獨回溯單一的 port,則比較麻煩。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="upgrade-ports-mk">
+ <para>如何更新 ports Mk?</para>
+ </question>
+
+ <answer>
+ <para>Mk (<filename>/usr/ports/Mk</filename>) 是編譯 ports 時所參考的設定,有時若發生 ports collections 太新,而導致 Mk 的內容不符,此時就是應該更新 Mk 的時候了。</para>
+ <screen>&prompt.root; <userinput>cd /usr/src</userinput></screen>
+ <screen>&prompt.root; <userinput>make update</userinput></screen>
+ <screen>&prompt.root; <userinput>cd /usr/src/share/mk</userinput></screen>
+ <screen>&prompt.root; <userinput>make install</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="make-use-sed-inplace">
+ <para>如何解決安裝 ports 時出現 sed -i 的錯誤?</para>
+ </question>
+
+ <answer>
+ <para>因為 BSD style 的 sed ,也就是 BSD 本身自有的 sed ,與一些 ports 編譯期間所執行的 sed 不一致,所以會導致一些語法錯誤。此時先安裝 sed_inplace (<filename role="package">textproc/sed_inplace</filename>),然後再安裝原本無法安裝的 ports:</para>
+ <screen>&prompt.root; <userinput>make -DUSE_REINPLACE install</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="pkg-version">
+ <para>如何列出所有可以升級的 ports?</para>
+ </question>
+
+ <answer>
+ <para>ports collection 的更新速度很快,在每次更新 ports collections 後,往往會出現比目前現
+ 在安裝的套件還新的版本,可以令系統自行整理並提供可升級套件的列表:</para>
+ <screen>&prompt.root; <userinput>pkg_version -c</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="grep-defined-makefile">
+ <para>如何得知 ports 所提供的編譯參數?</para>
+ </question>
+
+ <answer>
+ <para>所有的 ports collections 中所提供的編譯參數都會在對應的 Makefile 檔案內詳述,
+ 如 <filename role="package">sysutils/portupgrade</filename> 的話,則是位在 <filename>/usr/ports/sysutils/portupgrade/Makefile</filename>
+ 檔案下。</para>
+ <screen>&prompt.root; <userinput>cd /usr/ports/sysutils/portupgrade</userinput></screen>
+ <screen>&prompt.root; <userinput>make -DNOPORTDOCS install</userinput></screen>
+
+ <para>那麼安裝此 ports 時,會將 NOPORTDOCS 所對應的相關參數指定進去。</para>
+ <para>有時候設定較人性化的 ports 會在安裝前提供參數供選擇,但是其實大部份的 ports 都沒有提
+ 供,因此必須自行去搜尋可編譯的參數,在此我提供的方式如下:</para>
+ <screen>&prompt.root; <userinput>cd /usr/ports/sysutils/portupgrade</userinput></screen>
+ <screen>&prompt.root; <userinput>grep defined Makefile</userinput></screen>
+
+ <para>如此幾乎可以知道所有提供的可編譯參數,雖然有時會多出其它的資料,不會這個確實是一個不
+ 錯可參考的方式。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="make-configure-args">
+ <para>如何手動加入編譯 ports 的參數?</para>
+ </question>
+
+ <answer>
+ <para>在 <link linkend="grep-defined-makefile">前面所述</link> 的方法,是 ports collections 有提供的前提之下,有時候並不是所有該軟體所支援的參數都會收納在 ports collections 中,因此有時候會需要手動加入編譯的參數。</para>
+ <para>如 ftp/pure-ftpd 中,如果不想把 inetd 的支援編入的選項,並沒有被 ports collections 所納入,因此必須手動加上這個編譯參數,如下:</para>
+ <screen>&prompt.root; <userinput>cd /usr/ports/ftp/pure-ftpd</userinput></screen>
+ <screen>&prompt.root; <userinput>make CONFIGURE_ARGS+="--without-inetd" install</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="make-prefix">
+ <para>如何指定 ports 的安裝路徑?</para>
+ </question>
+
+ <answer>
+ <para>預設 ports collecions 已安排安裝的路徑 (<filename>/usr/local/</filename>),如果不想將套件安裝在預設路徑的話,可以手動指定安裝路徑。以 <filename role="package">editors/joe</filename> 為例,則:</para>
+ <screen>&prompt.root; <userinput>cd /usr/ports/editors/joe</userinput></screen>
+ <screen>&prompt.root; <userinput>make PREFIX=/usr install</userinput></screen>
+ <para>那麼 joe 就會將檔案對應在 /usr 目錄下,而不是預設的 /usr/local 目錄下。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="force-pkg-register">
+ <para>安裝 ports 出現 FORCE_PKG_REGISTER 的錯誤訊息</para>
+ </question>
+
+ <answer>
+ <para>請參考 Ohaha 的 <ulink url="http://ohaha.ks.edu.tw/faq-0003.htm">FAQ</ulink>。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="shared-object-not-found">
+ <para>安裝 ports 出現 Shared object libintl.so.X not found 的錯誤訊息</para>
+ </question>
+
+ <answer>
+ <para>請參考 Ohaha 的 <ulink url="http://ohaha.ks.edu.tw/faq-0004.htm">FAQ</ulink>。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="pkg-add">
+ <para>如何安裝 packages?</para>
+ </question>
+
+ <answer>
+ <para>目前 FreeBSD 的 packages 是由 .tgz 所打包。如果想安裝一個 packages ,可使用 pkg_add,如安裝一個 joe 的 tgz:</para>
+ <screen>&prompt.root; <userinput>pkg_add joe-{version}.tgz</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="pkg-add-force">
+ <para>如何強制安裝 packages?</para>
+ </question>
+
+ <answer>
+ <para>由於有些 packages 會有與其他 packages 相依性的關係,所以必須先行安裝那些 packages 才
+能正常安裝。</para>
+ <para>如果須要強制安裝 packages ,可以不須安裝那些有相依性 packages ,但要注意的是強制安裝
+的結果可能會導致執行或運作的不正常。強制安裝 packages 的指令如下,如強制安裝一個 joe 的 tgz:</para>
+ <screen>&prompt.root; <userinput>pkg_add -f joe-{version}.tgz</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="pkg-info-r">
+ <para>如何查詢 packages 與其他 packages 之間的相依性?</para>
+ </question>
+
+ <answer>
+ <para>由於有些 packages 會有與其他 packages 相依性的關係,所以必須先行安裝那些 packages 才
+能正常安裝。</para>
+ <para>查詢 packages 與其他 packages 之間的相依性的指令如下,如查詢與 portupgrade 相依的其他 packages:</para>
+ <screen>&prompt.root; <userinput>pkg_info -r portupgrade-{version}.tgz</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="pkg-add-r">
+ <para>如何安裝遠端的 packages?</para>
+ </question>
+
+ <answer>
+ <para>有兩種設定方式,首先是 PACKAGEROOT,如:</para>
+ <screen>&prompt.root; <userinput>setenv PACKAGEROOT ftp://ftp.tw.freebsd.org</userinput></screen>
+
+ <para>另一種方式是設定 PACKAGESITE,好處是若該站台的 packages 倉儲並不是符合官方的設定或你
+想自己指定一個路徑。</para>
+ <para>以 ftp.tw.freebsd.org i386 的 current pakcages 為例:</para>
+ <screen>&prompt.root; <userinput>setenv PACKAGESITE ftp://ftp.tw.freebsd.org/pub/FreeBSD/ports/i386/packages-current/Latest/</userinput></screen>
+
+ <para>兩種方式選擇其中一種皆可,接下來的步驟都一樣。</para>
+ <para>往後要安裝 packages 的時候,如 portupgrade 的話,則:</para>
+ <screen>&prompt.root; <userinput>pkg_add -r portupgrade</userinput></screen>
+
+ <para>則系統會自動於 ftp.tw.freebsd.org 抓取所有與 portupgrade 相依的 packages 並安裝。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="make-index">
+ <para>如何更新 INDEX 對照表?</para>
+ </question>
+
+ <answer>
+ <para>4.x 的 INDEX 位於 <filename>/usr/ports/INDEX</filename>,5.x 位於 <filename>/usr/ports/INDEX-5</filename>,以此類推。</para>
+ <para>INDEX 是對照 ports 所有相依等資訊的對照表,若長期未更新的話,會導致 ports 對照失敗。
+官方有定期更新 INDEX,如果想自行更新的話,則:</para>
+ <screen>&prompt.root; <userinput>cd /usr/ports</userinput></screen>
+ <screen>&prompt.root; <userinput>make index</userinput></screen>
+
+ <para>如果想直接下載官方最新的 INDEX,則:</para>
+ <screen>&prompt.root; <userinput>cd /usr/ports</userinput></screen>
+ <screen>&prompt.root; <userinput>make fetchindex</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="make-readmes">
+ <para>如何更新 INDEX HTML?</para>
+ </question>
+
+ <answer>
+ <para>FreeBSD 提供了用網頁的方式來觀看 ports collection,即可使用 lynx, w3m, links 或其它可瀏覽網頁的程式來查閱。製作全部 ports collection 的方式如下:</para>
+ <screen>&prompt.root; <userinput>cd /usr/ports</userinput></screen>
+ <screen>&prompt.root; <userinput>make readmes</userinput></screen>
+
+ <para>如果是僅須要做目前目錄下的資訊,或單一更新某一分類下的資訊,如 /usr/ports/ftp 的話,則:</para>
+ <screen>&prompt.root; <userinput>cd /usr/ports/ftp</userinput></screen>
+ <screen>&prompt.root; <userinput>make readme</userinput></screen>
+ <para>則僅會更新 /usr/ports/ftp 這個目錄的資訊,其上與其下的目錄皆不會更動到。執行成功後,會在相對應的目錄下產生 README.html 的檔案。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="sup-refuse">
+ <para>如何針對某些 ports 不做 ports update?</para>
+ </question>
+
+ <answer>
+ <para>若 ports 底下的某些分類完全用不到,則可以在 ports update 時,不做更新,以節省網路頻寬與時間。只要修改 <filename>/usr/sup/refuse</filename> 這個檔。</para>
+ <screen>&prompt.root; <userinput>ports/french</userinput></screen>
+ <screen>&prompt.root; <userinput>ports/german</userinput></screen>
+ <screen>&prompt.root; <userinput>ports/lang/perl5.8</userinput></screen>
+ <para>則上列目錄將不會更新。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="deinstall-vs-pkg-delete">
+ <para>make deinstall 與 pkg_delete 有什麼不同?</para>
+ </question>
+
+ <answer>
+ <para>簡單來說,make deinstall 會移除該 port,並且不會參照其相依的相關套件。</para>
+ <para>pkg_delete 在移除該 port 前,會參照其相依的相關套件,並且 pkg_delete 有支援 wild card ,如要移除所有 p 開頭的 ports,則:</para>
+ <screen>&prompt.root; <userinput>cd /var/db/pkg</userinput></screen>
+ <screen>&prompt.root; <userinput>pkg_delete p*</userinput></screen>
+
+ <para>要注意的是,如果使用 make deinstall,則最好確定系統目前所安裝的版本,與 ports collection 中顯示的版本符合,否則有可能會出現非預期性錯誤;而 pkg_delete 是因為直接
+刪除系統中所安裝的版本,所以沒有此問題。</para>
+ <para>因此,換句話說,當系統所安裝的版本符合 ports collections 中的版本,則可以使用 make deinstall 或 pkg_delete,否則的話最好用 pkg_delete。</para>
+ </answer>
+ </qandaentry>
+
+ </qandaset>
+ </chapter>
+
+ &bibliography;
+</book>
diff --git a/zh_TW.Big5/books/fdp-primer/Makefile b/zh_TW.UTF-8/books/fdp-primer/Makefile
index 60eaeea096..60eaeea096 100644
--- a/zh_TW.Big5/books/fdp-primer/Makefile
+++ b/zh_TW.UTF-8/books/fdp-primer/Makefile
diff --git a/zh_TW.Big5/books/fdp-primer/book.xml b/zh_TW.UTF-8/books/fdp-primer/book.xml
index f229c19216..0863eb87ba 100644
--- a/zh_TW.Big5/books/fdp-primer/book.xml
+++ b/zh_TW.UTF-8/books/fdp-primer/book.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd" [
<!ENTITY % chapters SYSTEM "chapters.ent"> %chapters;
@@ -36,10 +36,10 @@
Original revision: 1.27
-->
<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="zh_tw">
- <info><title>FreeBSD peJ</title>
+ <info><title>FreeBSD 文件計畫入門書</title>
- <author><orgname>FreeBSD p</orgname></author>
+ <author><orgname>FreeBSD 文件計劃</orgname></author>
<copyright>
<year>1998</year>
@@ -62,36 +62,36 @@
&legalnotice;
<abstract>
- <para>P±zѻP FreeBSD p(²١GFDP, FreeBSD Documentation Project)AzIw^mA۷_QC</para>
+ <para>感謝您參與 FreeBSD 文件計劃(簡稱:FDP, FreeBSD Documentation Project),您的點滴貢獻,都相當寶貴。</para>
- <para>JѤe]AGp}lۤ½ĶUӸ`AHη|Ψ쪺@ǦnΤu(]AGƤuBUu)
- AHΤpevC</para>
+ <para>本入手書內容包括:如何開始著手翻譯的各項細節,以及會用到的一些好用工具(包括:必備工具、輔助工具)
+ ,以及文件計畫的宗旨。</para>
- <para>٦bZA|ZC`Aڭ̷|b`Wٮ[y<literal>*</literal> zH@ѧOC</para>
+ <para>本文件還在草稿,尚未完稿。未完成的章節,我們會在章節名稱旁邊加註『<literal>*</literal> 』以作識別。</para>
</abstract>
</info>
<preface xml:id="preface">
- <title>Ǩ</title>
+ <title>序言</title>
<sect1 xml:id="preface-prompts">
- <title>Shell ܲŸ(Prompts)</title>
+ <title>Shell 提示符號(Prompts)</title>
- <para>UܥX@bP root ܲŸAbҦҤl|δܲŸ(prompt)
- AӴzӥέرb~C</para>
+ <para>下表顯示出一般帳號與 root 的提示符號,在所有的文件例子中會用提示符號(prompt)
+ ,來提醒您該用哪種帳號才對。</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
- <entry>b</entry>
- <entry>ܲŸ(Prompt)</entry>
+ <entry>帳號</entry>
+ <entry>提示符號(Prompt)</entry>
</row>
</thead>
<tbody>
<row>
- <entry>qb</entry>
+ <entry>普通帳號</entry>
<entry>&prompt.user;</entry>
</row>
@@ -105,73 +105,73 @@
</sect1>
<sect1 xml:id="preface-conventions">
- <title>ѤҥΪsƭ</title>
+ <title>書中所用的編排風格</title>
- <para>UѤҨϥνsƭ覡G</para>
+ <para>下表為本書中所使用編排風格方式:</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
- <entry>NNq</entry>
- <entry>|</entry>
+ <entry>代表意義</entry>
+ <entry>舉例</entry>
</row>
</thead>
<tbody>
<row>
- <entry>O</entry>
- <entry>ϥ <command>ls -a</command> ӦCXҦɮסC</entry>
+ <entry>指令</entry>
+ <entry>使用 <command>ls -a</command> 來列出所有的檔案。</entry>
</row>
<row>
- <entry>ɦW</entry>
- <entry>ק <filename>.login</filename> ɡC</entry>
+ <entry>檔名</entry>
+ <entry>修改 <filename>.login</filename> 檔。</entry>
</row>
<row>
- <entry>ùW|X{T</entry>
+ <entry>螢幕上會出現的訊息</entry>
<entry><screen>You have mail.</screen></entry>
</row>
<row>
- <entry>JOAùW|X{eC</entry>
+ <entry>輸入指令後,螢幕上會出現的對應內容。</entry>
<entry><screen>&prompt.user; <userinput>su</userinput>
Password:</screen></entry>
</row>
<row>
- <entry>nѦҪuWU(manual)</entry>
+ <entry>要參考的線上手冊(manual)</entry>
- <entry>H <citerefentry>
+ <entry>以 <citerefentry>
<refentrytitle>su</refentrytitle>
<manvolnum>1</manvolnum>
- </citerefentry> ӤbC</entry>
+ </citerefentry> 來切換帳號。</entry>
</row>
<row>
- <entry>bb(user)Bs(group)W٪ɭ...</entry>
+ <entry>在講到帳號(user)、群組(group)的名稱的時候...</entry>
- <entry>u <systemitem class="username">root</systemitem> ~iHoơC</entry>
+ <entry>只有 <systemitem class="username">root</systemitem> 才可以做這件事。</entry>
</row>
<row>
- <entry>y𪺱j</entry>
+ <entry>語氣的強調</entry>
- <entry>Ayzo򰵤~C</entry>
+ <entry>你『必須』這麼做才行。</entry>
</row>
<row>
- <entry>OɡAi</entry>
+ <entry>打指令時,可替換的部份</entry>
- <entry>nRɮתܡAХ <command>rm nRɦW</command></entry>
+ <entry>要刪除檔案的話,請打 <command>rm 要刪除的檔名</command></entry>
</row>
<row>
- <entry>ܼƳ]w</entry>
+ <entry>環境變數設定</entry>
- <entry><envar>$HOME</envar> ObaؿҦbBC</entry>
+ <entry><envar>$HOME</envar> 是指帳號的家目錄所在處。</entry>
</row>
</tbody>
</tgroup>
@@ -179,39 +179,39 @@ Password:</screen></entry>
</sect1>
<sect1 xml:id="preface-notes">
- <title>yNoteBTipBImportantBWarningBExamplezB</title>
+ <title>『Note、Tip、Important、Warning、Example』的運用</title>
- <para>HUrOy`NzByޥzBynTzByĵizBydҡzBΡC</para>
+ <para>以下文字是『注意』、『技巧』、『重要訊息』、『警告』、『範例』的運用。</para>
<note>
- <para>ܻݭn`NƶA䤤]Azݭn`NƱA]oǨƱi|vTާ@GC</para>
+ <para>表示需要注意的事項,其中包括您需要注意的事情,因為這些事情可能會影響到操作結果。</para>
</note>
<tip>
- <para>ѥizΩ²ƾާ@覡ޥC</para>
+ <para>提供可能對您有用或簡化操作方式的技巧說明。</para>
</tip>
<important>
- <para>ܭnSO`NƱC@ӻA̷|]Aާ@Oɻݭn[B~ѼơC</para>
+ <para>表示要特別注意的事情。一般來說,它們會包括操作指令時需要加的額外參數。</para>
</important>
<warning>
- <para>ĵiƶAppGz`NhiɭPlCoǷliOzεwyڶˮ`A
- ]iOLkpl`AҦp@ɲӧRnɮ...C</para>
+ <para>表示警告事項,比如如果您不注意則可能導致的損失。這些損失可能是對您或硬體造成實際傷害,
+ 也可能是無法估計的損害,例如一時疏忽而刪除重要檔案...。</para>
</warning>
<example>
- <title>oO|һ</title>
+ <title>這是舉例說明</title>
- <para>oO|һӤwAq`]t`OdҡAܬYǯSwʧ@ҥioͪGC</para>
+ <para>這是舉例說明而已,通常包含應遵循的指令範例,或顯示某些特定動作所可能發生的結果。</para>
</example>
</sect1>
<sect1 xml:id="preface-acknowledgements">
- <title>P</title>
+ <title>感謝</title>
- <para>bnP Sue Blake, Patrick Durusau, Jon Hamilton, Peter
- Flynn, Christopher Maden oǤHUP\ŪZAôѳ\h_QZNPסC</para>
+ <para>在此要感謝 Sue Blake, Patrick Durusau, Jon Hamilton, Peter
+ Flynn, Christopher Maden 這些人的協助與閱讀初期草稿,並提供許多寶貴的潤稿意見與評論。</para>
</sect1>
</preface>
diff --git a/zh_TW.Big5/books/fdp-primer/chapters.ent b/zh_TW.UTF-8/books/fdp-primer/chapters.ent
index d0f050da4c..a3d22b4c72 100644
--- a/zh_TW.Big5/books/fdp-primer/chapters.ent
+++ b/zh_TW.UTF-8/books/fdp-primer/chapters.ent
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
Creates entities for each chapter in the Documentation Project Primer.
Each entity is named chap.foo, where foo is the value of the id
diff --git a/zh_TW.Big5/books/fdp-primer/doc-build/chapter.xml b/zh_TW.UTF-8/books/fdp-primer/doc-build/chapter.xml
index ae3e471c70..9932157881 100644
--- a/zh_TW.Big5/books/fdp-primer/doc-build/chapter.xml
+++ b/zh_TW.UTF-8/books/fdp-primer/doc-build/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 1999 Neil Blakey-Milner, All rights reserved.
Redistribution and use in source (SGML DocBook) and 'compiled' forms
diff --git a/zh_TW.Big5/books/fdp-primer/examples/appendix.xml b/zh_TW.UTF-8/books/fdp-primer/examples/appendix.xml
index 8f2bdae4c4..5fc6839c92 100644
--- a/zh_TW.Big5/books/fdp-primer/examples/appendix.xml
+++ b/zh_TW.UTF-8/books/fdp-primer/examples/appendix.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2000 Nik Clayton, All rights reserved.
Redistribution and use in source (SGML DocBook) and 'compiled' forms
@@ -32,21 +32,21 @@
Original revision: 1.17
-->
<appendix xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="examples">
- <title>d</title>
+ <title>範例</title>
- <para>@ SGML ɽdҡAHΥΨഫ榡OC
- Yw\wˤpeu]ܡANiHӤUdҨӨϥΡC</para>
+ <para>本附錄收錄一些 SGML 檔範例,以及用來轉換格式的相關指令。
+ 若已成功安裝文件計畫工具包的話,那麼就可以直接照下面範例來使用。</para>
- <para>oǨҤläOܸԲ &mdash; å]AAiQΪA
- ר乳OA󪺫e(eѭA]AvBǨBؿ)
- YݰѦҧh DocBook аOy󪺸ܡAiHzL <application>CSup</application>B<application>CVSup</application>
- {ӧ <literal>doc</literal> tree AHݥΨL SGML ZC
- Ϊ̡A]iHuWs
- <uri xlink:href="http://www.FreeBSD.org/cgi/cvsweb.cgi/doc/">http://www.FreeBSD.org/cgi/cvsweb.cgi/doc/</uri>C</para>
+ <para>這些例子並不是很詳細 &mdash; 並未包括你可能想用的元件,
+ 尤其像是你文件的前頁(正文前的書頁,包括扉頁、序言、目錄等)
+ 若需參考更多 DocBook 標記語言文件的話,那麼可以透過 <application>CSup</application>、<application>CVSup</application>
+ 程式來抓 <literal>doc</literal> tree 部分,以察看本文件或其他文件的 SGML 原稿。
+ 或者,也可以線上瀏覽
+ <uri xlink:href="http://www.FreeBSD.org/cgi/cvsweb.cgi/doc/">http://www.FreeBSD.org/cgi/cvsweb.cgi/doc/</uri>。</para>
- <para>FקKnxZAoǨҤlĥμзǪ DocBook 4.1 DTD ӫD FreeBSD B~ DTDC
- Pɨñĥ Norm Walsh 󪺼˦(stylesheets)AӫD FreeBSD pۦL˦C
- b@ϥ DocBook ҤlAoˤl|²ҡAӤ|yB~xZC</para>
+ <para>為了避免不必要的困擾,這些例子採用標準的 DocBook 4.1 DTD 而非 FreeBSD 額外的 DTD。
+ 同時並採用 Norm Walsh 氏的樣式表(stylesheets),而非 FreeBSD 文件計劃有自行改過的樣式表。
+ 在一般使用 DocBook 的例子,這樣子會比較簡化環境,而不會造成額外困擾。</para>
<sect1 xml:id="examples-docbook-book">
<title>DocBook <tag>book</tag></title>
@@ -58,11 +58,11 @@
<book lang='zh_tw'>
<bookinfo>
- <title>˥ѪҤl</title>
+ <title>樣本書的例子</title>
<author>
- <firstname>W(first name)</firstname>
- <surname>m(surname)</surname>
+ <firstname>名(first name)</firstname>
+ <surname>姓(surname)</surname>
<affiliation>
<address><email>foo@example.com</email></address>
</affiliation>
@@ -70,29 +70,29 @@
<copyright>
<year>2000</year>
- <holder>vr</holder>
+ <holder>相關版權字樣</holder>
</copyright>
<abstract>
- <para>ӮѭYKnANgboC</para>
+ <para>該書若有摘要,就寫在這邊。</para>
</abstract>
</bookinfo>
<preface>
- <title>Ǩ</title>
+ <title>序言</title>
- <para>ӮѭYǨANboC</para>
+ <para>該書若有序言,就放在這邊。</para>
</preface>
<chapter>
- <title>Ĥ@</title>
+ <title>第一章</title>
- <para>oOoѪĤ@C</para>
+ <para>這是這本書的第一章。</para>
<sect1>
- <title>Ĥ@`</title>
+ <title>第一節</title>
- <para>oѪĤ@`C</para>
+ <para>這本書的第一節。</para>
</sect1>
</chapter>
</book>]]></programlisting>
@@ -109,11 +109,11 @@
<article lang='zh_tw'>
<articleinfo>
- <title>峹˥</title>
+ <title>文章樣本</title>
<author>
- <firstname>W(first name)</firstname>
- <surname>m(surname)</surname>
+ <firstname>名(first name)</firstname>
+ <surname>姓(surname)</surname>
<affiliation>
<address><email>foo@example.com</email></address>
</affiliation>
@@ -121,23 +121,23 @@
<copyright>
<year>2000</year>
- <holder>vr</holder>
+ <holder>相關版權字樣</holder>
</copyright>
<abstract>
- <para>Ӥ峹YKnANgboC</para>
+ <para>該文章若有摘要,就寫在這邊。</para>
</abstract>
</articleinfo>
<sect1>
- <title>Ĥ@`</title>
+ <title>第一節</title>
- <para>Ӥ峹Ĥ@`C</para>
+ <para>該文章的第一節。</para>
<sect2>
- <title>Ĥ@p`(sub-section)</title>
+ <title>第一小節(sub-section)</title>
- <para>Ӥ峹Ĥ@p`(sub-section)</para>
+ <para>該文章的第一小節(sub-section)</para>
</sect2>
</sect1>
</article>]]></programlisting>
@@ -147,17 +147,17 @@
<sect1 xml:id="examples-formatted">
<title>Producing formatted output</title>
- <para>`ǫeA]Gwg <package>textproc/docproj</package>
- WҦw˦UnALץ̬O port 覡w˩άOʦwˡC
- ~A]Ҹ˪n鳣b <filename>/usr/local/</filename> UlؿA
- åBҦw˪ɡA˦bA <envar>PATH</envar> ܼƤؿC
- pnܡAШ̧AtҦӽվ|C</para>
+ <para>本節有些前提,假設:已經有裝 <package>textproc/docproj</package>
+ 上面所安裝各軟體,無論它們是用 port 方式安裝或是手動安裝。
+ 此外,假設所裝的軟體都放在 <filename>/usr/local/</filename> 下的子目錄,
+ 並且所安裝的相關執行檔,都有裝在你的 <envar>PATH</envar> 環境變數內的目錄。
+ 如有必要的話,請依你的系統環境而調整相關路徑。</para>
<sect2>
- <title>ϥ Jade</title>
+ <title>使用 Jade</title>
<example>
- <title>ഫ DocBook HTML (Ҧ)</title>
+ <title>轉換 DocBook 為 HTML (完整模式)</title>
<screen>&prompt.user; <userinput>jade -V nochunks \ <co xml:id="examples-co-jade-1-nochunks"/>
-c /usr/local/share/xml/docbook/dsssl/modular/catalog \ <co xml:id="examples-co-jade-1-catalog"/>
@@ -201,7 +201,7 @@
</example>
<example>
- <title>ഫ DocBook HTML (`Ҧ)</title>
+ <title>轉換 DocBook 為 HTML (章節模式)</title>
<screen>&prompt.user; <userinput>jade \
-c /usr/local/share/xml/docbook/dsssl/modular/catalog \ <co xml:id="examples-co-jade-2-catalog"/>
@@ -245,7 +245,7 @@
</example>
<example xml:id="examples-docbook-postscript">
- <title>ഫ DocBook Postscript(PS) 榡</title>
+ <title>轉換 DocBook 為 Postscript(PS) 格式</title>
<para>The source SGML file must be converted to a &tex; file.</para>
@@ -313,7 +313,7 @@
</example>
<example>
- <title>ഫ DocBook PDF 榡</title>
+ <title>轉換 DocBook 為 PDF 格式</title>
<para>The first part of this process is identical to that when
converting DocBook to Postscript, using the same
diff --git a/zh_TW.UTF-8/books/fdp-primer/overview/chapter.xml b/zh_TW.UTF-8/books/fdp-primer/overview/chapter.xml
new file mode 100644
index 0000000000..d3f24e60ef
--- /dev/null
+++ b/zh_TW.UTF-8/books/fdp-primer/overview/chapter.xml
@@ -0,0 +1,241 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved.
+
+ Redistribution and use in source (SGML DocBook) and 'compiled' forms
+ (SGML HTML, PDF, PostScript, RTF and so forth) with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ 1. Redistributions of source code (SGML DocBook) must retain the above
+ copyright notice, this list of conditions and the following
+ disclaimer as the first lines of this file unmodified.
+
+ 2. Redistributions in compiled form (transformed to other DTDs,
+ converted to PDF, PostScript, RTF and other formats) must reproduce
+ the above copyright notice, this list of conditions and the
+ following disclaimer in the documentation and/or other materials
+ provided with the distribution.
+
+ THIS DOCUMENTATION IS PROVIDED BY NIK CLAYTON "AS IS" AND ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+
+ $FreeBSD$
+ Original revision: 1.23
+-->
+<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="overview">
+ <title>概論</title>
+
+ <para>歡迎參與 FreeBSD 文件計劃。維持優秀質量的文件對 FreeBSD 的成功來說十分重要,
+ 而 FreeBSD 文件計劃(以下皆以 FDP 來代表 FreeBSD Documentation Project
+ 的縮寫) 則與這些文件撰寫、更新息息相關,因此您的點滴貢獻都是十分寶貴的。</para>
+
+ <para>本文件最主要的目的,就是清楚告訴您:『FDP 的架構有哪些』、『如何撰寫並提交文件給 FDP』、
+ 『如何有效運用工具來協助撰稿』。</para>
+
+ <para><indexterm>
+ <primary>Membership</primary>
+ </indexterm>
+ 我們歡迎每個熱心的志士來加入 FDP 行列。FDP 並不限定每月必須交出多少稿量,才能加入。
+ 您唯一須要作的就是訂閱 &a.doc; 。</para>
+
+ <para>讀完本份文件,您將會:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>瞭解有哪些文件是由 FDP 所維護的。</para>
+ </listitem>
+
+ <listitem>
+ <para>可以看懂 FDP 所維護的 SGML 原始文件。</para>
+ </listitem>
+
+ <listitem>
+ <para>知道如何來對文件作修改。</para>
+ </listitem>
+
+ <listitem>
+ <para>知道如何投稿自己的修改部份,並最後正式進入 FreeBSD 文件內。</para>
+ </listitem>
+ </itemizedlist>
+
+ <sect1 xml:id="overview-doc">
+ <title>FreeBSD 文件的組成部分</title>
+
+ <para>FDP 總共負責 FreeBSD 的 4 種類別的文件:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>線上手冊(manual)</term>
+
+ <listitem>
+ <para>英文版的系統 manual 並不是由 FDP 所撰寫的,因為它們是屬於 base system 的部份。
+ 然而,FDP 可以(也曾這麼做過)修改這些文件,來讓這些文件寫得更清楚,甚至是勘正錯誤的地方。</para>
+
+ <para>翻譯團隊負責將系統的線上手冊翻譯為不同的語言。 這些譯本都由 FDP 維護。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>FAQ</term>
+
+ <listitem>
+ <para>FAQ 主要是收集在各論壇或 newsgroup 會常問到或有可能會問到的 FreeBSD 相關問題與答案 。
+ (簡單講,就是『問答集』格式) 通常會擺在這裡面的問答格式,不會放太長的詳細內容。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>使用手冊(Handbook)</term>
+
+ <listitem>
+ <para>使用手冊主要是給 FreeBSD 使用者提供詳盡的線上參考資料。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Web site</term>
+
+ <listitem>
+ <para>FreeBSD 主要各項介紹方面的 WWW 部份,歡迎逛逛 <link xlink:href="&url.base;/index.html">http://www.FreeBSD.org/</link>
+ 以及許多其他 mirror 站。這網站是許多人第一次接觸 FreeBSD 的地方。</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>這四個文件組成部分都可透過 FreeBSD CVS tree 來取得。也就是說,這些文件的修改記錄對於任何人都是公開的,
+ 而且無論是誰都可以用像是 <application>CSup</application>, <application>CVSup</application> 或
+ <application>CTM</application> 將文件取出來(checkout)並放在自己機器上做備份或副本參考等用途。</para>
+
+ <para>此外,許多人會寫些教學文件或維護有關 FreeBSD 內容的網站。(若作者同意的話)其中有些資料會保存在 FreeBSD 正式
+ CVS repository 內。而其他的文件,可能作者不希望被放在 FreeBSD repository 內而另存他處。
+ 總之,FDP 會盡力提供這些文件的連結。</para>
+ </sect1>
+
+ <sect1 xml:id="overview-before">
+ <title>在開工之前...</title>
+
+ <para>本文假設您已經瞭解:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>如何從 FreeBSD CVS repository 更新自己電腦上的 FreeBSD 文件部份(以 <application>CVS</application>
+ 或 <application>CSup</application> 或 <application>CVSup</application> 或是
+ <application>CTM</application>) 或是用
+ <application>CVSup</application> 來下載 <emphasis>checked-out</emphasis> 的副本</para>
+ </listitem>
+
+ <listitem>
+ <para>如何用 FreeBSD Ports 套件管理機制或 &man.pkg.add.1; 來下載、安裝軟體。</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 xml:id="overview-quick-start">
+ <title>快速上手篇</title>
+
+ <para>若想先自行試試看,並有信心可以作得到,那麼就照下面步驟吧。</para>
+
+ <procedure>
+ <step>
+ <para>安裝 <package>textproc/docproj</package> 這個組合型 port(meta-port)。</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/textproc/docproj</userinput>
+&prompt.root; <userinput>make JADETEX=no install</userinput></screen>
+ </step>
+
+ <step>
+ <para>下載 FreeBSD <filename>doc</filename> tree 到本機上:
+ 無論是用 CSup 或 CVSup 的 <literal>checkout</literal> 模式,
+ 或是複製完整的 CVS repository 到本機上都可以。</para>
+
+ <para>若想在本機上只跑最低限度的 CVS repository 就好,那麼必須要
+ checkout 出 <filename>doc/share</filename> 以及 <filename>doc/en_US.ISO8859-1/share</filename>
+ 這兩個目錄才行。</para>
+
+ <screen>&prompt.user; <userinput>cvs checkout doc/share</userinput>
+&prompt.user; <userinput>cvs checkout doc/en_US.ISO8859-1/share</userinput></screen>
+
+ <para>若硬碟空間還算可以的話,那可以把所有語系的 doc 都 check out 出來:</para>
+
+ <screen>&prompt.user; <userinput>cvs checkout doc</userinput></screen>
+ </step>
+
+ <step>
+ <para>可依需要從 repository 中 checkout 出來你想修改某份現有的書籍或文章內容。
+ 若打算撰寫新書或新文章的話,可以參考現有的部分作為實例來做。</para>
+
+ <para>舉例來說,若想寫篇新文章,內容是有關在 FreeBSD 與 Windows 2000 之間建立 VPN 連線,
+ 那麼可以照類似下面這樣的作法:</para>
+
+ <procedure>
+ <step>
+ <para>Check out <filename>articles</filename> 目錄:</para>
+
+ <screen>&prompt.user; <userinput>cvs checkout doc/en_US.ISO8859-1/articles</userinput></screen>
+ </step>
+
+ <step>
+ <para>複製現有的文章作為範本。在這個例子中,您打算決定把新文章放在
+ <filename>vpn-w2k</filename> 的目錄下。</para>
+
+ <screen>&prompt.user; <userinput>cd doc/en_US.ISO8859-1/articles</userinput>
+&prompt.user; <userinput>cp -R committers-guide vpn-w2k</userinput></screen>
+ </step>
+ </procedure>
+
+ <para>若是要修改現有文章,像是 FAQ(擺在 <filename>doc/en_US.ISO8859-1/books/faq</filename>)
+ ,那麼要從 repository 中取出來(check out):</para>
+
+ <screen>&prompt.user; <userinput>cvs checkout doc/en_US.ISO8859-1/books/faq</userinput></screen>
+ </step>
+
+ <step>
+ <para>以編輯器來編寫 <filename>.xml</filename> 檔。</para>
+ </step>
+
+ <step>
+ <para>以 <buildtarget>lint</buildtarget> 當輔助參數,來快速檢測文件結構及連結有無錯誤,
+ 以下這個指令,實際上不會進行耗時的編書過程,只是先測試文件有無錯誤。</para>
+
+ <screen>&prompt.user; <userinput>make lint</userinput></screen>
+
+ <para>當編書的一切都就緒時,這時你可以用 <varname>FORMATS</varname>
+ 變數來指定產生的格式為哪一種。 目前支援的格式共有:
+ <literal>html</literal>, <literal>html-split</literal>,
+ <literal>txt</literal>, <literal>ps</literal>,
+ <literal>pdf</literal>, <literal>rtf</literal> 。
+ 所支援的格式列表最新版,可參考
+ <filename>doc/share/mk/doc.docbook.mk</filename> 檔。 請記得:
+ 在單一指令中,若要同時產生多種格式的話,應使用引號(quotes)來將這些格式括起來。</para>
+
+ <para>舉例來說,若只要產生
+ <literal>html</literal> 格式就好,那麼就打:</para>
+
+ <screen>&prompt.user; <userinput>make FORMATS=html</userinput></screen>
+
+ <para>但若希望有 <literal>html</literal> 及 <literal>txt</literal> 格式的話,
+ 你可能要打兩次 &man.make.1; 指令才能完成:</para>
+
+ <screen>&prompt.user; <userinput>make FORMATS=html</userinput>
+&prompt.user; <userinput>make FORMATS=txt</userinput></screen>
+
+ <para>其實,也可以用單一指令來完成:</para>
+
+ <screen>&prompt.user; <userinput>make FORMATS="html txt"</userinput></screen>
+ </step>
+
+ <step>
+ <para>最後,以 &man.send-pr.1; 來提交修改的部份。</para>
+ </step>
+ </procedure>
+ </sect1>
+</chapter>
diff --git a/zh_TW.Big5/books/fdp-primer/psgml-mode/chapter.xml b/zh_TW.UTF-8/books/fdp-primer/psgml-mode/chapter.xml
index 6ef4bfc08f..6edba25352 100644
--- a/zh_TW.Big5/books/fdp-primer/psgml-mode/chapter.xml
+++ b/zh_TW.UTF-8/books/fdp-primer/psgml-mode/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved.
Redistribution and use in source (SGML DocBook) and 'compiled' forms
diff --git a/zh_TW.Big5/books/fdp-primer/see-also/chapter.xml b/zh_TW.UTF-8/books/fdp-primer/see-also/chapter.xml
index 4f6ed83e9e..89f409164e 100644
--- a/zh_TW.Big5/books/fdp-primer/see-also/chapter.xml
+++ b/zh_TW.UTF-8/books/fdp-primer/see-also/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved.
Redistribution and use in source (SGML DocBook) and 'compiled' forms
@@ -32,7 +32,7 @@
Original revision: 1.13
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="see-also">
- <title>Ls</title>
+ <title>他山之石</title>
<para>This document is deliberately not an exhaustive discussion of SGML,
the DTDs listed, and the FreeBSD Documentation Project. For more
diff --git a/zh_TW.Big5/books/fdp-primer/sgml-markup/chapter.xml b/zh_TW.UTF-8/books/fdp-primer/sgml-markup/chapter.xml
index 8d3acdffa1..6b0907ff57 100644
--- a/zh_TW.Big5/books/fdp-primer/sgml-markup/chapter.xml
+++ b/zh_TW.UTF-8/books/fdp-primer/sgml-markup/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved.
Redistribution and use in source (SGML DocBook) and 'compiled' forms
diff --git a/zh_TW.Big5/books/fdp-primer/sgml-primer/chapter.xml b/zh_TW.UTF-8/books/fdp-primer/sgml-primer/chapter.xml
index 7d67e32823..eb17a7cd91 100644
--- a/zh_TW.Big5/books/fdp-primer/sgml-primer/chapter.xml
+++ b/zh_TW.UTF-8/books/fdp-primer/sgml-primer/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved.
Redistribution and use in source (SGML DocBook) and 'compiled' forms
@@ -34,13 +34,13 @@
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="sgml-primer">
<title>SGML Primer</title>
- <para>FDP XGOH SGML {gC| SGML OB
- p\ŪBzѳo SGML ZAHΥ󤤩ҹBΪU SGML ޥC</para>
+ <para>FDP 文件幾乎都是以 SGML 相關程式寫的。本章會介紹 SGML 是什麼、
+ 如何閱讀、理解這些 SGML 原稿,以及本文件中所運用的各項 SGML 技巧。</para>
- <para>`FPҵoӦ Mark Galassi og <link xlink:href="http://nis-www.lanl.gov/~rosalia/mydocs/docbook-intro/docbook-intro.html">Get Going With DocBook</link>C</para>
+ <para>本節部分靈感啟發來自 Mark Galassi 的這篇 <link xlink:href="http://nis-www.lanl.gov/~rosalia/mydocs/docbook-intro/docbook-intro.html">Get Going With DocBook</link>。</para>
<sect1 xml:id="sgml-primer-overview">
- <title>²</title>
+ <title>簡介</title>
<para>Way back when, electronic text was simple to deal with. Admittedly,
you had to know which character set your document was written in (ASCII,
@@ -799,7 +799,7 @@ nsgmls:example.xml:6:8:E: end tag for "HEAD" which is not finished</screen>
</sect1>
<sect1 xml:id="sgml-primer-comments">
- <title></title>
+ <title>註解</title>
<para>Comments are an SGML construction, and are normally only valid
inside a DTD. However, as <xref linkend="sgml-primer-sgml-escape"/>
@@ -812,18 +812,18 @@ nsgmls:example.xml:6:8:E: end tag for "HEAD" which is not finished</screen>
<example>
<title>SGML generic comment</title>
- <programlisting>&lt;!-- յ --&gt;</programlisting>
+ <programlisting>&lt;!-- 測試註解 --&gt;</programlisting>
<programlisting>
-&lt;!&hyphen;- oO -&hyphen;&gt;
+&lt;!&hyphen;- 這是註解 -&hyphen;&gt;
-&lt;!&hyphen;- o]O -&hyphen;&gt;
+&lt;!&hyphen;- 這也是註解 -&hyphen;&gt;
-&lt;!&hyphen;- nghѪܡA
- oO䤤@覡 -&hyphen;&gt;
+&lt;!&hyphen;- 要寫多行註解的話,
+ 這是其中之一的方式 -&hyphen;&gt;
-&lt;!&hyphen;- nghѡA -&hyphen;
- &hyphen;- ]iHoˤl -&hyphen;&gt;</programlisting>
+&lt;!&hyphen;- 要寫多行註解, -&hyphen;
+ &hyphen;- 也可以這樣子用 -&hyphen;&gt;</programlisting>
</example>
<para>If you have used HTML before you may have been shown different rules
diff --git a/zh_TW.Big5/books/fdp-primer/structure/chapter.xml b/zh_TW.UTF-8/books/fdp-primer/structure/chapter.xml
index 267443420f..c4feee84cb 100644
--- a/zh_TW.Big5/books/fdp-primer/structure/chapter.xml
+++ b/zh_TW.UTF-8/books/fdp-primer/structure/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved.
Redistribution and use in source (SGML DocBook) and 'compiled' forms
@@ -90,7 +90,7 @@
<seg>One directory exists for each available translation and encoding
of the documentation, for example
<filename>en_US.ISO8859-1/</filename> and
- <filename>zh_TW.Big5/</filename>. The names are long, but by fully
+ <filename>zh_TW.UTF-8/</filename>. The names are long, but by fully
specifying the language and encoding we prevent any future headaches
should a translation team want to provide the documentation in the
same language but in more than one encoding. This also completely
diff --git a/zh_TW.Big5/books/fdp-primer/stylesheets/chapter.xml b/zh_TW.UTF-8/books/fdp-primer/stylesheets/chapter.xml
index 78f0f2843d..b1ef0c7460 100644
--- a/zh_TW.Big5/books/fdp-primer/stylesheets/chapter.xml
+++ b/zh_TW.UTF-8/books/fdp-primer/stylesheets/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved.
Redistribution and use in source (SGML DocBook) and 'compiled' forms
diff --git a/zh_TW.Big5/books/fdp-primer/the-website/chapter.xml b/zh_TW.UTF-8/books/fdp-primer/the-website/chapter.xml
index a5ec5ecdfa..8e2a94ad94 100644
--- a/zh_TW.Big5/books/fdp-primer/the-website/chapter.xml
+++ b/zh_TW.UTF-8/books/fdp-primer/the-website/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved.
Redistribution and use in source (SGML DocBook) and 'compiled' forms
@@ -32,38 +32,38 @@
Original revision: 1.22
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="the-website">
- <title>غc Website</title>
+ <title>建構 Website</title>
<sect1 xml:id="the-website-prep">
- <title>ƫedz</title>
+ <title>事前準備</title>
- <para>ХdzƬ 200MB ŶAoǬOnΨө SGML u{BCVS treeB
- {ɽsĶΪŶAHνsĶnsŶCYƥw SGML u{B
- CVS tree ܡAuݳh 100MB ŶYiC</para>
+ <para>請先準備約 200MB 空間,這些是要用來放 SGML 工具程式、CVS tree、
+ 臨時編譯用的空間,以及編譯好的網頁存放空間。若事先已有裝 SGML 工具程式、
+ CVS tree 的話,那麼只需頂多約 100MB 空間即可。</para>
<note>
- <para>нT{@UAs@ҷ|Ψ쪺 ports O̷sI
- YMҸ˪ANH &man.pkg.delete.1; OӲªA
- ۤ~h portC |ҨӻAYw˪O jade-1.1A
- Oڭ̥ثeݭnoO jade-1.2AΤUC覡ӲªG</para>
+ <para>請確認一下你的相關文件製作所會用到的 ports 都是最新版!
+ 若不清楚所裝的版本為何,那麼就先以 &man.pkg.delete.1; 指令來移除舊版,
+ 接著才去裝 port。 舉例來說,若已裝的是 jade-1.1,
+ 但是我們目前需要的卻是 jade-1.2,那麼先用下列方式來移除舊版:</para>
<screen>&prompt.root; <userinput>pkg_delete jade-1.1</userinput></screen>
</note>
- <para>ۡANO]w CVS repositoryCݭnܤ www, doc, ports oT
- CVS tree(M٭n[W CVSROOT)C аѾ\
- <link xlink:href="&url.books.handbook;/synching.html#CVSUP">CVSup ²</link>
- HAѦp mirror a CVS tree γ CVS treeC</para>
+ <para>接著,就是設定 CVS repository。需要至少 www, doc, ports 這三樣
+ CVS tree(當然還要加上 CVSROOT)。 請參閱
+ <link xlink:href="&url.books.handbook;/synching.html#CVSUP">CVSup 簡介</link>
+ 以瞭解如何來 mirror a CVS tree 或部分 CVS tree。</para>
- <para>̧CݨD cvsup collections G<literal>www</literal>,
- <literal>doc-all</literal>, <literal>cvs-base</literal> H
- <literal>ports-base</literal>C</para>
+ <para>最低需求的 cvsup collections 為:<literal>www</literal>,
+ <literal>doc-all</literal>, <literal>cvs-base</literal> 以及
+ <literal>ports-base</literal>。</para>
- <para>oǻݭn 105MB ŶC</para>
+ <para>剛講的這些需要約 105MB 空間。</para>
- <para>ӧ㪺 CVS tree - ]A <literal>src</literal>,
- <literal>doc</literal>, <literal>www</literal> H
- <literal>ports</literal> - ثe 940MBC</para>
+ <para>而完整的 CVS tree - 包括 <literal>src</literal>,
+ <literal>doc</literal>, <literal>www</literal> 以及
+ <literal>ports</literal> - 目前約為 940MB。</para>
</sect1>
<sect1 xml:id="the-website-build">
@@ -71,21 +71,21 @@
<procedure>
<step>
- <para>إ߭nsĶؿ(ܤ֭n 60MB Ŷ)AäӥؿC</para>
+ <para>先建立要編譯的目錄(至少要有 60MB 空間),並切換到該目錄。</para>
<screen>&prompt.root; <userinput>mkdir /var/tmp/webbuild</userinput>
&prompt.root; <userinput>cd /var/tmp/webbuild</userinput></screen>
</step>
<step>
- <para>q CVS tree checkout SGML ɡC</para>
+ <para>從 CVS tree 內 checkout 相關的 SGML 檔。</para>
<screen>&prompt.root; <userinput>cvs -R co www doc</userinput></screen>
</step>
<step>
- <para> <filename>www/en</filename> ؿAMᥴ
- &man.make.1; <buildtarget>all</buildtarget> ӲͺC</para>
+ <para>切到 <filename>www/en</filename> 目錄,然後打
+ &man.make.1; <buildtarget>all</buildtarget> 來產生網頁。</para>
<screen>&prompt.root; <userinput>cd en</userinput>
&prompt.root; <userinput>make all</userinput></screen>
@@ -94,28 +94,28 @@
</sect1>
<sect1 xml:id="the-website-install">
- <title>bAAWw˺</title>
+ <title>在你的網頁伺服器上安裝網頁</title>
<procedure>
<step>
- <para>pGAwg} <filename>en</filename>
- oӥؿAФ^oӥؿC</para>
+ <para>如果你已經離開 <filename>en</filename>
+ 這個目錄,請切換回這個目錄中。</para>
<screen>&prompt.root; <userinput>cd path/www/en</userinput></screen>
</step>
<step>
- <para> &man.make.1; <buildtarget>install</buildtarget> A
- ñN <varname>DESTDIR</varname> ]wAQwɮתؿW١C</para>
+ <para>執行 &man.make.1; <buildtarget>install</buildtarget> ,
+ 並將 <varname>DESTDIR</varname> 設定為你想安裝檔案的目錄名稱。</para>
<screen>&prompt.root; <userinput>make DESTDIR=/usr/local/www install</userinput></screen>
</step>
<step>
- <para>pGAewgbۦPؿwˤFoǺA
- w˹L{ä|RJιLC
- |ҨӻApGACغcMw˷sƥA
- oӫON|jMçRbTѤSsɮסC</para>
+ <para>如果你之前已經在相同的目錄中安裝了這些網頁,
+ 安裝過程並不會刪除任何既有或過期的網頁。
+ 舉例來說,如果你每日建構和安裝新的網頁副本,
+ 這個指令將會搜尋並刪除在三天內沒有更新的檔案。</para>
<screen>&prompt.root; <userinput>find /usr/local/www -ctime 3 -print0 | xargs -0 rm</userinput></screen>
</step>
@@ -123,14 +123,14 @@
</sect1>
<sect1 xml:id="the-website-env">
- <title>ܼ</title>
+ <title>環境變數</title>
<variablelist>
<varlistentry>
<term><envar>CVSROOT</envar></term>
<listitem>
- <para>]w CVS tree mAƱC</para>
+ <para>設定 CVS tree 的位置,此為必備條件。</para>
<screen><userinput>&prompt.root; CVSROOT=/home/ncvs; export CVSROOT</userinput></screen>
</listitem>
@@ -140,15 +140,15 @@
<term><varname>ENGLISH_ONLY</varname></term>
<listitem>
- <para>pG]woܼơAӥBȤťաA
- makefiles Nu|غcMw˭^C
- ҥHN|LLU½ĶCҦpG</para>
+ <para>如果設定這個環境變數,而且值不為空白,
+ makefiles 將只會建構和安裝英文文件。
+ 所以將會略過其他的各國翻譯。例如:</para>
<screen>&prompt.root; <userinput>make ENGLISH_ONLY=YES all install</userinput></screen>
- <para>pGAQnܼ <varname>ENGLISH_ONLY</varname>
- HΫغcҦå]A½ĶAunNܼ <varname>ENGLISH_ONLY</varname>
- ȳ]wťէYiC</para>
+ <para>如果你想要取消變數 <varname>ENGLISH_ONLY</varname>
+ 以及建構所有的頁面並包括翻譯,只要將變數 <varname>ENGLISH_ONLY</varname>
+ 的值設定成空白即可。</para>
<screen>&prompt.root; <userinput>make ENGLISH_ONLY="" all install clean</userinput></screen>
</listitem>
@@ -158,10 +158,10 @@
<term><varname>WEB_ONLY</varname></term>
<listitem>
- <para>pG]woܼƪܡA
- makefiles Nu|q www ؿغcΦw HTML C
- Ҧq doc ؿU|Q (Handbook, FAQ, Tutorials)C
- ҦpG</para>
+ <para>如果有設定這個變數的話,
+ makefiles 將只會從 www 目錄建構及安裝 HTML 頁面。
+ 所有從 doc 目錄下的文件全部都會被忽略 (Handbook, FAQ, Tutorials)。
+ 例如:</para>
<screen>&prompt.root; <userinput>make WEB_ONLY=YES all install</userinput></screen>
</listitem>
@@ -171,21 +171,21 @@
<term><varname>NOPORTSCVS</varname></term>
<listitem>
- <para>pG]FoܼơAmakefiles N|q ports cvs repository
- XɮסC ӥN|q
- <filename>/usr/ports</filename> (άO <envar>PORTSBASE</envar>
- ҳ]w) ƻsɮסC</para>
+ <para>如果設了這個變數,makefiles 就不會從 ports cvs repository
+ 取出檔案。 取而代之會從
+ <filename>/usr/ports</filename> (或是 <envar>PORTSBASE</envar>
+ 所設定的值) 內複製檔案。</para>
</listitem>
</varlistentry>
</variablelist>
- <para><envar>CVSROOT</envar> OܼơC
- AϥΫOάOb dot files (pG ~/.profile)
- ]woܼơC</para>
+ <para><envar>CVSROOT</envar> 是環境變數。
+ 你必須直接使用指令或是在 dot files (如: ~/.profile) 中
+ 設定這個環境變數。</para>
- <para><varname>WEB_ONLY</varname>B<varname>ENGLISH_ONLY</varname>
- <varname>NOPORTSCVS</varname> O makefile ܼơC
- AiHb <filename>/etc/make.conf</filename>B<filename>Makefile.inc</filename>
- ]woܼơA@kNOΩROCΨϥ dot files ӳ]wܼƤ@C</para>
+ <para><varname>WEB_ONLY</varname>、<varname>ENGLISH_ONLY</varname> 及
+ <varname>NOPORTSCVS</varname> 都是 makefile 變數。
+ 你可以在 <filename>/etc/make.conf</filename>、<filename>Makefile.inc</filename>
+ 中設定這些變數,作法就像是用命令列或使用 dot files 來設定環境變數一般。</para>
</sect1>
</chapter>
diff --git a/zh_TW.UTF-8/books/fdp-primer/tools/chapter.xml b/zh_TW.UTF-8/books/fdp-primer/tools/chapter.xml
new file mode 100644
index 0000000000..622e98e164
--- /dev/null
+++ b/zh_TW.UTF-8/books/fdp-primer/tools/chapter.xml
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved.
+
+ Redistribution and use in source (SGML DocBook) and 'compiled' forms
+ (SGML, HTML, PDF, PostScript, RTF and so forth) with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ 1. Redistributions of source code (SGML DocBook) must retain the above
+ copyright notice, this list of conditions and the following
+ disclaimer as the first lines of this file unmodified.
+
+ 2. Redistributions in compiled form (transformed to other DTDs,
+ converted to PDF, PostScript, RTF and other formats) must reproduce
+ the above copyright notice, this list of conditions and the
+ following disclaimer in the documentation and/or other materials
+ provided with the distribution.
+
+ THIS DOCUMENTATION IS PROVIDED BY NIK CLAYTON "AS IS" AND ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+
+ $FreeBSD$
+ Original revision: 1.32
+-->
+<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="tools">
+ <title>工具</title>
+
+ <para>FDP 使用一堆工具來協助管理 FreeBSD 文件、轉換文件格式等等。
+ 因此,若要進行 FDP 工作的話,必須要學會這些工具才行。</para>
+
+ <para>這些工具都可以用 Ports 或 Packages 來安裝,以節省許多安裝的工夫。</para>
+
+ <para>您必須安裝這些工具,才能使用接下來各章節會介紹到的例子。 這些工具的用法,會在後續相關章節談到。 </para>
+
+ <tip>
+ <title>建議安裝 <package>textproc/docproj</package></title>
+
+ <para>裝了
+ <package>textproc/docproj</package> 可以更省時省力,它是個
+ 組合型的 port(meta-port),本身並非軟體,只是將一些常用工具組合起來而已。
+ 裝了這個 port 之後,『應該』就會自動下載、安裝本章所會介紹到的工具了。
+ 若要處理中文的話,建議再裝 <package>chinese/docproj</package> 會比較好。</para>
+
+ <para>在這些 packages 當中,你可能會需要使用 JadeTeX 這個 macro 設定,
+ 一旦選擇使用該 macro 的話,它會接著去裝 &tex;。由於 &tex; 算是個蠻大的套件,
+ 除非你需要輸出 Postscript 或 PDF 格式,否則就不必裝了。</para>
+
+ <para>所以請考慮是否要節省編譯時間、硬碟空間,以判定要不要裝 JadeTeX (以及 &tex;)
+ 了。若要一併裝起來的話:</para>
+
+ <screen>&prompt.root; <userinput>make JADETEX=yes install</userinput></screen>
+
+ <para>或是,不裝的話:</para>
+
+ <screen>&prompt.root; <userinput>make JADETEX=no install</userinput></screen>
+
+ <para>或者,也可以選擇 <package>textproc/docproj-jadetex</package> 或是 <package>textproc/docproj-nojadetex</package> 這兩個之一來裝,
+ 它們都是已事先設定 <varname>JADETEX</varname> 變數的 slave ports,
+ 都一樣會裝 docproj 差別僅在於有沒有 JadeTeX 而已。
+ 請注意:若只要輸出 HTML 或 ASCII 格式文件,那就不用裝 <application>JadeTeX</application>,
+ 而若要輸出 PostScript、PDF 格式,就需要裝 &tex; 才行。</para>
+ </tip>
+
+ <sect1 xml:id="tools-mandatory">
+ <title>必備工具</title>
+
+ <sect2>
+ <title>軟體</title>
+
+ <para>這些都是在進行 FreeeBSD 文件計劃時所會需要用上的工具程式,
+ 而且可以用來轉換文件為 HTML、plain text以及 RTF 格式。這些相關套件在
+ <package>textproc/docproj</package> 都已經全部收錄了。</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><application>Jade</application>
+ (<package>textproc/jade</package>)</term>
+
+ <listitem>
+ <para>DSSSL 規格的實作程式,可用來把標記語言的文件(marked up)轉換為其他格式,像是:HTML 及 &tex;。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><application>Tidy</application>
+ (<package>www/tidy</package>)</term>
+
+ <listitem>
+ <para>HTML <quote>pretty printer</quote>,可用來把自動產生的 HTML 內容整理得更易閱讀、以便日後維護。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><application>Links</application>
+ (<package>www/links</package>)</term>
+
+ <listitem>
+ <para>文字操作模式的 WWW 瀏覽器(browser)可以把 HTML 檔轉為 plain text 格式。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><application>peps</application>
+ (<package>graphics/peps</package>)</term>
+
+ <listitem>
+ <para>文件中有些圖是存成 EPS 格式的,這些必須要轉為 PNG 格式,
+ 才能讓一般瀏覽器可以正常觀看。</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect2>
+
+ <sect2>
+ <title>DTD 及 Entity</title>
+
+ <para>由於 FDP 有用到許多 DTD 跟 Entity,因此在開工前,要裝上這些才行。</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>HTML DTD (<package>textproc/html</package>)</term>
+
+ <listitem>
+ <para>HTML 是用於 WWW 的標記語言,且也是 FreeBSD 網頁所使用的格式。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>DocBook DTD (<package>textproc/docbook</package>)</term>
+
+ <listitem>
+ <para>DocBook 是專門用來製作技術文件的標示語言版本,
+ FreeBSD 全部文件都是以 DocBook 所寫成的。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>ISO 8879 entities
+ (<package>textproc/iso8879</package>)</term>
+
+ <listitem>
+ <para>在 ISO 8879:1986 之中有 19 個 entity 被許多 DTD 所大量使用,
+ 包括了數學符號、拉丁字母符號(尖重音等音節符號也是)以及希臘符號。</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect2>
+
+ <sect2>
+ <title>樣式表(Stylesheets)</title>
+
+ <para>這些樣式表都是用來轉換、重排文件的螢幕顯示、列印等效果處理</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>Modular DocBook 樣式表
+ (<package>textproc/dsssl-docbook-modular</package>)</term>
+
+ <listitem>
+ <para>Modular DocBook 樣式表,是用來把 DocBook 的標記語言文件轉換為其他格式,像是:
+ HTML 或 RTF。</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect2>
+ </sect1>
+
+ <sect1 xml:id="tools-optional">
+ <title>輔助工具</title>
+
+ <para>不一定得裝下列的工具才行,但是,裝了之後會更容易進行各項工作,
+ 而且可輸出的格式也更具彈性。</para>
+
+ <sect2>
+ <title>軟體</title>
+
+ <variablelist>
+ <varlistentry>
+ <term><application>JadeTeX</application> 及
+ <application>teTeX</application>
+ (<package>print/jadetex</package> 及
+ <package>print/teTeX</package>)</term>
+
+ <listitem>
+ <para><application>Jade</application> 與
+ <application>teTeX</application> 可用來把 DocBook 格式文件轉為
+ DVI, Postscript 及 PDF 格式。安裝時請記得加上
+ <application>JadeTeX</application> 這個 macro,這樣才會順便裝上這兩個套件。</para>
+
+ <para>若無意把文件轉換更多格式的話(舉例:只要 HTML, plain text, RTF 這些格式就夠的話)
+ ,那麼就不用裝
+ <application>JadeTeX</application> 與
+ <application>teTeX</application>。 如此一來可省下一些的編譯時間、安裝空間,
+ 因為 <application>teTeX</application> 大約要至少 30MB 空間。</para>
+
+ <important>
+ <para>若決定要裝
+ <application>JadeTeX</application> 以及
+ <application>teTeX</application> 的話,那麼在裝完 <application>JadeTeX</application> 之後,
+ 要記得設定 <application>teTeX</application> 才行。
+ <filename>print/jadetex/pkg-message</filename> 內有詳細介紹相關步驟。</para>
+ </important>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><application>Emacs</application> 或
+ <application>XEmacs</application>
+ (<package>editors/emacs</package> 或
+ <package>editors/xemacs</package>)</term>
+
+ <listitem>
+ <para>這兩者編輯器都具有處理 SGML DTD 標記文件的特殊模式。
+ 該模式提供一些指令,來簡化所需的打字次數,而且可以減少可能發生的錯誤。</para>
+
+ <para>不過,這些編輯器並不是必備的;任何文字編輯器都可以用來編輯標記語言文件。
+ 不過,你可以透過類似上述這樣的編輯器,來讓這些繁瑣作業更輕鬆有效率些。</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>若有推薦其他好用的處理 SGML 文件程式,請來信讓 &a.doceng; 知道,
+ 如此一來,該軟體就會列入這裡介紹了。</para>
+ </sect2>
+ </sect1>
+</chapter>
diff --git a/zh_TW.UTF-8/books/fdp-primer/translations/chapter.xml b/zh_TW.UTF-8/books/fdp-primer/translations/chapter.xml
new file mode 100644
index 0000000000..93e331fbe8
--- /dev/null
+++ b/zh_TW.UTF-8/books/fdp-primer/translations/chapter.xml
@@ -0,0 +1,383 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (c) 1999 Nik Clayton, All rights reserved.
+
+ Redistribution and use in source (SGML DocBook) and 'compiled' forms
+ (SGML HTML, PDF, PostScript, RTF and so forth) with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ 1. Redistributions of source code (SGML DocBook) must retain the above
+ copyright notice, this list of conditions and the following
+ disclaimer as the first lines of this file unmodified.
+
+ 2. Redistributions in compiled form (transformed to other DTDs,
+ converted to PDF, PostScript, RTF and other formats) must reproduce
+ the above copyright notice, this list of conditions and the
+ following disclaimer in the documentation and/or other materials
+ provided with the distribution.
+
+ THIS DOCUMENTATION IS PROVIDED BY NIK CLAYTON "AS IS" AND ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+
+ $FreeBSD$
+ Original revision: 1.29
+-->
+<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="translations">
+ <title>翻譯時的常見問題</title>
+
+ <para>本章是翻譯 FreeBSD 文件(包含:FAQ, Handbook, tutorials, manual pages等)的常見問題(FAQ)。</para>
+
+ <para>本文件 <emphasis>主要</emphasis> 是以 FreeBSD 德文翻譯計劃的翻譯 FAQ 為母本而來的,
+ 原始撰稿者為 Frank Gr&uuml;nder <email>elwood@mc5sys.in-berlin.de</email> ,並由
+ Bernd Warken <email>bwarken@mayn.de</email> 再翻譯回英文版。</para>
+
+ <para>The FAQ is maintained by the &a.doceng;.</para>
+
+ <qandaset>
+ <qandaentry>
+ <question>
+ <para>FAQ 的目的是?</para>
+ </question>
+
+ <answer>
+ <para>隨著越來越多人參與 freebsd-doc 郵遞論壇,而且希望將 FreeBSD 文件翻譯為各種語言版本。
+ 我們希望這份 FAQ 能儘可能為這些參與翻譯者提供快速的解惑。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para><phrase>i18n</phrase> 跟 <phrase>l10n</phrase> 是什麼呢?</para>
+ </question>
+
+ <answer>
+ <para><phrase>i18n</phrase> 是
+ <phrase>internationalization</phrase> 的簡寫,而 <phrase>l10n</phrase>
+ 則是 <phrase>localization</phrase> 的簡寫。這些都是為了書寫方便而用的簡寫。</para>
+
+ <para><phrase>i18n</phrase> 就是開頭為 <quote>i</quote> 後面有 18 個字母,最後接 <quote>n</quote>。
+ 同理,
+ <phrase>l10n</phrase> 則是開頭為 <quote>l</quote> 後面有 10 個字母,最後接 <quote>n</quote>。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>有專門給譯者參與討論的 mailing list 嗎?</para>
+ </question>
+
+ <answer>
+ <para>有啊,不同的語系翻譯者都各自有自屬的 mailing lists。這份 <link xlink:href="http://www.freebsd.org/docproj/translations.html">翻譯計劃清單</link>
+ 有列出各翻譯計劃的詳細 mailing lists 及相關網站。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>需要更多人一起參與翻譯嗎?</para>
+ </question>
+
+ <answer>
+ <para>當然囉,越多人參與翻譯,那麼就能夠越快翻完,而且英文版文件若有增減、更新的話,
+ 各翻譯版也可以儘快同步囉。</para>
+
+ <para>不一定得是專業譯者,才能參與翻譯的。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>有要求哪些語言能力呢?</para>
+ </question>
+
+ <answer>
+ <para>理論上,必須要對英文非常熟稔,而且很明顯地,對想翻譯的語言必須要能運用自如。</para>
+
+ <para>英文並非一定要會的。比如說,可以把西班牙文(Spanish)的 FAQ 翻譯為匈牙利文(Hungarian)。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>該學會哪些程式的使用呢?</para>
+ </question>
+
+ <answer>
+ <para>強烈建議在自己機器上也建立 FreeBSD CVS repository 的備份(至少文件部分),可以用
+ <application>CTM</application> 或
+ <application>CVSup</application> 都可以。Handbook 中的 "更新、升級 FreeBSD"
+ 一章內有提到如何使用這些程式。</para>
+
+ <para>此外,需要熟悉 <application>CVS</application> 用法。
+ 如此一來,你可以查閱不同版本之間的差異處。</para>
+
+ <para>[XXX To Do(尚未撰稿,仍待補充) -- 寫份上手說明(tutorial)來介紹如何以 CVSup
+ 取得文件部分,以及察看不同版本之間的差異。]</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>要怎麼找出來還有誰要跟我一起翻譯的呢?</para>
+ </question>
+
+ <answer>
+ <para><link xlink:href="http://www.FreeBSD.org/docproj/translations.html">文件計劃的翻譯</link> 這列了目前已知的各翻譯者成果
+ ,如果已經有其他人也在做跟你一樣的翻譯工作,那麼請不要重複浪費人力,
+ 請與他們聯繫看看還有哪些地方可以幫上忙的。</para>
+
+ <para>若上面並未列出你母語的翻譯,或是也有人要翻譯但還未公開宣布的話,那麼就寄信到 &a.doc; 吧。
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>都沒人翻譯為我所使用的語言,該怎麼辦?</para>
+ </question>
+
+ <answer>
+ <para>恭喜啊,你剛好踏上 <quote>FreeBSD
+ <replaceable>你的母語</replaceable> 文件翻譯計劃</quote> 的啟程之路,歡迎上船。</para>
+
+ <para>首先呢,先判斷是否有妥善規劃時間,因為你只有一個人在翻而已,
+ 因此,相關翻譯成果的公布、與其他可能會幫忙的志工們聯繫這些工作都是你的職責所在。</para>
+
+ <para>寫信到 &a.doc; 向大家宣布你正準備要翻譯,然後文件計劃的翻譯部分就會更新相關資料</para>
+
+ <para>若你的國家已經有人提供 FreeBSD 的 mirror(映設) 服務的話,那麼就先跟他們聯繫,
+ 並詢問你是否在上面可以有網頁空間來放相關計劃資料,
+ 以及是否可以有提供 email 帳號或 mailing list 服務。</para>
+
+ <para>然後,就開始翻文件囉,一開始翻譯的時候,先找些篇幅較短的文件會比較容易些
+ &mdash; 像是 FAQ 啦,或是如何上手之類的說明文章。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>已經翻好一些文件了,該寄到哪呢?</para>
+ </question>
+
+ <answer>
+ <para>這要看情況而定。 若你是在翻譯團隊內做的話(像是日本、德國),
+ 他們會有自己內部流程來決定翻譯文件怎麼送,這些大致流程會在他們網頁上面有寫。</para>
+
+ <para>若你是某語系的唯一翻譯者(或你是負責某翻譯計劃,並想把成果回饋給 FreeBSD 計劃)
+ ,那麼你就應該把自己的翻譯成果寄給 FreeBSD 計劃。(細節請看下個問題)</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>我是該語系的唯一翻譯者,該怎麼把翻譯成果寄出去呢?</para>
+
+ <para>或者</para>
+
+ <para>我們是翻譯團隊,該怎麼把我們成員翻譯成果寄出去呢?</para>
+ </question>
+
+ <answer>
+ <para>首先,請先確定你的翻譯成果組織條理分明,並可正確編譯,也就是說:
+ 把它擺到現有文件架構內是可以正確編譯成功的。</para>
+
+ <para>目前,FreeBSD 文件都是放在最上層的 <filename>doc/</filename> 目錄內。
+ 而該目錄下的則依其語系來做分類命名的,依照 ISO639 定義(<filename>/usr/share/misc/iso639</filename>
+ 的這個 FreeBSD 版本比 1999/01/20 還新)。</para>
+
+ <para>若你這個語系可能會有不同編碼方式(像是:中文)
+ 那麼就應該會像下面這樣,來依你所使用的編碼方式細分。</para>
+
+ <para>最後,你應該建立好各文件的目錄了。</para>
+
+ <para>舉例來說,假設有瑞典文(Swedish)版的翻譯,那麼應該會長像:</para>
+
+ <programlisting>doc/
+ sv_SE.ISO8859-1/
+ Makefile
+ books/
+ faq/
+ Makefile
+ book.xml</programlisting>
+
+ <para><literal>sv_SE.ISO8859-1</literal> 是依照
+ <filename>語系(lang).編碼(encoding)</filename>
+ 的規則來建立的譯名。
+ 請注意:其中有兩個 <filename>Makefiles</filename> 檔,它們是用來編書的。</para>
+
+ <para>然後請用 &man.tar.1; 與 &man.gzip.1; 來把你的翻譯文件壓縮起來,並寄到本計劃來。</para>
+
+ <screen>&prompt.user; <userinput>cd doc</userinput>
+&prompt.user; <userinput>tar cf swedish-docs.tar sv_SE.ISO8859-1</userinput>
+&prompt.user; <userinput>gzip -9 swedish-docs.tar</userinput></screen>
+
+ <para>接著,把 <filename>swedish-docs.tar.gz</filename> 放到網頁空間上,若你沒有自己網頁空間的話(ISP不提供)
+ ,那麼可以該檔寄到 &a.doceng; 來。</para>
+
+ <para>還有,記得用 &man.send-pr.1; 以正式通知大家;你已經寄出翻譯文件了,
+ 還有,若有人可以幫忙檢閱、複審文件的話,對翻譯品質較好,
+ 因為這也有助於提升翻譯品質的流暢度。</para>
+
+ <para>最後,會有人(可能是文件計劃總管,或是 &a.doceng; 成員)
+ 會檢閱你的翻譯文件,並確認是否可正常編譯。此外,他們會特別注意下列幾點:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>你的檔案是否都有用 RCS tag (像是 "ID" 之類的)?</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>sv_SE.ISO8859-1</filename> 是否可以順利 <command>make all</command> 編譯呢?</para>
+ </listitem>
+
+ <listitem>
+ <para><command>make install</command> 是否結果有正確?</para>
+ </listitem>
+ </orderedlist>
+
+ <para>若有問題的話,那麼檢閱者會叮嚀你,來讓這些翻譯成果可以正確使用。</para>
+
+ <para>若沒問題的話,那麼就會很快把你的翻譯成果 commit 進去了。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>可以加入某語系或某國家才有的東西到翻譯內容內嗎?</para>
+ </question>
+
+ <answer>
+ <para>我們希望不要這麼做。</para>
+
+ <para>舉例來說,假設你正準備把 Handbook 翻譯為韓文版,
+ 並希望把韓國零售處也加到你翻譯的 Handbook 韓文版內。</para>
+
+ <para>我們想不出來有啥原因,為什麼不把這些資訊提供給英文版呢?(或是德文、西班牙文、日文等 &hellip;)
+ 因為,有可能英語讀者跑去韓國時,會想買 FreeBSD 相關產品。
+ 此外,這也可以提升 FreeBSD 的可見度,很顯然的,這並不是件壞事啊。</para>
+
+ <para>若你有某國才有的資料,請(用 &man.send-pr.1; )提供給英文版 Handbook 以作為修訂
+ ,然後再把英文版的修訂部分,翻為你要翻譯的 Handbook 吧。</para>
+
+ <para>感恩,謝謝。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>要怎麼把該語系特有的字元寫進去翻譯內容呢?</para>
+ </question>
+
+ <answer>
+ <para>文件內所有的非 ASCII(Non-ASCII) 字元,都要使用 SGML entities 才能寫進去。</para>
+
+ <para>簡單來說,長相一開頭會是 &amp; 符號(&amp;),然後是該 entity 名稱,最後接上分號(;)。</para>
+
+ <para>這些 entity 名稱都是 ISO8879 所制訂的,而 port tree 內則在
+ <package>textproc/iso8879</package>。</para>
+
+ <para>以下舉一些例子:</para>
+
+ <segmentedlist>
+ <segtitle>Entity名稱</segtitle>
+
+ <segtitle>實際樣子</segtitle>
+
+ <segtitle>介紹</segtitle>
+
+ <seglistitem>
+ <seg>&amp;eacute;</seg>
+ <seg>&eacute;</seg>
+ <seg>小 <quote>e</quote>,並帶尖、重音(acute accent)</seg>
+ </seglistitem>
+
+ <seglistitem>
+ <seg>&amp;Eacute;</seg>
+ <seg>&Eacute;</seg>
+ <seg>大 <quote>E</quote>,並帶尖、重音(acute accent)</seg>
+ </seglistitem>
+
+ <seglistitem>
+ <seg>&amp;uuml;</seg>
+ <seg>&uuml;</seg>
+ <seg>小 <quote>u</quote>,並帶日耳曼語系中的母音變化(umlaut)</seg>
+ </seglistitem>
+ </segmentedlist>
+
+ <para>在裝了 iso8879 這個 port 之後,就可以在
+ <filename>/usr/local/share/xml/iso8879</filename> 找到這些的詳細列表。</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>如何稱呼讀者呢?</para>
+ </question>
+
+ <answer>
+ <para>在英文文件內,讀者都是以 <quote>you</quote> 來稱呼,而有些語言並沒有正式/非正式的區隔。</para>
+
+ <para>若你所要翻的語言可以區別這些差異,那麼請用該語系在一般技術文件上所使用的稱呼吧。
+ 如果容易造成困惑的話,那麼請改用較中性的稱呼來取代。</para>
+
+ <!--
+ 摘自 http://fatpipi.cirx.org/~vanilla/rules.txt
+ 如非必要,翻譯文章內盡量少用直接稱呼你我他的用字。
+ 如果真的得用,就採用第三人稱(用【他】而非【你】),還有就是用複數(用【你們】而非【你】),
+ 當然這還是得配合原文的上下語意。如果他是寫 "I" 而翻譯成 "我",則無可厚非。
+
+ 但是對於文內絕大多數的"You..... you ...etc"
+ 其實都可以把【你】簡化或是避免掉,這對閱讀時候的順暢感應該有幫助。
+ -->
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>翻譯成果內要不要附上一些其他訊息呢?</para>
+ </question>
+
+ <answer>
+ <para>當然要。</para>
+
+ <para>每份英文版原稿的開頭,通常會有像下面的內容:</para>
+
+ <programlisting>&lt;!--
+ The FreeBSD Documentation Project
+
+ &dollar;FreeBSD: doc/en_US.ISO8859-1/books/fdp-primer/translations/chapter.xml,v 1.5 2000/07/07 18:38:38 dannyboy Exp &dollar;
+--&gt;</programlisting>
+
+ <para>實際上的內容可能稍有不同,但每份原稿都會附上 &dollar;FreeBSD&dollar; 這一行以及
+ <literal>The FreeBSD Documentation Project</literal> 宣告。
+ 請注意:&dollar;FreeBSD 開頭的這行是會由 CVS 隨著每次異動而自動更改的,
+ 所以,新檔案的話請保持原狀(也就是只要寫 <literal>&dollar;FreeBSD&dollar;</literal> 就好了)。</para>
+
+ <para>翻譯文件中,必須都要有 &dollar;FreeBSD&dollar; 這行,並且把
+ <literal>FreeBSD Documentation Project</literal> 這行改為
+ <literal>The FreeBSD 你的語系
+ Documentation Project</literal>。</para>
+
+ <para>此外,還必須加上第三行來指出你所翻譯的,到底是以英文版原稿的哪一版本為母本所做的翻譯。</para>
+
+ <para>因此呢,西班牙文版(Spanish)的檔案開頭應該是長像這樣:</para>
+
+ <programlisting>&lt;!--
+ The FreeBSD Spanish Documentation Project
+
+ &dollar;FreeBSD: doc/es_ES.ISO8859-1/books/fdp-primer/translations/chapter.xml,v 1.3 1999/06/24 19:12:32 jesusr Exp &dollar;
+ Original revision: 1.11
+--&gt;</programlisting>
+ </answer>
+ </qandaentry>
+ </qandaset>
+</chapter>
diff --git a/zh_TW.UTF-8/books/fdp-primer/writing-style/chapter.xml b/zh_TW.UTF-8/books/fdp-primer/writing-style/chapter.xml
new file mode 100644
index 0000000000..158d232029
--- /dev/null
+++ b/zh_TW.UTF-8/books/fdp-primer/writing-style/chapter.xml
@@ -0,0 +1,440 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (c) 1998 Nik Clayton, All rights reserved.
+
+ Redistribution and use in source (SGML DocBook) and 'compiled' forms
+ (SGML HTML, PDF, PostScript, RTF and so forth) with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ 1. Redistributions of source code (SGML DocBook) must retain the above
+ copyright notice, this list of conditions and the following
+ disclaimer as the first lines of this file unmodified.
+
+ 2. Redistributions in compiled form (transformed to other DTDs,
+ converted to PDF, PostScript, RTF and other formats) must reproduce
+ the above copyright notice, this list of conditions and the
+ following disclaimer in the documentation and/or other materials
+ provided with the distribution.
+
+ THIS DOCUMENTATION IS PROVIDED BY NIK CLAYTON "AS IS" AND ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+
+ $FreeBSD$
+ Original revision: 1.48
+-->
+<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="writing-style">
+ <title>文件的撰寫風格</title>
+
+ <para>由於 FreeBSD 文件是由眾多作者所維護的,為了保持寫作風格的一貫性,
+ 於是就產生較有共識的寫作規則,請各位記得要遵守。</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>使用美式英語</term>
+
+ <listitem>
+ <para>同一個字在不同種類的英語會有著不同的拼法。
+ 遇到拼字不同的情況,請採用美式英語拼法。 像是:
+ 請改用 <quote>color</quote>,而非 <quote>colour</quote>。
+ 請改用 <quote>rationalize</quote>,而非 <quote>rationalise</quote>
+ 等等類似字彙。</para>
+
+ <note>
+ <para>若文章採用英式英語也可以接受,但必須全篇文章都採用同一拼法才行
+ 。 而文件的其他部份,像是書、網頁、 manual
+ 說明等則必須採用美式英語。</para>
+ </note>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>不要用簡寫</term>
+
+ <listitem>
+ <para>請不要簡寫(contraction)。 請務必將完整的字寫出來。 比如:
+ <quote>Don't use contractions</quote> 這句有用到簡寫,就要避免。</para>
+
+ <para>正式書面寫法避免簡寫的原因,乃是因為如此一來字句意思較精準,
+ 且對譯者會比較輕鬆些。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>正確使用 serial comma 以及頓號</term>
+
+ <listitem>
+ <para>英文段落通常會逗號(,)作為該句所提到的各項目的語氣區隔。
+ 並且會在最後一個提到的項目時,先加上逗號再接上 <quote>and</quote>,
+ 最後才是最後的項目。</para>
+
+ <para>舉個例子,看看下面這句:</para>
+
+ <blockquote>
+ <para>This is a list of one, two and three items.</para>
+ </blockquote>
+
+ <para>那麼這一句到底是有三個項目(<quote>one</quote>、<quote>two</quote>
+ 、<quote>three</quote>)呢?或者是只有兩個項目(<quote>one</quote>、
+ <quote>two and three</quote>)呢?</para>
+
+ <para>因此較妥的方式是以 serial comma 的方式,才能正確表達語意:</para>
+
+ <blockquote>
+ <para>This is a list of one, two, and three items.</para>
+ </blockquote>
+
+ <para>然而,在翻譯過程中,建議把逗號(,)部份改為頓號(、),並且
+ <quote>and</quote> 的部份可略而不翻,以免語意頓塞。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>避免使用贅詞</term>
+
+ <listitem>
+ <para>請試著避免使用贅詞(redundant phrase)。 尤其是
+ <quote>這個指令</quote>、<quote>這個檔案</quote>、<quote>man
+ 指令</quote> 這幾個通常都是不必要的贅詞。</para>
+
+ <para>以指令(command)方面舉例,比較妥當的用法是第二句的例子:</para>
+
+ <informalexample>
+ <para>使用 <command>cvsup</command> 指令來更新原始碼。</para>
+ </informalexample>
+
+ <informalexample>
+ <para>使用 <command>cvsup</command> 來更新原始碼。</para>
+ </informalexample>
+
+ <para>以檔案(filename)方面舉例,比較妥當的用法是第二句的例子:</para>
+
+ <informalexample>
+ <para>&hellip; 在這個
+ <filename>/etc/rc.local</filename> 檔案 &hellip;</para>
+ </informalexample>
+
+ <informalexample>
+ <para>&hellip; 在
+ <filename>/etc/rc.local</filename> 檔 &hellip;</para>
+ </informalexample>
+
+ <para>以 man(manual)方面舉例,比較妥當的用法是第二句(有用到 SGML
+ <tag>citerefentry</tag> 標籤):</para>
+
+ <informalexample>
+ <para>請打 <command>man csh</command> 指令以參閱詳情說明。</para>
+ </informalexample>
+
+ <informalexample>
+ <para>詳情請參閱 &man.csh.1;。</para>
+ </informalexample>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>每句後面加上兩個空白</term>
+
+ <listitem>
+ <para>為了使文章更易閱讀,以及讓 <application>Emacs</application>
+ 之類的工具容易運用,請在每一完整句子後面加上兩個空白。</para>
+
+ <para>不過,句號(.)後面有接大寫字母,
+ 並不一定表示前一個句點所在處就是完整句子,
+ 尤其是名字部份常常會有這現象。 像是 <quote>Jordan K. Hubbard</quote>
+ 這人名就是很好的例證:句號後面接空白,然後是大寫的
+ <literal>H</literal>,然而這肯定並不是兩段句子。</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>撰寫風格的相關細節,可參閱 William Strunk 所寫的 <link xlink:href="http://www.bartleby.com/141/">Elements of Style</link>。</para>
+
+ <sect1 xml:id="writing-style-guide">
+ <title>Style guide</title>
+
+ <para>由於 Handbook 是由眾多作者所維護,為了保持寫作風格的一貫性,
+ 請遵守下列撰寫風格。</para>
+
+ <sect2>
+ <title>大小寫</title>
+
+ <para>Tag 的部份都是用小寫字母,譬如是用 <literal>&lt;para&gt;</literal>
+ ,<emphasis>而非</emphasis> <literal>&lt;PARA&gt;</literal>。</para>
+
+ <para>而 SGML 內文則是用大寫字母表示,像是:
+ <literal>&lt;!ENTITY&hellip;&gt;</literal> 及
+ <literal>&lt;!DOCTYPE&hellip;&gt;</literal>,
+ <emphasis>而不是</emphasis>
+ <literal>&lt;!entity&hellip;&gt;</literal> 及
+ <literal>&lt;!doctype&hellip;&gt;</literal>。</para>
+ </sect2>
+
+ <sect2>
+ <title>縮寫字</title>
+
+ <para>縮寫字(acronym)通常在書中第一次提到時,必須同時列出完整拼法,
+ 比如:"Network Time Protocol (<acronym role="Network Time Protocol">NTP</acronym>)"。
+ 定義縮寫字之後,應該儘量只使用該縮寫字(而非完整詞彙,
+ 除非使用完整詞彙可以更能表達語意)來表達即可。
+ 通常每本書只會第一次提到時,才會列出完整詞彙,
+ 但若您高興也可以在每章第一次提到時又列出完整詞彙。</para>
+
+ <para>此外,同一縮寫字在前三次使用時,須使用 &lt;acronym&gt; 標籤,
+ 並把完整詞彙附在 <literal>role</literal> 屬性內做說明。
+ 如此一來就會建立詞彙表,並且當滑鼠移至該縮寫字上方時,
+ 就會顯示完整詞彙。</para>
+ </sect2>
+
+ <sect2>
+ <title>縮排</title>
+
+ <para><emphasis>無論</emphasis> 檔案縮排設定為何,
+ 每個檔案一開始的縮排(indentation)都是從 0 縱列開始</para>
+
+ <para>未完的標籤會以多兩個空白來增加縮排,
+ 結尾的標籤則少兩個空白來縮減縮排。 若已達 8 個空白,則以 tab 取代之。
+ 此外,在 tab 前面不要再用空白,也不要在每行後面加上空白。
+ 每個 tag 的內文若超過一行的話,則接下來的就多兩個空白以做縮排。</para>
+
+ <para>舉個例子,這節所用的寫法大致是下面這樣:</para>
+
+ <programlisting><![CDATA[+--- 這是 0 縱列
+V
+<chapter>
+ <title>...</title>
+
+ <sect1>
+ <title>...</title>
+
+ <sect2>
+ <title>縮排</title>
+
+ <para><emphasis>無論</emphasis> 檔案縮排設定為何,
+ 每個檔案一開始的縮排(indentation)都是從 0 縱列開始。</para>
+
+ ...
+ </sect2>
+ </sect1>
+</chapter>]]></programlisting>
+
+ <para>若用 <application>Emacs</application> 或
+ <application>XEmacs</application> 來編輯這檔,那麼會自動進入
+ <literal>sgml-mode</literal> 模式,
+ 然後就會強制使用每個檔案最下方的環境設定。</para>
+
+ <para><application>Vim</application> 愛用者也可以用下列設定來調整:</para>
+
+ <programlisting>augroup sgmledit
+ autocmd FileType sgml set formatoptions=cq2l " 特殊格式選項
+ autocmd FileType sgml set textwidth=70 " 在 70 縱列處即自動換行
+ autocmd FileType sgml set shiftwidth=2 " 自動縮排 2 個空白
+ autocmd FileType sgml set softtabstop=2 " 按 Tab 會自動轉為兩個空白縮排
+ autocmd FileType sgml set tabstop=8 " 把 8 個空白轉為 tab
+ autocmd FileType sgml set autoindent " 自動縮排
+augroup END</programlisting>
+
+ </sect2>
+
+ <sect2>
+ <title>Tag 風格</title>
+
+ <sect3>
+ <title>Tag 空行</title>
+
+ <para>同一縮排等級的標籤要以空一行來做區隔,而不同縮排等級的則不必。
+ 比如:</para>
+
+ <informalexample>
+ <programlisting><![CDATA[<article lang='zh_tw'>
+ <articleinfo>
+ <title>NIS</title>
+
+ <pubdate>October 1999</pubdate>
+
+ <abstract>
+ <para>...
+ ...
+ ...</para>
+ </abstract>
+ </articleinfo>
+
+ <sect1>
+ <title>...</title>
+
+ <para>...</para>
+ </sect1>
+
+ <sect1>
+ <title>...</title>
+
+ <para>...</para>
+ </sect1>
+</article>]]></programlisting>
+ </informalexample>
+ </sect3>
+
+ <sect3>
+ <title>標籤的分行</title>
+
+ <para>像是 <tag>itemizedlist</tag>
+ 這類的標籤事實上本身不含任何文字資料,必須得由其他標籤來補充內文。
+ 這類的標籤會獨用一整行。</para>
+
+ <para>另外,像是 <tag>para</tag> 及
+ <tag>term</tag> 這類的標籤並不需搭配其他標籤,
+ 就可附上文字資料,並且在標籤後面的<emphasis>同一行</emphasis>
+ 內即可立即寫上這些內文。</para>
+
+ <para>當然,這兩類的標籤結尾時也是跟上面道理相同。</para>
+
+ <para>不過,當上述這兩種標籤混用時,會有很明顯的困擾。</para>
+
+ <para>當第一類標籤的後面接上第二類標籤的話,
+ 那麼要把這兩類標籤各自分行來寫。 後者標籤的段落,
+ 也是需要做適當縮排調整。</para>
+
+ <para>而第二類標籤結尾時,可以與第一類標籤的結尾放在同一行。</para>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>空白的更改</title>
+
+ <para>在 commit 修改時,<emphasis>請別在修改內容的同時,
+ 也一起更改編排格式</emphasis>。</para>
+
+ <para>如此一來,像是 Handbook 翻譯團隊才能迅速找出你改了哪些內容,
+ 而不用費心思去判斷該行的改變,是由於格式重排或者內容異動。</para>
+
+ <para>舉例說明,若要在某段加上兩個句子,如此一來該段落的某行勢必會超出 80
+ 縱列,這時請先 commmit 修改。 接著,再修飾過長行落的換行,然後再次
+ commit 之。 而第二次的 commit 紀錄,請明確說明這只是 whitespace-only
+ (修改空白而已) 的更改,如此一來,翻譯團隊就可以忽略第二次 commit 了
+ 。</para>
+ </sect2>
+
+ <sect2>
+ <title>Nonbreaking space</title>
+
+ <para>請避免一些情況下的斷行:造成版面醜醜的、或是須連貫表達的同一句子。
+ 斷行的情況會隨所閱讀的工具不同而有所不同。 尤其是透過純文字瀏覽器來看
+ HTML 時會更明顯看到類似下面這樣不好的編排段落:</para>
+
+ <literallayout class="monospaced">Data capacity ranges from 40 MB to 15
+GB. Hardware compression &hellip;</literallayout>
+
+ <para>請使用 <literal>&amp;nbsp;</literal> 以避免同句子之間的斷行,
+ 以下示範如何使用 nonbreaking spaces:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>在數字與單位之間:</para>
+ <programlisting><![CDATA[57600&nbsp;bps]]></programlisting>
+ </listitem>
+
+ <listitem>
+ <para>在程式名稱與版號之間:</para>
+ <programlisting><![CDATA[FreeBSD&nbsp;4.7]]></programlisting>
+ </listitem>
+
+ <listitem>
+ <para>multiword 之間 (使用時請小心,像是 <quote>The FreeBSD Brazilian
+ Portuguese Documentation Project</quote> 這類由三到四個字所組成的,
+ 則不用加。):</para>
+ <programlisting><![CDATA[Sun&nbsp;Microsystems]]></programlisting>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+ </sect1>
+
+ <sect1 xml:id="writing-style-word-list">
+ <title>詞彙表</title>
+
+ <para>以下為 FreeBSD 文件計劃編排時所採用的小型詞彙表。
+ 若找不到要找的詞彙,請參閱 <link xlink:href="http://www.oreilly.com/oreilly/author/stylesheet.html">O'Reilly
+ word list</link>。</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>2.2.X</para>
+ </listitem>
+
+ <listitem>
+ <para>4.X-STABLE</para>
+ </listitem>
+
+ <listitem>
+ <para>CD-ROM</para>
+ </listitem>
+
+ <listitem>
+ <para>DoS <emphasis>(Denial of Service)</emphasis> </para>
+ </listitem>
+
+ <listitem>
+ <para>Ports Collection</para>
+ </listitem>
+
+ <listitem>
+ <para>IPsec</para>
+ </listitem>
+
+ <listitem>
+ <para>Internet</para>
+ </listitem>
+
+ <listitem>
+ <para>MHz</para>
+ </listitem>
+
+ <listitem>
+ <para>Soft Updates</para>
+ </listitem>
+
+ <listitem>
+ <para>Unix</para>
+ </listitem>
+
+ <listitem>
+ <para>disk label</para>
+ </listitem>
+
+ <listitem>
+ <para>email</para>
+ </listitem>
+
+ <listitem>
+ <para>file system</para>
+ </listitem>
+
+ <listitem>
+ <para>manual page</para>
+ </listitem>
+
+ <listitem>
+ <para>mail server</para>
+ </listitem>
+
+ <listitem>
+ <para>name server</para>
+ </listitem>
+
+ <listitem>
+ <para>null-modem</para>
+ </listitem>
+
+ <listitem>
+ <para>web server</para>
+ </listitem>
+ </itemizedlist>
+
+ </sect1>
+</chapter>
diff --git a/zh_TW.Big5/books/handbook/Makefile b/zh_TW.UTF-8/books/handbook/Makefile
index 6dee2d0433..6dee2d0433 100644
--- a/zh_TW.Big5/books/handbook/Makefile
+++ b/zh_TW.UTF-8/books/handbook/Makefile
diff --git a/zh_TW.Big5/books/handbook/advanced-networking/Makefile b/zh_TW.UTF-8/books/handbook/advanced-networking/Makefile
index 6bce63bf94..6bce63bf94 100644
--- a/zh_TW.Big5/books/handbook/advanced-networking/Makefile
+++ b/zh_TW.UTF-8/books/handbook/advanced-networking/Makefile
diff --git a/zh_TW.Big5/books/handbook/advanced-networking/chapter.xml b/zh_TW.UTF-8/books/handbook/advanced-networking/chapter.xml
index 682b809094..4773be660f 100644
--- a/zh_TW.Big5/books/handbook/advanced-networking/chapter.xml
+++ b/zh_TW.UTF-8/books/handbook/advanced-networking/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
@@ -6,72 +6,72 @@
Original revision: 1.402
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="advanced-networking">
- <title>im\</title>
+ <title>網路進階練功房</title>
<sect1 xml:id="advanced-networking-synopsis">
- <title>z</title>
+ <title>概述</title>
- <para>NФ@Ƕi]wDDC</para>
+ <para>本章將介紹一些進階的網路設定主題。</para>
- <para>ŪoAzNFѡG</para>
+ <para>讀完這章,您將了解:</para>
<itemizedlist>
<listitem>
- <para>gateway(hD) route()C</para>
+ <para>gateway(閘道)及 route(路由)的概念。</para>
</listitem>
<listitem>
- <para>p]w IEEE 802.11 HŪ(&bluetooth;)]ơC</para>
+ <para>如何設定 IEEE 802.11 以及藍芽(&bluetooth;)設備。</para>
</listitem>
<listitem>
- <para>pH FreeBSD @ bridge()C</para>
+ <para>如何以 FreeBSD 作為 bridge(橋接)。</para>
</listitem>
<listitem>
- <para>p󬰵LШtγ]w}C</para>
+ <para>如何為無碟系統設定網路開機。</para>
</listitem>
<listitem>
- <para>p]w NAT(Network Address Translation)C</para>
+ <para>如何設定 NAT(Network Address Translation)。</para>
</listitem>
<listitem>
- <para>pzL PLIP 覡ӳsxqC</para>
+ <para>如何透過 PLIP 方式來連接兩台電腦。</para>
</listitem>
<listitem>
- <para>pb FreeBSD ]w IPv6C</para>
+ <para>如何在 FreeBSD 內設定 IPv6。</para>
</listitem>
<listitem>
- <para>p]w ATMC</para>
+ <para>如何設定 ATM。</para>
</listitem>
<listitem>
- <para>ph &os; CARP(Common Access Redundancy Protocol)\
- C</para>
+ <para>如何去善用 &os; 的 CARP(Common Access Redundancy Protocol)功能
+ 。</para>
</listitem>
</itemizedlist>
- <para>b}l\ŪoeAzݭnJ</para>
+ <para>在開始閱讀這章之前,您需要︰</para>
<itemizedlist>
<listitem>
- <para>A <filename>/etc/rc</filename> script C</para>
+ <para>瞭解 <filename>/etc/rc</filename> 相關 script 的概念。</para>
</listitem>
<listitem>
- <para>x򥻱`ΪNyC</para>
+ <para>熟悉基本常用的網路術語。</para>
</listitem>
<listitem>
- <para>Dp]wBw˷s FreeBSD kernel (<xref linkend="kernelconfig"/>)C</para>
+ <para>知道如何設定、安裝新的 FreeBSD kernel (<xref linkend="kernelconfig"/>)。</para>
</listitem>
<listitem>
- <para>DpzL port/package w˳n (<xref linkend="ports"/>)
- C</para>
+ <para>知道如何透過 port/package 安裝軟體 (<xref linkend="ports"/>)
+ 。</para>
</listitem>
</itemizedlist>
@@ -88,25 +88,25 @@
<indexterm><primary>routing</primary></indexterm>
<indexterm><primary>gateway</primary></indexterm>
<indexterm><primary>subnet</primary></indexterm>
- <para>F@qt@qA]ݭn@ؾA
- oqDӫ򰵡AoӾNOѿ
- (<firstterm>routing</firstterm>)C
- @(<quote>route</quote>)OѤ@}ҩwqG@ӬO
- <quote>تa(destination)</quote>HΥt@ӫhOhD
- (<quote>gateway</quote>)C
- o}ܭne<emphasis>تa</emphasis>ʥ]A
- gL<emphasis>hD</emphasis>C
- تaTGDBl(subnet)Bw](
- <quote>default route</quote>C YS䥦ѥiHϥΡA
- oɴN|ϥιw]ѡAyڭ̷|w]ѧ@i@BC ~A
- hD]iTGDBǿ餶(interfaceA]٬
- <quote>links</quote>)BAӺw}(MAC addresses)C</para>
+ <para>為了讓一部電腦能找到另一部電腦,因此必需要有一種機制,
+ 讓這部電腦知道該怎麼做,這個機制就是路由選擇
+ (<firstterm>routing</firstterm>)。
+ 一條路由(<quote>route</quote>)是由一對位址所定義的:一個是
+ <quote>目的地(destination)</quote>以及另一個則是閘道
+ (<quote>gateway</quote>)。
+ 這對位址表示要送到<emphasis>目的地</emphasis>的封包,
+ 必須經過<emphasis>閘道</emphasis>。
+ 目的地分為三種類型:主機、子網路(subnet)、預設路由(
+ <quote>default route</quote>。 若都沒有其它的路由可以使用,
+ 這時就會使用預設路由,稍後我們會對預設路由作進一步的說明。 此外,
+ 閘道也可分為三種類型:主機、傳輸介面(interface,也稱為
+ <quote>links</quote>)、乙太網路硬體位址(MAC addresses)。</para>
<sect2>
- <title>d</title>
+ <title>範例</title>
- <para>FKPѿ(routing)AHUϥ
- <command>netstat</command> OG@нdҡG</para>
+ <para>為了方便說明不同類型的路由選擇(routing),以下使用
+ <command>netstat</command> 指令的結果作為介紹範例:</para>
<screen>&prompt.user; <userinput>netstat -r</userinput>
Routing tables
diff --git a/zh_TW.Big5/books/handbook/audit/Makefile b/zh_TW.UTF-8/books/handbook/audit/Makefile
index 2d71ed91f5..2d71ed91f5 100644
--- a/zh_TW.Big5/books/handbook/audit/Makefile
+++ b/zh_TW.UTF-8/books/handbook/audit/Makefile
diff --git a/zh_TW.Big5/books/handbook/audit/chapter.xml b/zh_TW.UTF-8/books/handbook/audit/chapter.xml
index 3b00d459cc..5e899c5b88 100644
--- a/zh_TW.Big5/books/handbook/audit/chapter.xml
+++ b/zh_TW.UTF-8/books/handbook/audit/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
$FreeBSD$
diff --git a/zh_TW.Big5/books/handbook/basics/Makefile b/zh_TW.UTF-8/books/handbook/basics/Makefile
index 69b6b899ac..69b6b899ac 100644
--- a/zh_TW.Big5/books/handbook/basics/Makefile
+++ b/zh_TW.UTF-8/books/handbook/basics/Makefile
diff --git a/zh_TW.UTF-8/books/handbook/basics/chapter.xml b/zh_TW.UTF-8/books/handbook/basics/chapter.xml
new file mode 100644
index 0000000000..3ddf7df0aa
--- /dev/null
+++ b/zh_TW.UTF-8/books/handbook/basics/chapter.xml
@@ -0,0 +1,2366 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ The FreeBSD Documentation Project
+
+ $FreeBSD$
+ Original revision: 1.152
+-->
+<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="basics">
+ <info><title>UNIX 基礎概念</title>
+ <authorgroup>
+ <author><personname><firstname>Chris</firstname><surname>Shumway</surname></personname><contrib>Rewritten by </contrib></author>
+ </authorgroup>
+
+ </info>
+
+
+
+ <sect1 xml:id="basics-synopsis">
+ <title>概述</title>
+
+ <para>接下來的這一章將涵蓋 FreeBSD 作業系統的基本指令及功能。
+ 大部份的內容在 &unix;-like 作業系統中都是相通的。
+ 如果您對這些內容熟悉的話,可以放心的跳過。
+ 如果您剛接觸 FreeBSD,那您一定要仔細的讀完這章。</para>
+
+ <para>讀完這章,您將了解:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>如何使用 FreeBSD 的<quote>virtual consoles</quote>。</para>
+ </listitem>
+ <listitem>
+ <para>&unix; 檔案權限運作的方式以及 &os; 中檔案的 flags。</para>
+ </listitem>
+ <listitem>
+ <para>預設的 &os; 檔案系統配置。</para>
+ </listitem>
+ <listitem>
+ <para>&os; 的磁碟結構。</para>
+ </listitem>
+ <listitem>
+ <para>如何掛載(mount)、卸載(umount)檔案系統</para>
+ </listitem>
+ <listitem>
+ <para>什麼是processes、daemons 以及 signals 。</para>
+ </listitem>
+ <listitem>
+ <para>什麼是 shell ,以及如何變更您預設的登入環境。</para>
+ </listitem>
+ <listitem>
+ <para>如何使用基本的文字編輯器。</para>
+ </listitem>
+ <listitem>
+ <para>什麼是 devices 和 device nodes 。</para>
+ </listitem>
+ <listitem>
+ <para>&os; 下使用的 binary 格式。</para>
+ </listitem>
+ <listitem>
+ <para>如何閱讀 manual pages 以獲得更多的資訊。</para>
+ </listitem>
+ </itemizedlist>
+
+ </sect1>
+
+ <sect1 xml:id="consoles">
+ <title>Virtual Consoles 和終端機</title>
+ <indexterm><primary>virtual consoles</primary></indexterm>
+ <indexterm><primary>terminals</primary></indexterm>
+
+ <para>有很多方法可以操作 FreeBSD ,其中一種就是在文字終端機上打字。
+ 如此使用 FreeBSD 即可輕易的體會到 &unix; 作業系統的威力和彈性。
+ 這一節描述什麼是<quote>終端機</quote>和 <quote>console</quote>
+ ,以及可以如何在 FreeBSD 中運用它們。</para>
+
+ <sect2 xml:id="consoles-intro">
+ <title>The Console</title>
+ <indexterm><primary>console</primary></indexterm>
+
+ <para>如果您沒有將 FreeBSD 設定成開機時自動進入圖形化模式,系統會在啟動的
+ script 跑完之後顯示登入的提示符號。 您將會看到像是這樣的東西:</para>
+
+ <screen>Additional ABI support:.
+Local package initialization:.
+Additional TCP options:.
+
+Fri Sep 20 13:01:06 EEST 2002
+
+FreeBSD/i386 (pc3.example.org) (ttyv0)
+
+login:</screen>
+
+ <para>這個訊息在您的系統上會有些許的不同,但是應該會看到類似的東西。
+ 我們感興趣的是最後兩行,最後兩行是:</para>
+
+ <programlisting>FreeBSD/i386 (pc3.example.org) (ttyv0)</programlisting>
+
+ <para>這行包含了剛開機完系統的資訊。 您看到的是在 Intel 或相容處理器的
+ x86 架構上執行的 <quote>FreeBSD</quote>的 console<footnote>
+ <para>這就是 <literal>i386</literal> 的意義。 注意即使您不是在
+ Intel 的 386 處理器上執行 FreeBSD ,一樣是<literal>i386</literal>。
+ 這不是指你的處理器的型號,這裡顯示的是你處理器的<quote>架構</quote>
+ </para>
+ </footnote>。 這台機器的名字(每台 &unix; 機器都有一個名字)是
+ <systemitem>pc3.example.org</systemitem>,而您現在看到的是它的系統
+ console&mdash; <filename>ttyv0</filename>終端機。</para>
+
+ <para>最後的一行應該都會是:</para>
+
+ <programlisting>login:</programlisting>
+
+ <para>這是您應該要輸入您的<quote>帳號名稱</quote>的地方。
+ 下一小節將告訴您如何登入 FreeBSD。</para>
+ </sect2>
+
+ <sect2 xml:id="consoles-login">
+ <title>登入 FreeBSD</title>
+
+ <para>FreeBSD 是一個 multiuser、multiprocessing 的系統。
+ 這是一個正式的名稱,指的是在單一機器上可以同時被不同人使用,
+ 但同時可以執行很多程式的系統。</para>
+
+ <para>每一種多使用者系統都需要可以分辨不同<quote>使用者</quote>的方法。
+ 在 FreeBSD (以及所有的 &unix;-like 作業系統)
+ 中,所有的使用者在執行程式之前必須先<quote>登入</quote>系統。
+ 每個使用者都有一組獨特的帳號名稱
+ (<quote>username</quote>)及密碼(<quote>password</quote>)。
+ FreeBSD 在允許使用者執行程式前將會先問這兩個問題。</para>
+
+ <indexterm><primary>startup scripts</primary></indexterm>
+ <para>在 FreeBSD 開機並跑完啟動的 script 之後<footnote>
+ <para>這些啟動的 script 是在開機的時候 FreeBSD 會自動執行的程式。
+ 他們主要的功能是將所有該執行的東西設定好,
+ 並將您設定成背景執行的服務啟動。</para>
+ </footnote>,它將會印出提示字元要求您輸入正確的帳號名稱:</para>
+
+ <screen>login:</screen>
+
+ <para>在這個範例裡,我們假設您的帳號是<systemitem class="username">john</systemitem>。
+ 在提示字元處輸入 <literal>john</literal> 並按下 <keycap>Enter</keycap>
+ 。 接著您應該會看到另一個提示字元要您輸入<quote>密碼</quote>:</para>
+
+ <screen>login: <userinput>john</userinput>
+Password:</screen>
+
+ <para>輸入 <systemitem class="username">john</systemitem> 的密碼,再按下
+ <keycap>Enter</keycap>。 輸入的密碼
+ <emphasis>不會顯示在螢幕上</emphasis>。
+ 您不需要為此擔心,這樣做是為了安全上的問題。</para>
+
+ <para>如果您輸入了正確的密碼,您應該已經登入 FreeBSD。
+ 現在就可以嘗試所有可用的指令了。</para>
+
+ <para>您應該會看到<acronym>MOTD</acronym>
+ (即今日訊息、Messages Of The Day),後面接著命令提示字元
+ (一個 <literal>#</literal>,<literal>$</literal>, 或是
+ <literal>%</literal> 字元)。 這就表示您已經成功登入
+ FreeBSD 了。</para>
+ </sect2>
+
+ <sect2 xml:id="consoles-virtual">
+ <title>多重 Console</title>
+
+ <para>在一個 Console 下執行 &unix; 當然是沒有問題,然而 FreeBSD
+ 是可以同時執行很多程式的。 像 FreeBSD
+ 這樣可以同時執行一大堆程式的作業系統,只有一個
+ console 可以輸入指令實在是有點浪費。 因此
+ <quote>virtual consoles</quote> 就顯得相當好用。</para>
+
+ <para>可以設定讓 FreeBSD 同時有很多 virtual console,
+ 用幾個按鍵的組合就可以從一個 virtual console 跳到別的 virtual console
+ 。 每一個 console 都有自已不同的輸出頻道,當從某一個 virtual console
+ 切換到下一個的時候,FreeBSD 會自動處理鍵盤輸入及螢幕輸出。</para>
+
+ <para>FreeBSD 保留了特別的按鍵組合來切換 console <footnote>
+ <para>在 &man.syscons.4;、&man.atkbd.4;、&man.vidcontrol.1;、以及
+ &man.kbdcontrol.1;等 manual page 中,對於 FreeBSD 的 console
+ 及鍵盤驅動程式有詳細的技術說明。 我們在這裡不討論細節,
+ 有興趣的讀者隨時可以在 manual pages
+ 中查到關於運作方式的更詳細且完整的解釋。</para></footnote>。
+ 您可以用 <keycombo><keycap>Alt</keycap><keycap>F1</keycap></keycombo>、
+ <keycombo><keycap>Alt</keycap><keycap>F2</keycap></keycombo>、到
+ <keycombo><keycap>Alt</keycap><keycap>F8</keycap></keycombo>
+ 來切換 FreeBSD 的不同 console。</para>
+
+ <para>當您從一個 console 切換到下一個的時候,FreeBSD
+ 會處理螢幕輸出的儲存及回復。
+ 這就<quote>好像</quote>有很多<quote>虛擬</quote>的螢幕和鍵盤,
+ 可以讓您輸入指令到 FreeBSD 執行。 在某一個 console
+ 上執行的程式並不會因為切到別的 console 而停止執行,切換到另一個
+ console 時,它們仍會繼續執行。</para>
+ </sect2>
+
+ <sect2 xml:id="consoles-ttys">
+ <title><filename>/etc/ttys</filename> 檔</title>
+
+ <para>FreeBSD 預設的虛擬 console 總共有 8 個,
+ 但這並非硬性規定,您可輕鬆設定這些虛擬 console 的數量增減。
+ 有關虛擬 console 的編號跟設定都在
+ <filename>/etc/ttys</filename> 這檔案內設定。</para>
+
+ <para>可以用 <filename>/etc/ttys</filename> 檔案來設定
+ FreeBSD 的虛擬 console。 檔案內每行非註解文字(該行開頭沒有
+ <literal>#</literal> 這字)都是設定終端機或虛擬 console。
+ FreeBSD 預設有 9 個虛擬 console 但只啟動 8 個,也就是以下以
+ <literal>ttyv</literal> 開頭的那幾行設定。</para>
+
+ <programlisting># name getty type status comments
+#
+ttyv0 "/usr/libexec/getty Pc" cons25 on secure
+# Virtual terminals
+ttyv1 "/usr/libexec/getty Pc" cons25 on secure
+ttyv2 "/usr/libexec/getty Pc" cons25 on secure
+ttyv3 "/usr/libexec/getty Pc" cons25 on secure
+ttyv4 "/usr/libexec/getty Pc" cons25 on secure
+ttyv5 "/usr/libexec/getty Pc" cons25 on secure
+ttyv6 "/usr/libexec/getty Pc" cons25 on secure
+ttyv7 "/usr/libexec/getty Pc" cons25 on secure
+ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure</programlisting>
+
+ <para>有關各欄位的設定以及其他選項,請參閱 &man.ttys.5; 說明。</para>
+ </sect2>
+
+ <sect2 xml:id="consoles-singleuser">
+ <title>Single User 模式的 Console</title>
+
+ <para>有關 <quote>single user 模式</quote> 的介紹在
+ <xref linkend="boot-singleuser"/>
+ 這邊有詳盡介紹。 在 single user 模式時,能夠使用的 console
+ 只有一個,並無虛擬 console 可用。 而 single user 模式相關設定值可以在
+ <filename>/etc/ttys</filename> 檔做調整。 下面以
+ <literal>console</literal> 開頭的那行,就是了:</para>
+
+ <programlisting># name getty type status comments
+#
+# If console is marked "insecure", then init will ask for the root password
+# when going to single-user mode.
+console none unknown off secure</programlisting>
+
+ <note>
+ <para>在 <literal>console</literal> 那行前面的註解有提到,可以把那行的
+ <literal>secure</literal> 改為 <literal>insecure</literal>,
+ 如此一來,即使 FreeBSD 進入 single user 模式,
+ 仍會要求您輸入 <systemitem class="username">root</systemitem> 的密碼。</para>
+
+ <para><emphasis>請審慎考慮是否要改為
+ <literal>insecure</literal></emphasis>。 因為萬一忘記
+ <systemitem class="username">root</systemitem> 密碼的話,若要登入 single user
+ 模式就有些麻煩了。儘管還有其他方式可以登入,但對不熟 FreeBSD
+ 開機程序的人而言,就會相當棘手。</para>
+ </note>
+ </sect2>
+
+ <sect2 xml:id="consoles-vidcontrol">
+ <title>更改 console 的顯示畫面</title>
+
+ <para>FreeBSD console 預設顯示大小可以調整為 1024x768、1280x1024
+ 或其他顯示卡與螢幕有支援的解析度大小。 要切換顯示大小,必須要重新編譯
+ kernel 並加入下面這兩項設定:</para>
+
+ <programlisting>options VESA
+options SC_PIXEL_MODE</programlisting>
+
+ <para>一旦 kernel 有加入這兩項並重新編譯完畢,就可以用 &man.vidcontrol.1;
+ 來偵測目前所支援的模式有哪些。 若要查看支援的模式,可以打:</para>
+
+ <screen>&prompt.root; <userinput>vidcontrol -i mode</userinput></screen>
+
+ <para>該指令會顯示該機器所支援的顯示模式清單。 然後可以在
+ <systemitem class="username">root</systemitem> console 內透過 &man.vidcontrol.1; 指令,
+ 來更改顯示模式:</para>
+
+ <screen>&prompt.root; <userinput>vidcontrol MODE_279</userinput></screen>
+
+ <para>若對新的顯示模式覺得還不錯,可以在 <filename>/etc/rc.conf</filename>
+ 設定之,以讓每次重開機後會自動生效。 以上面這情況為例,就是:</para>
+
+ <programlisting>allscreens_flags="MODE_279"</programlisting>
+ </sect2>
+ </sect1>
+
+ <sect1 xml:id="permissions">
+ <title>權限</title>
+ <indexterm><primary>UNIX</primary></indexterm>
+
+ <para>FreeBSD 源自於 BSD &unix;,繼承了幾個重要的 &unix; 概念。
+ 首先也最明顯,它是一款 multi-user 作業系統。 它可以同時處理多人多工,
+ 負責徹底的分享與管理來自每位使用者對硬碟裝置、週邊設備、記憶體及
+ CPU 時間的要求。</para>
+
+ <para>也因為系統能夠支援多使用者,
+ 所以系統管理的一切都有權限來決定誰可以讀取、寫入或執行資源。
+ 這些權限分別使用三組八進位的數字儲存,一組代表檔案的所有者,
+ 一組代表檔案所屬的群組,而最後一組則代表其他所有人。
+ 表示這些數字的方式如下:</para>
+
+ <indexterm><primary>permissions</primary></indexterm>
+ <indexterm>
+ <primary>file permissions</primary>
+ </indexterm>
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>值</entry>
+ <entry>權限</entry>
+ <entry>目錄顯示</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>0</entry>
+ <entry>不可讀取, 不可寫入, 不可執行</entry>
+ <entry><literal>---</literal></entry>
+ </row>
+
+ <row>
+ <entry>1</entry>
+ <entry>不可讀取, 不可寫入, 可執行</entry>
+ <entry><literal>--x</literal></entry>
+ </row>
+
+ <row>
+ <entry>2</entry>
+ <entry>不可讀取, 可寫入, 不可執行</entry>
+ <entry><literal>-w-</literal></entry>
+ </row>
+
+ <row>
+ <entry>3</entry>
+ <entry>不可讀取, 可寫入, 可執行</entry>
+ <entry><literal>-wx</literal></entry>
+ </row>
+
+ <row>
+ <entry>4</entry>
+ <entry>可讀取, 不可寫入, 不可執行</entry>
+ <entry><literal>r--</literal></entry>
+ </row>
+
+ <row>
+ <entry>5</entry>
+ <entry>可讀取, 不可寫入, 可執行</entry>
+ <entry><literal>r-x</literal></entry>
+ </row>
+
+ <row>
+ <entry>6</entry>
+ <entry>可讀取, 可寫入, 不可執行</entry>
+ <entry><literal>rw-</literal></entry>
+ </row>
+
+ <row>
+ <entry>7</entry>
+ <entry>可讀取, 可寫入, 可執行</entry>
+ <entry><literal>rwx</literal></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ <indexterm>
+ <primary><command>ls</command></primary>
+ </indexterm>
+ <indexterm><primary>directories</primary></indexterm>
+
+ <para>使用 &man.ls.1; 指令時,可以加上 <option>-l</option> 參數,
+ 來檢視詳細的目錄清單。
+ 清單中欄位的資訊包含檔案對所有者、群組及其他人的權限。
+ 在任一個目錄底下執行 <command>ls -l</command>,會顯示如下的結果:
+ </para>
+
+ <screen>&prompt.user; <userinput>ls -l</userinput>
+total 530
+-rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile
+-rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile
+-rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt
+...</screen>
+
+ <para>在這裡告所您該如何區分 <command>ls -l</command>
+ 第一欄當中的資訊:</para>
+
+ <screen>-rw-r--r--</screen>
+
+ <para>第一個 (最左邊) 的字元用來表示這個檔案的類型為何,
+ 除標準檔案以外,尚有目錄、特殊字元裝置 (Special character device)、
+ Socket 及其他特殊虛擬檔案裝置 (Special pseudo-file device),
+ 在此例當中,<literal>-</literal> 表示該檔案為一個標準的檔案。
+ 範例中接下來的三個字元中,<literal>rw-</literal>
+ 代表所有者對檔案擁有的權限。 再接下來的三個字元,
+ <literal>r--</literal> 則代表群組對檔案擁有的權限,
+ 最後三個字元,<literal>r--</literal> 則代表其他人對檔案擁有的權限。
+ 破折號 (-) 表示沒有權限,範例中的這個檔案的權限,
+ 只允許所有者讀取、寫入檔案,群組以及其他人僅能讀取檔案。
+ 根據以上的表格,此種權限的檔案可以使用 <literal>644</literal> 來表示,
+ 每組數字分別代表檔案的三種權限。</para>
+
+ <para>以上是不錯的方式,但系統該如何控制裝置的權限? 實際上 FreeBSD
+ 對大多的硬碟裝置就如同檔案,程式可以開啟、讀取以及寫入資料如一般檔案。
+ 這些特殊裝置檔案 (Special device file) 都儲存於 <filename>/dev</filename>
+ 目錄中。</para>
+
+ <para>
+ 目錄也同如檔案,擁有讀取、寫入及執行的權限,
+ 但在執行權限上與檔案有明顯的差異。 當目錄被標示為可執行時,代表可以使用
+ <quote>cd</quote> (更改目錄) 進入該目錄。
+ 也代表能夠存取在此目錄之中的已知檔名的檔案
+ (當然,檔案仍擁有自己的權限)</para>
+
+ <para>尤其,要能夠列出目錄內容,必須擁有目錄的讀取權限。
+ 而當要刪除已知檔名的檔案時,也必須擁有檔案所在目錄的寫入
+ <emphasis>以及</emphasis> 執行的權限。</para>
+
+ <para>還有一些權限,但這些權限主要在特殊情況使用,如
+ setuid binaries 及 sticky directories。
+ 如果您還想知道更多檔案權限的資訊及使用方法,請務必參閱
+ &man.chmod.1; 說明文件。</para>
+
+ <sect2>
+ <info><title>權限符號</title>
+ <authorgroup>
+ <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Contributed by </contrib></author>
+ </authorgroup>
+ </info>
+
+
+ <indexterm><primary>permissions</primary><secondary>symbolic</secondary></indexterm>
+
+ <para>權限符號可稱做符號表示,
+ 使用字元的方式來取代使用數值來設定檔案或目錄的權限。
+ 符號表示的格式依序為 (某人)(動作)(權限),可使用的符號如下:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>項目</entry>
+ <entry>字母</entry>
+ <entry>意義</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>(某人)</entry>
+ <entry>u</entry>
+ <entry>使用者</entry>
+ </row>
+
+ <row>
+ <entry>(某人)</entry>
+ <entry>g</entry>
+ <entry>群組所有者</entry>
+ </row>
+
+ <row>
+ <entry>(某人)</entry>
+ <entry>o</entry>
+ <entry>其他</entry>
+ </row>
+
+ <row>
+ <entry>(某人)</entry>
+ <entry>a</entry>
+ <entry>全部(<quote>world</quote>)</entry>
+ </row>
+
+ <row>
+ <entry>(動作)</entry>
+ <entry>+</entry>
+ <entry>增加權限</entry>
+ </row>
+
+ <row>
+ <entry>(動作)</entry>
+ <entry>-</entry>
+ <entry>移除權限</entry>
+ </row>
+
+ <row>
+ <entry>(動作)</entry>
+ <entry>=</entry>
+ <entry>指定權限</entry>
+ </row>
+
+ <row>
+ <entry>(權限)</entry>
+ <entry>r</entry>
+ <entry>讀取</entry>
+ </row>
+
+ <row>
+ <entry>(權限)</entry>
+ <entry>w</entry>
+ <entry>寫入</entry>
+ </row>
+
+ <row>
+ <entry>(權限)</entry>
+ <entry>x</entry>
+ <entry>執行</entry>
+ </row>
+
+ <row>
+ <entry>(權限)</entry>
+ <entry>t</entry>
+ <entry>Sticky bit</entry>
+ </row>
+
+ <row>
+ <entry>(權限)</entry>
+ <entry>s</entry>
+ <entry>Set UID 或 GID</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>如先前同樣使用 &man.chmod.1; 指令來設定,但使用的參數為這些字元。
+ 例如,您可以使用下列指令禁止其他使用者存取檔案
+ <replaceable>FILE</replaceable>:</para>
+
+ <screen>&prompt.user; <userinput>chmod go= FILE</userinput></screen>
+
+ <para>若有兩個以上的符號表示可以使用逗號 (,) 區隔。
+ 例如,下列指令將會移除群組及其他人對檔案
+ <replaceable>FILE</replaceable> 的寫入權限,
+ 並使全部人(<quote>world</quote>)對該檔有執行權限。</para>
+
+ <screen>&prompt.user; <userinput>chmod go-w,a+x FILE</userinput></screen>
+
+<!--
+ <para>Most users will not notice this, but it should be pointed out
+ that using the octal method will only set or assign permissions to
+ a file; it does not add or delete them.</para>
+-->
+ </sect2>
+
+ <sect2>
+ <info><title>&os; 檔案旗標(Flag)</title>
+ <authorgroup>
+ <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Contributed by </contrib></author>
+ </authorgroup>
+ </info>
+
+
+
+ <para>除了前面提到的檔案權限外,&os; 支援使用 <quote>檔案旗標</quote>。
+ 這些旗標增加了檔案的安全性及管理性,但不包含目錄。</para>
+
+ <para>檔案旗標增加了管理性,確保在某些時候 <systemitem class="username">root</systemitem>
+ 不會意外將檔案修改或移除。</para>
+
+ <para>修改的檔案 flag 僅需要使用擁有簡易的介面的 &man.chflags.1; 工具。
+ 例如,標示系統禁止刪除的旗標於檔案
+ <filename>file1</filename>,使用下列指令:</para>
+
+ <screen>&prompt.root; <userinput>chflags sunlink file1</userinput></screen>
+
+ <para>若要移除系統禁止刪除的旗標,只需要簡單在 <option>sunlink</option>
+ 前加上 <quote>no</quote>,例如:</para>
+
+ <screen>&prompt.root; <userinput>chflags nosunlink file1</userinput></screen>
+
+ <para>使用 &man.ls.1; 及參數 <option>-lo</option>
+ 可檢視檔案目前的旗標:</para>
+
+ <screen>&prompt.root; <userinput>ls -lo file1
+ </userinput></screen>
+
+ <para>輸出的結果如下:</para>
+
+ <programlisting>-rw-r--r-- 1 trhodes trhodes sunlnk 0 Mar 1 05:54 file1</programlisting>
+
+ <para>多數的旗標僅能由 <systemitem class="username">root</systemitem>
+ 使用者來標示或移除,而部份旗標可由檔案所有者設定。
+ 我們建議系統管理者可閱讀 &man.chflags.1; 及 &man.chflags.2;
+ 說明以瞭解相關細節。</para>
+ </sect2>
+ </sect1>
+
+ <sect1 xml:id="dirstructure">
+ <title>目錄結構</title>
+ <indexterm><primary>directory hierarchy</primary></indexterm>
+
+ <para>認識 FreeBSD 的目錄架構,就可對系統有概略的基礎理解。
+ 最重要的莫過於整個目錄的根目錄,就是 <quote>/</quote> 目錄,
+ 該目錄會在開機時最先掛載 (mount),裡面會有開機所會用到必備檔案。
+ 此外,根目錄還有紀錄其他檔案系統的掛載點相關設定。</para>
+
+ <para>「掛載點」就是讓新增的檔案系統,能接到上層的檔案系統
+ (通常就是「根目錄」檔案系統) 的目錄。
+ 在 <xref linkend="disk-organization"/> 這邊對此有更詳細介紹。
+ 標準的掛載點包括了 <filename>/usr</filename>、<filename>/var</filename>、
+ <filename>/tmp</filename>、<filename>/mnt</filename> 以及
+ <filename>/cdrom</filename>。 這些目錄通常會記錄在
+ <filename>/etc/fstab</filename> 設定檔內。
+ <filename>/etc/fstab</filename> 是記錄各檔案系統及相關掛載點的表格。
+ 大部分在 <filename>/etc/fstab</filename> 有記錄的檔案系統,會在開機時由
+ &man.rc.8; script 來自動掛載,除非它們有設定 <option>noauto</option>
+ 選項。 其中細節說明可參閱 <xref linkend="disks-fstab"/>。</para>
+
+ <para>有關檔案系統架構的完整說明可參閱 &man.hier.7;。
+ 現在呢,讓我們大致先一窺常見的目錄有哪些吧。</para>
+
+ <para>
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>目錄</entry>
+ <entry>說明</entry>
+ </row>
+ </thead>
+ <tbody valign="top">
+ <row>
+ <entry><filename>/</filename></entry>
+ <entry>檔案系統的根目錄。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/bin/</filename></entry>
+ <entry>single-user、multi-user 兩種模式皆可使用的基本工具
+ 。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/boot/</filename></entry>
+ <entry>作業系統開機過程會用到的程式、設定檔。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/boot/defaults/</filename></entry>
+ <entry>預設的開機啟動設定檔,詳情請參閱 &man.loader.conf.5;
+ 。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/dev/</filename></entry>
+ <entry>Device nodes,詳情請參閱 &man.intro.4;。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/etc/</filename></entry>
+ <entry>系統設定檔及一些 script 檔。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/etc/defaults/</filename></entry>
+ <entry>預設的系統設定檔,詳情請參閱 &man.rc.8;。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/etc/mail/</filename></entry>
+ <entry>MTA(Mail Transport Agent)的相關設定檔,像是
+ &man.sendmail.8;。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/etc/namedb/</filename></entry>
+ <entry><command>named</command> 設定檔,詳情請參閱
+ &man.named.8;。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/etc/periodic/</filename></entry>
+ <entry>每日、每週、每月透過 &man.cron.8;; 執行的定期排程 script,
+ 詳情請參閱 &man.periodic.8;。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/etc/ppp/</filename></entry>
+ <entry><command>ppp</command> 設定檔,詳情請參閱
+ &man.ppp.8;。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/mnt/</filename></entry>
+ <entry>系統管理者慣用充當臨時掛載點的空目錄。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/proc/</filename></entry>
+ <entry>Process 檔案系統,詳情請參閱 &man.procfs.5; 及
+ &man.mount.procfs.8;。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/rescue/</filename></entry>
+ <entry>緊急救援用途的一些 statically linked 程式,詳情請參閱
+ &man.rescue.8;。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/root/</filename></entry>
+ <entry><systemitem class="username">root</systemitem> 帳號的家目錄。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/sbin/</filename></entry>
+ <entry>供 single-user 及 multi-user 環境使用的系統程式及管理工具
+ 。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/tmp/</filename></entry>
+ <entry>臨時檔案。 一般而言,重開機之後
+ <filename>/tmp</filename> 內的東西會被清除掉。
+ 而通常會將 memory-based 檔案系統掛載在
+ <filename>/tmp</filename> 上。
+ 這些瑣事可透過 tmpmfs 相關的 &man.rc.conf.5; 環境變數來自動完成
+ 。(或是在 <filename>/etc/fstab</filename> 內做設定,
+ 詳情請參閱 &man.mdmfs.8;。)</entry>
+ </row>
+
+ <row>
+ <entry><filename>/usr/</filename></entry>
+ <entry>主要是使用者所安裝的工具程式、應用程式存放處。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/usr/bin/</filename></entry>
+ <entry>常用工具、開發工具、應用軟體。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/usr/include/</filename></entry>
+ <entry>標準 C include 的相關 header 檔案庫。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/usr/lib/</filename></entry>
+ <entry>函式庫存放處。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/usr/libdata/</filename></entry>
+ <entry>其他各式工具的資料檔。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/usr/libexec/</filename></entry>
+ <entry>系統 daemons 及系統工具程式(透過其他程式來執行)。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/usr/local/</filename></entry>
+
+ <entry>存放一些自行安裝的執行檔、函式庫等等。 同時,也是 FreeBSD
+ ports 架構的預設安裝目錄。 <filename>/usr/local</filename>
+ 內的目錄架構大致與 <filename>/usr</filename> 相同,詳情請參閱
+ &man.hier.7; 說明。 但 man 目錄例外,它們是直接放在
+ <filename>/usr/local</filename> 底下,而非
+ <filename>/usr/local/share</filename>,而 ports
+ 所安裝的說明文件則在
+ <filename>share/doc/port</filename>。
+ </entry>
+ </row>
+
+ <row>
+ <entry><filename>/usr/obj/</filename></entry>
+ <entry>在編譯 <filename>/usr/src</filename>
+ 目錄時所產生的相關架構 object 檔案。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/usr/ports</filename></entry>
+ <entry>FreeBSD Ports Collection (optional)。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/usr/sbin/</filename></entry>
+ <entry>系統 daemon 及系統工具(直接由使用者執行)。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/usr/share/</filename></entry>
+ <entry>各架構皆共通的檔案。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/usr/src/</filename></entry>
+ <entry>BSD 本身的原始碼(或自行新增的)。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/usr/X11R6/</filename></entry>
+ <entry>X11R6 相關套件的執行檔、函式庫等(optional)。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/var/</filename></entry>
+ <entry>存放各種用途的 log 檔、臨時或暫時存放、列印或郵件的
+ spool 檔案。有時候,memory-based 檔案系統也會掛載在
+ <filename>/var</filename>。
+ 這些瑣事可透過 varmfs 相關的 &man.rc.conf.5;
+ 環境變數來自動完成。(或是在
+ <filename>/etc/fstab</filename> 內做設定,相關細節請參閱
+ &man.mdmfs.8;。)</entry>
+ </row>
+
+
+ <row>
+ <entry><filename>/var/log/</filename></entry>
+ <entry>各項系統記錄的 log 檔案。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/var/mail/</filename></entry>
+ <entry>各使用者的 mailbox 檔案。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/var/spool/</filename></entry>
+ <entry>各種印表機、郵件系統的 spool 目錄。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/var/tmp/</filename></entry>
+ <entry>臨時檔案。
+ 這些檔案在重開機後通常仍會保留,除非
+ <filename>/var</filename>
+ 是屬於 memory-based 檔案系統。</entry>
+ </row>
+
+ <row>
+ <entry><filename>/var/yp</filename></entry>
+ <entry>記錄 NIS maps。</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ </sect1>
+
+ <sect1 xml:id="disk-organization">
+ <title>磁碟組織</title>
+
+ <para>FreeBSD 用來尋找檔案的最小單位就是檔案的名稱了。
+ 檔案的名稱有大小寫之分,所以說 <filename>readme.txt</filename>
+ 和 <filename>README.TXT</filename> 是兩個不同的檔案。
+ FreeBSD 並不使用副檔名 (<filename>.txt</filename>)
+ 來判別這是一個程式檔、文件檔或是其他類型的檔案。</para>
+
+ <para>檔案存在目錄裡面。
+ 一個目錄中可能沒有任何檔案,也可能有好幾百個檔案。
+ 目錄之中也可以包含其他的目錄;
+ 您可以建立階層式的目錄以便資料的管理。</para>
+
+ <para>檔案或目錄的對應是藉由給定的檔案或目錄名稱,然後加上正斜線符號
+ (<literal>/</literal>);之後再視需要加上其他的目錄名稱。
+ 如果您有一個目錄 <filename>foo</filename> ,裡面有一個目錄叫作
+ <filename>bar</filename>,這個目錄中又包含了一個叫
+ <filename>readme.txt</filename>
+ 的檔案,那麼這個檔案的全名,或者說檔案的<firstterm>路徑</firstterm>就是
+ <filename>foo/bar/readme.txt</filename>。</para>
+
+ <para>目錄及檔案儲存在檔案系統之中。
+ 每個檔案系統都有唯一一個最上層的目錄,叫做<firstterm>根目錄
+ (root directory)</firstterm>。
+ 然後在這個根目錄下面才能有其他的目錄。</para>
+
+ <para>到目前為止大概和其他您用過的的作業系統都差不多。
+ 還是有些不一樣的地方就是了,例如 &ms-dos; 用 <literal>\</literal>
+ 當檔案和目錄名稱的分隔符號,而 &macos; 則是用 <literal>:</literal>
+ 符號。</para>
+
+ <para>FreeBSD 的路徑中並沒有使用磁碟機代號或其他的磁碟名稱。
+ 因此,您不可以使用像 <filename>c:/foo/bar/readme.txt</filename>
+ 這樣子的檔案名稱。</para>
+
+ <para>相對的,在 FreeBSD
+ 系統中有一個檔案系統被指定為<firstterm>根檔案系統</firstterm>。
+ 根檔案系統的根目錄由 <literal>/</literal> 表示。
+ 然後其他的檔案系統再<firstterm>掛載 (mount)</firstterm>
+ 在根檔案系統之下。因此無論您的 FreeBSD
+ 系統上有多少顆硬碟,每一個目錄看起來就像在同一個磁碟上。</para>
+
+ <para>假設您有三個檔案系統,分別叫作 <literal>A</literal>、
+ <literal>B</literal> 及 <literal>C</literal>。
+ 每個檔案系統都包含兩個目錄,叫做
+ <literal>A1</literal>、<literal>A2</literal> (依此類推得
+ <literal>B1</literal>、<literal>B2</literal> 及
+ <literal>C1</literal>、<literal>C2</literal>)。</para>
+
+ <para>稱 <literal>A</literal> 為主要的檔案系統;如果您用
+ <command>ls</command> 指令查看此目錄的內容,您會看到兩個子目錄:
+ <literal>A1</literal> 及 <literal>A2</literal>,如下所示:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/example-dir1"/>
+ </imageobject>
+
+ <textobject>
+ <literallayout class="monospaced"> /
+ |
+ +--- A1
+ |
+ `--- A2</literallayout>
+ </textobject>
+ </mediaobject>
+
+ <para>一個檔案系統必須以目錄形式掛載於另一個檔案系統上。
+ 因此,假設您將 <literal>B</literal> 掛載於 <literal>A1</literal>
+ 之上,則 <literal>B</literal> 的根目錄就變成了
+ <literal>A1</literal>,而在 <literal>B</literal>
+ 之下的任何目錄的路徑也隨之改變:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/example-dir2"/>
+ </imageobject>
+
+ <textobject>
+ <literallayout class="monospaced"> /
+ |
+ +--- A1
+ | |
+ | +--- B1
+ | |
+ | `--- B2
+ |
+ `--- A2</literallayout>
+ </textobject>
+ </mediaobject>
+
+ <para>在 <literal>B1</literal> 或 <literal>B2</literal>
+ 目錄中的任何檔案必須經由路徑 <filename>/A1/B1</filename>
+ 或 <filename>/A1/B2</filename> 才能達到。
+ 所有原來在 <filename>/A1</filename> 中的檔案會暫時被隱藏起來,直到
+ <literal>B</literal> 被「<firstterm>移除
+ (unmounted)</firstterm>」後才會再顯現出來。</para>
+
+ <para>如果 <literal>B</literal> 掛載在 <literal>A2</literal>
+ 之上,則會變成:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/example-dir3"/>
+ </imageobject>
+
+ <textobject>
+ <literallayout class="monospaced"> /
+ |
+ +--- A1
+ |
+ `--- A2
+ |
+ +--- B1
+ |
+ `--- B2</literallayout>
+ </textobject>
+ </mediaobject>
+
+ <para>上面的路徑分別為 <filename>/A2/B1</filename> 及
+ <filename>/A2/B2</filename>。</para>
+
+ <para>檔案系統可以掛在其他檔案系統的目錄之上。
+ 延續之前的例子,<literal>C</literal> 檔案系統可以掛在檔案系統
+ <literal>B</literal> 的 <literal>B1</literal>
+ 目錄之上,如圖所示:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/example-dir4"/>
+ </imageobject>
+
+ <textobject>
+ <literallayout class="monospaced"> /
+ |
+ +--- A1
+ |
+ `--- A2
+ |
+ +--- B1
+ | |
+ | +--- C1
+ | |
+ | `--- C2
+ |
+ `--- B2</literallayout>
+ </textobject>
+ </mediaobject>
+
+ <para>或者 <literal>C</literal> 直接掛載於 <literal>A</literal> 的
+ <literal>A1</literal> 目錄之上:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/example-dir5"/>
+ </imageobject>
+
+ <textobject>
+ <literallayout class="monospaced"> /
+ |
+ +--- A1
+ | |
+ | +--- C1
+ | |
+ | `--- C2
+ |
+ `--- A2
+ |
+ +--- B1
+ |
+ `--- B2</literallayout>
+ </textobject>
+ </mediaobject>
+
+ <para>如果您熟悉 &ms-dos; 的話,這和 <command>join</command>
+ 指令很類似 (雖然不儘相同)。</para>
+
+ <para>一般情況下您不需要擔心這些東西。
+ 除非您要安裝新的磁碟,不然通常在您安裝 FreeBSD
+ 時建立好檔案系統並決定好要掛載在何處之後就不會再做任何更動了。</para>
+
+ <para>您完全可以使用單一的一個大的根檔案系統 (root file system)
+ 而不建立其他的檔案系統。 這樣有好處也有有壞處。</para>
+
+ <itemizedlist>
+ <title>使用多個檔案系統的好處</title>
+
+ <listitem>
+ <para>不同的檔案系統在掛上的時候可以有不同的
+ <firstterm>掛載參數</firstterm>。
+ 舉例來說,為求謹慎您可以將根檔案系統設成唯讀,
+ 以避免不小心刪除或修改掉重要的檔案。
+ 將使用者可寫入的檔案系統 (例如 <filename>/home</filename>)
+ 獨立出來也可以讓他們用 <firstterm>nosuid</firstterm>
+ 的參數掛載,此選項可以讓在這個檔案系統中執行檔的
+ <firstterm>suid</firstterm>/<firstterm>guid</firstterm>
+ bits 失效,也許可以讓系統更安全。</para>
+ </listitem>
+
+ <listitem>
+ <para>FreeBSD 會自動根據您檔案系統的使用方式來做最佳的檔案配置方式。
+ 因此,一個有很多小檔案、
+ 常常寫入的檔案系統跟只有幾個較大的檔案的檔案系統配置是不一樣的。
+ 如果您只有單一一個大的檔案系統,這部分就沒用了。</para>
+ </listitem>
+
+ <listitem>
+ <para>FreeBSD 的檔案系統在停電的時候很穩固。
+ 然而,在某些重要的時候停電仍然會對檔案系統結構造成損害。
+ 分割成許多個檔案系統的話在系統在停電後比較能夠正常啟動,
+ 以便您在需要的時候將備份資料回存回來。</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>使用單一檔案系統的好處</title>
+
+ <listitem>
+ <para>檔案系統的大小是固定的。
+ 您當初安裝 FreeBSD
+ 的時候應該會給定一個大小,可是後來您可能會想把空間加大。
+ 如果沒有備份的話是很難達成的;
+ 您必須將檔案系統重新建立為您需要的大小,然後將備份回存回來。</para>
+
+ <important>
+ <para>FreeBSD 的 &man.growfs.8;
+ 指令可以突破此限制直接變更檔案系統的大小。</para>
+ </important>
+ </listitem>
+ </itemizedlist>
+
+ <para>檔案系統包含在分割區裡面。
+ 因為 &os; 承襲 &unix; 架構,這邊講的分割區和一般提到的分割區
+ (例如 &ms-dos; 分割區) 不同。 每一個分割區由一個代號(字母)表示,從
+ <literal>a</literal> 到 <literal>h</literal>。
+ 每個分割區只能包含一個檔案系統。
+ 因此除了說常見到用檔案系統同的掛載點來表示檔案系統外,
+ 也可以用包含他的分割區代號來表示。</para>
+
+ <para>FreeBSD 也會拿磁碟空間來當 <firstterm>swap space</firstterm>。
+ Swap space 給 FreeBSD 當作<firstterm>虛擬記憶體</firstterm>用。
+ 這讓您的電腦好像擁有比實際更多的記憶體。
+ 當 FreeBSD 的記憶體用完的時候,它會把一些目前沒用到的資料移到
+ swap space,然後在用到的時候移回去 (同時移出部份沒用到的)。</para>
+
+ <para>某些分割區有慣例的使用方式如下:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <colspec colwidth="1*"/>
+ <colspec colwidth="5*"/>
+
+ <thead>
+ <row>
+ <entry>分割區</entry>
+
+ <entry>慣例</entry>
+ </row>
+ </thead>
+
+ <tbody valign="top">
+ <row>
+ <entry><literal>a</literal></entry>
+
+ <entry>通常包含根檔案系統 (root file system)</entry>
+ </row>
+
+ <row>
+ <entry><literal>b</literal></entry>
+
+ <entry>通常是 swap space</entry>
+ </row>
+
+ <row>
+ <entry><literal>c</literal></entry>
+
+ <entry>通常和整個 slice 的大小一樣,給一些會用到整個 slice
+ 的工具程式 (例如硬碟壞軌檢查工具) 來使用。
+ 一般來說您應該不會把檔案系統建立在這個分割區。</entry>
+ </row>
+
+ <row>
+ <entry><literal>d</literal></entry>
+
+ <entry>分割區 <literal>d</literal>
+ 曾經有代表特殊意義,但是已經不再使用。
+ 所以現在 <literal>d</literal>
+ 就和其他一般的分割區相同了。</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>每個包含有檔案系統的分割區是存在所謂的
+ <firstterm>slice</firstterm> 裡面。
+ FreeBSD 的 slice 就是指平常我們稱為分割區 (partition) 的東西。
+ 同樣地,會這樣子稱呼也是因為 FreeBSD 的 &unix; 色彩。
+ 而 slice 是有編號的,從 1 號編到 4 號。</para>
+
+ <indexterm><primary>slices</primary></indexterm>
+ <indexterm><primary>partitions</primary></indexterm>
+ <indexterm><primary>dangerously dedicated</primary></indexterm>
+
+ <para>slice 號碼跟在裝置名稱後面,先接一個字母
+ <literal>s</literal>,然後從 1 號開始編下去。
+ 因此 <quote>da0<emphasis>s1</emphasis></quote> 就是指第一個 SCSI
+ 硬碟的第一個 slice。 一個磁碟上只能有四個實體的 slice,但是在實體的
+ slice 中您可以塞進適當類型的邏輯 slice。 這些延伸的 slice 編號從 5
+ 開始,所以 <quote>ad0<emphasis>s5</emphasis></quote> 是第一個 IDE
+ 硬碟上的第一個延伸 slice。 檔案系統在裝置 (device) 裡就是在一個 slice
+ 之中。</para>
+
+ <para>Slices、<quote>dangerously dedicated</quote>
+ 模式的實體磁碟機,以及其他包含<firstterm>分割區(partition)</firstterm>
+ 的磁碟都是以字母 <literal>a</literal> 到 <literal>h</literal>
+ 的編號來表示。 編號是接在裝置名稱的後面的,因此
+ <quote>da0<emphasis>a</emphasis></quote> 是磁碟機 da 上的第一個
+ <quote>dangerously dedicated</quote>模式之分割區。
+ 而 <quote>ad1s3<emphasis>e</emphasis></quote>
+ 則是第二顆 IDE 硬碟上第三個 slice 的第五個分割區。</para>
+
+ <para>最後,我們就可以把系統上的每個磁碟都區分出來了。
+ 一個磁碟的名稱會有一個代碼來表示這個磁碟的類型,接著是一個數字,
+ 表示這是哪一個磁碟。 這邊跟 slice 每個磁碟編號從 0 開始不一樣。
+ 常見的代碼可以參考 <xref linkend="basics-dev-codes"/>。</para>
+
+ <para>當要參照一個分割區的時候,FreeBSD 會要您一併輸入包含這個分割區的
+ slice 及磁碟機名稱;當要參照一個 slice 的時候,也必須輸入包含這個
+ slice 的磁碟名稱。 怎麼做呢?首先先列出磁碟名稱,然後
+ <literal>s</literal> 加上 slice 編號,最後再輸入分割區字母代號。
+ 範例可以參考 <xref linkend="basics-disk-slice-part"/>.</para>
+
+ <para><xref linkend="basics-concept-disk-model"/>
+ 示範了一個基本的磁碟分布模式,相信對您有些幫助。</para>
+
+ <para>要安裝 FreeBSD,您必須先建置磁碟的 slice,接著於 slice 中建立要給
+ FreeBSD 用的分割區。 最後在這些分割區中建立檔案系統 (或 swap space)
+ 並決定要將這些檔案系統掛載於哪裡。</para>
+
+ <table frame="none" pgwide="1" xml:id="basics-dev-codes">
+ <title>磁碟機代號</title>
+
+ <tgroup cols="2">
+ <colspec colwidth="1*"/>
+ <colspec colwidth="5*"/>
+
+ <thead>
+ <row>
+ <entry>代號</entry>
+
+ <entry>意義</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><filename>ad</filename></entry>
+
+ <entry>ATAPI(IDE) 磁碟機</entry>
+ </row>
+
+ <row>
+ <entry><filename>da</filename></entry>
+
+ <entry>SCSI 直接存取磁碟機</entry>
+ </row>
+
+ <row>
+ <entry><filename>acd</filename></entry>
+
+ <entry>ATAPI(IDE) 光碟機</entry>
+ </row>
+
+ <row>
+ <entry><filename>cd</filename></entry>
+
+ <entry>SCSI 光碟機</entry>
+ </row>
+
+ <row>
+ <entry><filename>fd</filename></entry>
+
+ <entry>軟碟機</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <example xml:id="basics-disk-slice-part">
+ <title>磁碟、slice 及分割區命名範例</title>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <colspec colwidth="1*"/>
+ <colspec colwidth="5*"/>
+
+ <thead>
+ <row>
+ <entry>名稱</entry>
+
+ <entry>意義</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><literal>ad0s1a</literal></entry>
+
+ <entry>第一個 IDE 硬碟 (<literal>ad0</literal>) 上第一個 slice
+ (<literal>s1</literal>)的第一個分割區(<literal>a</literal>)
+ 。</entry>
+ </row>
+
+ <row>
+ <entry><literal>da1s2e</literal></entry>
+ <entry>第二個 SCSI 硬碟 (<literal>da1</literal>) 上第二個 slice
+ (<literal>s2</literal>) 的第五個分割區 (<literal>e</literal>)
+ 。</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </example>
+
+ <example xml:id="basics-concept-disk-model">
+ <title>磁碟的概念模型</title>
+
+ <para>此圖顯示 FreeBSD 中接到系統的第一個 IDE 磁碟機內部配置圖。
+ 假設這個磁碟的容量是 4&nbsp;GB,並且包含了兩個 2&nbsp;GB 的
+ slice (&ms-dos; 的分割區)。 第一個 slice 是 DOS 的
+ <filename>C:</filename> 磁碟機,第二個則安裝了 FreeBSD。
+ 本範例的 FreeBSD 有三個分割區以及一個 swap 分割區。</para>
+
+ <para>這三個分割區每個都是一個檔案系統。
+ <literal>a</literal> 分割是根 (root) 檔案系統;分割
+ <literal>e</literal> 是 <filename>/var</filename>;而
+ <literal>f</literal> 分割是 <filename>/usr</filename>
+ 目錄結構。</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/disk-layout"/>
+ </imageobject>
+
+ <textobject>
+ <literallayout class="monospaced">.-----------------. --.
+| | |
+| DOS / Windows | |
+: : &gt; First slice, ad0s1
+: : |
+| | |
+:=================: ==: --.
+| | | Partition a, mounted as / |
+| | &gt; referred to as ad0s2a |
+| | | |
+:-----------------: ==: |
+| | | Partition b, used as swap |
+| | &gt; referred to as ad0s2b |
+| | | |
+:-----------------: ==: | Partition c, no
+| | | Partition e, used as /var &gt; file system, all
+| | &gt; referred to as ad0s2e | of FreeBSD slice,
+| | | | ad0s2c
+:-----------------: ==: |
+| | | |
+: : | Partition f, used as /usr |
+: : &gt; referred to as ad0s2f |
+: : | |
+| | | |
+| | --' |
+`-----------------' --'</literallayout>
+ </textobject>
+ </mediaobject>
+ </example>
+ </sect1>
+
+
+
+ <sect1 xml:id="mount-unmount">
+ <title>掛載與卸載檔案系統</title>
+
+ <para>檔案系統就像一顆樹。<filename>/</filename>
+ 就像是樹根,而 <filename>/dev</filename>,<filename>/usr</filename>
+ 以及其他在根目錄下的目錄就像是樹枝,而這些樹枝上面又還有分支,像是
+ <filename>/usr/local</filename> 等。</para>
+
+ <indexterm><primary>根檔案系統</primary></indexterm>
+ <para>因為某些原因,我們會將一些目錄分別放在不同的檔案系統上。
+ 如 <filename>/var</filename> 包含了可能會滿出來的
+ <filename>log/</filename>,<filename>spool/</filename>
+ 等目錄以及各式各樣的暫存檔。
+ 把根檔案系統塞到滿出來顯然不是個好主意,所以我們往往會比較傾向把
+ <filename>/var</filename> 從 <filename>/</filename> 中拉出來。</para>
+
+ <para>另一個常見到把某些目錄放在不同檔案系統上的理由是:
+ 這些檔案在不同的實體或虛擬磁碟機上。
+ 像是<link linkend="network-nfs">網路檔案系統</link>
+ (Network File System) 或是光碟機。</para>
+
+ <sect2 xml:id="disks-fstab">
+ <title> <filename>fstab</filename> 檔</title>
+ <indexterm>
+ <primary>檔案系統 file systems</primary>
+ <secondary>由fstab掛載 mounted with fstab</secondary>
+ </indexterm>
+
+ <para>在 <filename>/etc/fstab</filename>
+ 裡面有設定的檔案系統會在<link linkend="boot">開機</link>
+ 的過程中自動地被掛載
+ (除非該檔案系統有被加上 <option>noauto</option> 參數)。</para>
+
+ <para><filename>/etc/fstab</filename> 檔案內容的格式如下:</para>
+
+ <programlisting><replaceable>device</replaceable> <replaceable>/mount-point</replaceable> <replaceable>fstype</replaceable> <replaceable>options</replaceable> <replaceable>dumpfreq</replaceable> <replaceable>passno</replaceable></programlisting>
+
+ <variablelist>
+ <varlistentry>
+ <term><literal>device</literal></term>
+ <listitem>
+ <para>裝置名稱 (該裝置必須真的存在)。 詳情請參閱
+ <xref linkend="disks-naming"/>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>mount-point</literal></term>
+
+ <listitem><para>檔案系統要掛載到的目錄 (該目錄必須真的存在)。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>fstype</literal></term>
+
+ <listitem>
+ <para>檔案系統類型,這是要傳給 &man.mount.8; 的參數。
+ FreeBSD 預設的檔案系統是 <literal>ufs</literal>。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>options</literal></term>
+
+ <listitem>
+ <para>可讀可寫的檔案系統用
+ <option>rw</option>,而唯讀的檔案系統則是用
+ <option>ro</option>,後面視需要還可以加其他選項。
+ 常見的選項如 <option>noauto</option>
+ 是用在不要於開機過程中自動的掛載的檔案系統。
+ 其他選項可參閱 &man.mount.8; 說明。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>dumpfreq</literal></term>
+
+ <listitem>
+ <para>&man.dump.8; 由此項目決定那些檔案系統需要傾印。
+ 如果這格空白則以零為預設值。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>passno</literal></term>
+
+ <listitem>
+ <para>這個項目決定檔案系統檢查的順序。
+ 對於要跳過檢查的檔案系統,它們的 <literal>passno</literal>
+ 值要設為零。 根檔案系統的 <literal>passno</literal> 值應設為一
+ (因為需要比所有其他的還要先檢查),而其他的檔案系統的
+ <literal>passno</literal> 值應該要設得比一大。
+ 若有多個檔案系統具有相同的 <literal>passno</literal> 值,則
+ &man.fsck.8; 會試著平行地(如果可能的話)檢查這些檔案系統。</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>更多關於 <filename>/etc/fstab</filename>
+ 檔案格式及選項的資訊請參閱 &man.fstab.5; 說明文件。</para>
+ </sect2>
+
+ <sect2 xml:id="disks-mount">
+ <title><command>mount</command> 指令</title>
+ <indexterm>
+ <primary>檔案系統 file systems</primary>
+ <secondary>掛載 mounting</secondary>
+ </indexterm>
+
+ <para>&man.mount.8; 指令是拿來掛載檔案系統用的。</para>
+
+ <para>基本的操作指令格式如下:</para>
+
+ <informalexample>
+ <screen>&prompt.root; <userinput>mount device mountpoint</userinput></screen>
+ </informalexample>
+
+ <para>在 &man.mount.8;
+ 裡面有提到一大堆的選項,不過最常用的就是這些:</para>
+
+ <variablelist>
+ <title>掛載選項</title>
+
+ <varlistentry>
+ <term><option>-a</option></term>
+
+ <listitem>
+ <para>把 <filename>/etc/fstab</filename>
+ 裡面所有還沒有被掛載、沒有被標記成 <quote>noauto</quote>
+ 而且沒有用 <option>-t</option> 排除的檔案系統掛載起來。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-d</option></term>
+
+ <listitem>
+ <para>執行所有的動作,但是不真的去呼叫掛載的 system call。
+ 這個選項和 <option>-v</option> 搭配拿來推測 &man.mount.8;
+ 將要做什麼動作時很好用。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-f</option></term>
+
+ <listitem>
+ <para>強迫掛載不乾淨的檔案系統 (危險),或是用來強制取消寫入權限
+ (把檔案系統的掛載狀態從可存取變成唯讀)。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-r</option></term>
+
+ <listitem>
+ <para>用唯讀的方式掛載檔案系統。 這個選項和在 <option>-o</option>
+ 選項中指定 <option>ro</option> (在 &os; 5.2之前的版本是用
+ <option>rdonly</option>) 參數是一樣的。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-t</option>
+ <replaceable>fstype</replaceable></term>
+
+ <listitem>
+ <para>用指定的檔案系統型態 (fstype)
+ 來掛載指定的檔案系統,或是在有 <option>-a</option>
+ 選項時只掛載指定型態的檔案系統。</para>
+
+ <para>預設的檔案系統是 <quote>ufs</quote>。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-u</option></term>
+
+ <listitem>
+ <para>更新檔案系統的掛載選項。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-v</option></term>
+
+ <listitem>
+ <para>顯示較詳細資訊。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-w</option></term>
+
+ <listitem>
+ <para>以可存取的模式掛載檔案系統。</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para><option>-o</option> 選項後面會接著以逗號分隔的參數,例如:</para>
+ <variablelist>
+ <varlistentry>
+ <term>noexec</term>
+
+ <listitem>
+ <para>不允許在這個檔案系統上執行二進位程式碼,
+ 這也是一個蠻有用的安全選項。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>nosuid</term>
+
+ <listitem>
+ <para>不解析檔案系統上的 setuid 或 setgid 旗標,
+ 這也是一個蠻有用的安全選項。</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect2>
+
+ <sect2 xml:id="disks-umount">
+ <title><command>umount</command> 指令</title>
+ <indexterm>
+ <primary>檔案系統 file systems</primary>
+ <secondary>卸載 unmounting</secondary>
+ </indexterm>
+
+ <para>&man.umount.8; 指令的參數可以是掛載點
+ (mountpoint),裝置名稱,以及 <option>-a</option> 或是
+ <option>-A</option> 等選項。</para>
+
+ <para>加上 <option>-f</option> 可以強制卸載,加上 <option>-v</option>
+ 則是會顯示詳細資訊。 要注意的是一般來說用 <option>-f</option>
+ 並不是個好主意,強制卸載檔案系統有可能會造成電腦當機,
+ 或者損壞檔案系統內的資料。</para>
+
+ <para><option>-a</option> 和 <option>-A</option>
+ 是用來卸載所有已掛載的檔案系統,另外還可以用 <option>-t</option>
+ 來指定要卸載的是哪些種類的檔案系統。 要注意的是 <option>-A</option>
+ 並不會試圖卸載根檔案系統。</para>
+
+ </sect2>
+ </sect1>
+
+ <sect1 xml:id="basics-processes">
+ <title>程序</title>
+
+ <para>FreeBSD 是一個多工的作業系統,也就是說在同一時間內可以跑超過一個程式。
+ 每一個正在花時間跑的程式就叫做 <firstterm>程序 (process)</firstterm>。
+ 您下的每個指令都至少會開啟一個新的程序,
+ 而有些系統程序是一直在跑以維持系統正常運作的。</para>
+
+ <para>每一個程序都有一個不重覆的數字叫做 <firstterm>process ID
+ </firstterm>,或稱為 <firstterm>PID
+ </firstterm>,而且就像檔案一樣,每一個程序也有擁有者及群組。
+ 擁有者及群組的資訊是用來決定什麼檔案或裝置是這個程序可以開啟的
+ (前面有提到過檔案權限)。 大部份的程序都有父程序。
+ 父程序是開啟這個程序的程序,例如:您對 shell 輸入指令,shell
+ 本身就是一個程序,而您執行的指令也是程序。
+ 每一個您用這種方式跑的程序的父程序都是 shell。
+ 有一個特別的程序叫做 &man.init.8; 是個例外。<command>init</command>
+ 永遠是第一個程序,所以他的 PID 一直都會是 1。 在 FreeBSD 開機的時候
+ <command>init</command> 會自動地被 kernel 開啟。</para>
+
+ <para>要看系統執行中的程序,有兩個相當有用的指令可用:
+ &man.ps.1; 以及 &man.top.1;。<command>ps</command>
+ 指令是用來列出正在執行之程序,而且可以秀它們的
+ PID、用了多少記憶體、執行的指令名稱及其後之參數是什麼等等。
+ <command>top</command> 指令則是顯示所有正在執行的程序,
+ 並且數秒鐘更新一次。因此您可以互動式的觀看您的電腦正在做什麼。</para>
+
+ <para>在預設的情況下,<command>ps</command>
+ 指令只會顯示您所擁有的的程序。 例如:</para>
+
+ <screen>&prompt.user; <userinput>ps</userinput>
+ PID TT STAT TIME COMMAND
+ 298 p0 Ss 0:01.10 tcsh
+ 7078 p0 S 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14)
+37393 p0 I 0:03.11 xemacs freebsd.dsl (xemacs-21.1.14)
+48630 p0 S 2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi
+48730 p0 IW 0:00.00 (dns helper) (navigator-linux-)
+72210 p0 R+ 0:00.00 ps
+ 390 p1 Is 0:01.14 tcsh
+ 7059 p2 Is+ 1:36.18 /usr/local/bin/mutt -y
+ 6688 p3 IWs 0:00.00 tcsh
+10735 p4 IWs 0:00.00 tcsh
+20256 p5 IWs 0:00.00 tcsh
+ 262 v0 IWs 0:00.00 -tcsh (tcsh)
+ 270 v0 IW+ 0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16
+ 280 v0 IW+ 0:00.00 xinit /home/nik/.xinitrc -- -bpp 16
+ 284 v0 IW 0:00.00 /bin/sh /home/nik/.xinitrc
+ 285 v0 S 0:38.45 /usr/X11R6/bin/sawfish</screen>
+
+ <para>在這個範例裡可以看到 &man.ps.1; 的輸出分成好幾個欄位。
+ <literal>PID</literal> 就是前面有提到的 process ID。 PID 的分配是從
+ 1 開始一直到 99999,如果用完的話又會繞回來重頭開始分配
+ (若該 PID 已經在用了,則 PID 不會重新分配)。
+ <literal>TT</literal> 欄位是指這個程式在哪個 tty
+ 上執行,在這裡可以先忽略不管。<literal>STAT</literal>
+ 是程式的狀態,也可以先不要管。<literal>TIME</literal> 是這個程式在
+ CPU 上執行的時間&mdash;這通常不是程式總共花的時間,
+ 因為當您開始執行程式後,大部份的程式在 CPU 上執行前會先花上不少時間等待
+ 。 最後,<literal>COMMAND</literal> 是執行這個程式的命令列。</para>
+
+ <para>&man.ps.1;
+ 有幾個不同的選項組合可以用來變更顯示出來的資訊,其中一個最有用的組合是
+ <literal>auxww</literal>。
+ <option>a</option> 可以顯示所有正在跑的程序的指令,不只是您自已的。
+ <option>u</option> 則是顯示程序的擁有者名稱以及記憶體使用情況。
+ <option>x</option> 可以把 daemon 程序顯示出來,
+ 而 <option>ww</option> 可讓 &man.ps.1; 顯示出每個程序完整的內容,
+ 而不致因過長而被螢幕截掉了。</para>
+
+ <para>&man.top.1; 也有類似的輸出。 一般的情況看像是這樣:</para>
+
+ <screen>&prompt.user; <userinput>top</userinput>
+last pid: 72257; load averages: 0.13, 0.09, 0.03 up 0+13:38:33 22:39:10
+47 processes: 1 running, 46 sleeping
+CPU states: 12.6% user, 0.0% nice, 7.8% system, 0.0% interrupt, 79.7% idle
+Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free
+Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
+
+ PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
+72257 nik 28 0 1960K 1044K RUN 0:00 14.86% 1.42% top
+ 7078 nik 2 0 15280K 10960K select 2:54 0.88% 0.88% xemacs-21.1.14
+ 281 nik 2 0 18636K 7112K select 5:36 0.73% 0.73% XF86_SVGA
+ 296 nik 2 0 3240K 1644K select 0:12 0.05% 0.05% xterm
+48630 nik 2 0 29816K 9148K select 3:18 0.00% 0.00% navigator-linu
+ 175 root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd
+ 7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt
+...</screen>
+
+ <para>輸出的資訊分成兩個部份。開頭 (前五行) 秀出最近一個程序的
+ PID、系統平均負載 (系統有多忙錄的測試)、系統的開機時間
+ (從上次重開算起) 以及現在的時間等。
+ 在開頭裡面的其他數字分別是在講有多少程序正在執行
+ (在本例中為47)、有多少記憶體及 swap space
+ 被占用了,還有就是系統分別花了多少時間在不同的 CPU 狀態上。</para>
+
+ <para>接下來的部份是由好幾個欄位所構成,和 &man.ps.1; 輸出的資訊類似。
+ 就如同前例,您可以看到 PID、使用者名稱、CPU
+ 花費的時間以及正在執行的指令。 &man.top.1;
+ 在預設的情況下還會告訴您程序用掉了多少的記憶體空間。
+ 在這邊會分成兩欄,一個是總用量 (total size),另一個是實際用量
+ (resident size)&mdash;總用量是指這個應用程式需要的記憶體空間,
+ 而實際用量則是指實際上該程式的記憶體使用量。
+ 在這個例子裡面您可以看到 <application>&netscape;</application>
+ 要了幾乎到 30 MB 的 RAM,但是只有用到 9 MB。</para>
+
+ <para>&man.top.1; 每隔 2 秒鐘會自動更新顯示內容,可用 <option>s</option>
+ 選項來改變間隔的時間。</para>
+
+ </sect1>
+
+ <sect1 xml:id="basics-daemons">
+ <title>Daemon、信號及終止程序</title>
+
+ <para>當在執行文書編輯器時,您可以很容易地使用它,叫它讀取檔案或是什麼的。
+ 可以這樣做是因為編輯器有提供這些功能,
+ 還有就是編輯器依附在一個<firstterm>終端機 (Terminal) </firstterm>之上。
+ 有些程式並不是設計成一直在接收使用者的輸入的,
+ 所以它們在一開始執行的時候就從終端機斷開了。 例如說,
+ 網頁伺服器整天都在回應網頁方面的要求,它通常不需要您輸入任何東西。
+ 另外,像是把信從一個站傳送到另一個站的程式,也是這種類型的應用程式。
+ </para>
+
+ <para>我們把這種程式稱作 <firstterm>daemon</firstterm>。
+ Daemon (惡魔、守護神)
+ 是希臘神話中的角色:祂們不屬於善良陣營或邪惡陣營,是守護的小精靈。
+ 大致上來說祂們就是在替人類做一些有用的事情,
+ 跟今天的網頁伺服器或是郵件伺服器很像。 這也就是為何 BSD
+ 的吉祥物,長期以來都是一隻穿著帆布鞋拿著三叉耙的快樂小惡魔的原因。</para>
+
+ <para>通常來說 deamon 程式的名字後面都會加一個字母 <quote>d</quote>。
+ <application>BIND</application> 是 Berkeley Internet Name Domain
+ 的縮寫 (但實際上執行的程式名稱是 <command>named</command>)、Apache
+ 網頁伺服器的程式名稱是 <command>httpd</command>、印表機服務程式是
+ <command>lpd</command>,依此類推。
+ 這是習慣用法,並沒有硬性規定,例如 <application>Sendmail</application>
+ 主要的寄信 daemon 是叫做 <command>sendmail</command> 而不是
+ <command>maild</command>,跟您想像的不一樣。</para>
+
+ <para>有些時候會需要跟某個 daemon 程序溝通,
+ 這些溝通是透過所謂的<firstterm>信號(signal)</firstterm>來傳遞給該 daemon
+ 程序(或是其他執行中的程序)。
+ 藉由送出信號,您可以和一個 daemon (或是任何一個正在跑的程序) 溝通。
+ 信號有很多種&mdash;有些有特定的意義,有些則是會由應用程式來解讀。
+ 應用程式的說明文件會告訴您該程式是如何解讀信號的。
+ 您只能送信號給您擁有的程序,送 &man.kill.1; 或 &man.kill.2;
+ 的信號給別人的程序是不被允許的。 不過 <systemitem class="username"> root </systemitem>
+ 不受此限制,他可以送信號給任何人的程序。</para>
+
+ <para>FreeBSD 本身在某些情況也會送信號給應用程式。
+ 假設有個應用程式寫得很爛,然後企圖要存取它不該碰的記憶體的時候,FreeBSD
+ 會送一個 <firstterm>Segmentation Violation</firstterm> 信號
+ (<literal>SIGSEGV</literal>) 給這個程序。
+ 又如果有一個應用程式用了 &man.alarm.3; 的 system call
+ 要求系統在過一段時間之後叫他一下,時間到了的時候鬧鐘的信號
+ (<literal>SIGALRM</literal>) 就會被送出了,其他的依此類推。</para>
+
+ <para><literal>SIGTERM</literal> and <literal>SIGKILL</literal>
+ 這兩個信號可以拿來終止程序。 用 <literal>SIGTERM</literal>
+ 結束程序是比較有禮貌的方式,該程序會<emphasis>捕捉 (catch) </emphasis>
+ 這個信號而了解到您想要把他關掉。 接著下來它會把它自已開的記錄檔通通關掉,
+ 然後在關掉程序之前結束掉手邊的工作。 在某些情況下程序有可能會裝作沒看見
+ <literal>SIGTERM</literal>,假如它正在做一些不能中斷的工作的話。</para>
+
+ <para><literal>SIGKILL</literal> 就沒有辦法被程序忽略了。
+ 這是一個<quote>我管你正在幹嘛,現在就給我停下來</quote>的信號。
+ 如果您送了 <literal>SIGKILL</literal> 信號給某個程序,FreeBSD
+ 將會把它停掉<footnote>
+ <para>不完全正確&mdash;還是有少數東西不能被中斷。
+ 例如有個程序正在從網路上的別的電腦讀一個檔案,
+ 而那部電腦因為某些理由連不到 (機器被關掉,或是網路爛掉了),
+ 那這個程序我們就說他是一個<quote>不能中斷的</quote>程序。
+ 通常在經過兩分鐘左右之後這個程序會逾時。
+ 當發生逾時的時候這個程序就會被結束掉了。</para>
+ </footnote>。</para>
+
+ <para>這些是其他您有可能會要用到的信號:
+ <literal>SIGHUP</literal>,<literal>SIGUSR1</literal>,以及
+ <literal>SIGUSR2</literal>。
+ 這些是通用的信號,當送出時不同的應用程式會有不同的反應。</para>
+
+ <para>假設您更動了您的網頁伺服器的設定檔&mdash;
+ 您想要叫網頁伺服器去重新讀取設定值。 您可以關閉後再重新啟動
+ <command>httpd</command>,但是這麼做會造成網頁伺服器暫停服務一段時間,
+ 這樣子可能不太好。
+ 大部份的 daemon 都寫成會去回應 <literal>SIGHUP</literal>。
+ 當收到這個信號之後,它們會去重新讀取自已的設定檔。
+ 因此您可以用送 <literal>SIGHUP</literal> 信號來取代關掉重開。
+ 又因為沒有標準在規範如何回應這些信號,不同的 daemon
+ 可能會有不同的行為,所以有疑問的話請先確認並翻閱 deamon
+ 的說明文件。</para>
+
+ <para>信號是由 &man.kill.1; 指令送出的,如範例所示:</para>
+
+ <procedure>
+ <title>送信號給程序</title>
+
+ <para>這個範例將會示範如何送一個信號給 &man.inetd.8;。
+ <command>inetd</command> 的設定檔是
+ <filename>/etc/inetd.conf</filename>,而 <command>inetd</command>
+ 會在收到 <literal>SIGHUP</literal> 的時候重新讀取這個設定檔。</para>
+
+ <step>
+ <para>找出您想要送信號的那個程序的 ID。 您會用到 &man.ps.1; 以及
+ &man.grep.1; 這兩個指令。 &man.grep.1; 是用來在輸出中搜尋,
+ 找出您指定的字串。 這個指令是由一般使用者執行,而 &man.inetd.8;
+ 是由 <systemitem class="username">root</systemitem> 執行,所以在使用 &man.ps.1; 時需要加上
+ <option>ax</option> 選項。</para>
+
+ <screen>&prompt.user; <userinput>ps -ax | grep inetd</userinput>
+ 198 ?? IWs 0:00.00 inetd -wW</screen>
+
+ <para>因此可知 &man.inetd.8; 的 PID 為 198。 在某些情況下
+ <literal>grep inetd</literal> 這個指令本身也會出現在輸出裡。
+ 這是因為 &man.ps.1; 乃是找所有執行中的程序的方式造成的。</para>
+ </step>
+
+ <step>
+ <para>用 &man.kill.1; 來送信號。 又因為 &man.inetd.8; 是由
+ <systemitem class="username">root</systemitem> 執行的,您必須用 &man.su.1; 切換成
+ <systemitem class="username">root</systemitem>先。</para>
+
+ <screen>&prompt.user; <userinput>su</userinput>
+<prompt>Password:</prompt>
+&prompt.root; <userinput>/bin/kill -s HUP 198</userinput></screen>
+
+ <para>一般情況對大多數 &unix; 指令來講,當 &man.kill.1;
+ 執行成功時並不會輸出任何訊息。
+ 假設您送一個信號給某個不是您所擁有的程序,
+ 那麼您就會吃到這個錯誤訊息: <errorname>kill:
+ <replaceable>PID</replaceable>: Operation not permitted</errorname>。
+ 而如果您打錯 PID 的話,那就會把信號送給錯誤的程序。 這樣可能會很糟,
+ 不過如果您夠幸運的話,可能剛好就只是把信號送給一個非使用中的
+ PID,那您就只會看到 <errorname>kill:
+ <replaceable>PID</replaceable>: No such process</errorname> 而已。
+ </para>
+
+ <note>
+ <title>為什麼用 <command>/bin/kill</command>?</title>
+
+ <para>很多 shell 有提供內建的 <command>kill</command> 指令。
+ 也就是說這種 shell 會直接送信號,而不是執行
+ <filename>/bin/kill</filename>。
+ 這樣是蠻方便的沒錯啦,但是不同的 shell
+ 會有不同的語法來指定信號的名稱等。
+ 與其嘗試去把它們通通學會,不如就單純的直接用 <command>/bin/kill
+ ...</command> 吧。</para>
+ </note>
+ </step>
+ </procedure>
+
+ <para>要送其他的信號的話也是非常類似,就視需要把指令中的
+ <literal>TERM</literal> 或 <literal>KILL</literal>
+ 替換掉即可。</para>
+
+ <important>
+ <para>隨便抓一個系統中的程序然後把他砍掉並不是個好主意。
+ 特別是 &man.init.8;, process ID 1,一個非常特別的程序。
+ 執行 <command>/bin/kill -s KILL 1</command>
+ 的結果就是系統立刻關機。 因此在您按下 <keycap>Return</keycap>
+ 要執行 &man.kill.1;<emphasis>之前</emphasis>,
+ 請<emphasis>一定</emphasis>要記得再次確認您下的參數。</para>
+ </important>
+ </sect1>
+
+ <sect1 xml:id="shells">
+ <title>Shells</title>
+ <indexterm><primary>shells</primary></indexterm>
+ <indexterm><primary>命令列 command line</primary></indexterm>
+
+ <para>在 FreeBSD 中,很多日常的工作是在一個叫做 shell
+ 的文字介面中完成的。
+ Shell 的主要工作就是從輸入中收到命令並執行它們。
+ 許多 shell 也有內建一些有助於日常工作的指令,
+ 像是檔案管理、檔案比對、命令列編輯、指令巨集以及環境變數等。
+ FreeBSD 有內附了幾個 shell,像是 <command>sh</command>,
+ Bourne Shell,以及 <command>tcsh</command>,改良版的 C-shell。
+ 還有許多其他的 shell 可以從 FreeBSD Ports Collection
+ 中取得,像是 <command>zsh</command> 以及 <command>bash</command>
+ 等。</para>
+
+ <para>您用哪個 shell 呢? 其實每個人的喜好都不一樣。
+ 如果您是一個 C 程式設計師,那對於使用像是 <command>tcsh</command>
+ 這種 C-like 的 shell 可能會感到相當愉快。 如果你是從 Linux
+ 跳過來的,或者您是一個 &unix; 新手,那您也許會想要用
+ <command>bash</command> 來當作文字介面。
+ 每一個 shell 都有自已獨特之處,至於這些特點能不能配合您的工作環境?
+ 那就是您選擇 shell 的重點了。</para>
+
+ <para>檔名自動補齊就是常見的 shell 功能。
+ 首先輸入指令或檔案的前幾個字母,這時通常您只需要按下 <keycap>Tab</keycap>
+ 鍵,接下來 shell 就會自動把指令或是檔案名稱剩餘的部份補齊。
+ 假設您有兩個檔案分別叫作 <filename>foobar</filename> 及
+ <filename>foo.bar</filename>。 現在要刪掉
+ <filename>foo.bar</filename>,那麼可以輸入:
+ <command>rm fo[Tab].[Tab]</command>
+ </para>
+
+ <para>Shell 會印出這個: <command>rm foo[嗶].bar</command>。</para>
+
+ <para>[嗶] 是 console 的響鈴,這嗶的一聲是 shell
+ 在告訴我說它沒有辦法完全自動補齊檔名,因為有不只一個檔名符合條件。
+ <filename>foobar</filename> 和 <filename>foo.bar</filename> 都是
+ <literal>fo</literal> 開頭的檔名,不過它至少可以補齊到 <literal>foo</literal>。
+ 如果您接著輸入 <literal>.</literal> 然後再按 <keycap>Tab</keycap>
+ 一次,那 shell 就能夠替您把剩下的檔名填滿了。</para>
+
+ <indexterm><primary>environment variables</primary></indexterm>
+
+ <para>Shell 的另一項特點是使用了環境變數。
+ 環境變數是以變數與鍵值(variable/key)的對應關係儲存於 shell
+ 的環境空間中,任何由 shell 所產生的程序都可以讀取此空間,
+ 因此這個空間儲存了許多程序的設定組態。 在此附上
+ 一份常見環境變數與其涵義的列表:</para>
+ <indexterm><primary>environment variables</primary></indexterm>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>變數</entry>
+ <entry>詳細說明</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><envar>USER</envar></entry>
+ <entry>目前登入的使用者名稱。</entry>
+ </row>
+
+ <row>
+ <entry><envar>PATH</envar></entry>
+ <entry>以冒號(:)隔開的目錄列表,用以搜尋執行檔的路徑。</entry>
+ </row>
+
+ <row>
+ <entry><envar>DISPLAY</envar></entry>
+ <entry>若存在這個環境變數,則代表 X11 連結顯示器的網路名稱。</entry>
+ </row>
+
+ <row>
+ <entry><envar>SHELL</envar></entry>
+ <entry>目前使用的 shell。</entry>
+ </row>
+
+ <row>
+ <entry><envar>TERM</envar></entry>
+ <entry>使用者終端機的名稱,能藉由此變數判斷終端機的能力。</entry>
+ </row>
+
+ <row>
+ <entry><envar>TERMCAP</envar></entry>
+ <entry>Database entry of the terminal escape codes to perform
+ various terminal functions.</entry>
+ </row>
+
+ <row>
+ <entry><envar>OSTYPE</envar></entry>
+ <entry>作業系統的種類,如:FreeBSD。</entry>
+ </row>
+
+ <row>
+ <entry><envar>MACHTYPE</envar></entry>
+ <entry>目前系統所用的 CPU 架構。</entry>
+ </row>
+
+ <row>
+ <entry><envar>EDITOR</envar></entry>
+ <entry>使用者偏好的文字編輯器。</entry>
+ </row>
+
+ <row>
+ <entry><envar>PAGER</envar></entry>
+ <entry>使用者偏好的文字分頁器(text pager)。</entry>
+ </row>
+
+ <row>
+ <entry><envar>MANPATH</envar></entry>
+ <entry>以冒號(:)隔開的目錄列表,用以搜尋 manual pages 的路徑。</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <indexterm><primary>Bourne shells</primary></indexterm>
+ <para>在不同的 shell 底下設定環境變數的方式也有所不同。
+ 舉例來說,在 C-Style 的 shell 底下,像是
+ <command>tcsh</command> 和 <command>csh</command>,你必須使用
+ <command>setenv</command> 來設定環境變數。
+ 但在 Bourne shells 底下,像是 <command>sh</command> 和
+ <command>bash</command>,你則必須使用
+ <command>export</command> 來設定你所使用的環境變數。
+ 再舉個例子來說,若要設定或是修改
+ <envar>EDITOR</envar> 這個環境變數,在 <command>csh</command> 或
+ <command>tcsh</command> 下設定 <envar>EDITOR</envar> 這個環境變數為
+ <filename>/usr/local/bin/emacs</filename> 的指令是:</para>
+
+ <screen>&prompt.user; <userinput>setenv EDITOR /usr/local/bin/emacs</userinput></screen>
+
+ <para>在 Bourne shells 下則是:</para>
+
+ <screen>&prompt.user; <userinput>export EDITOR="/usr/local/bin/emacs"</userinput></screen>
+
+ <para>大多數的 shell 都支援使用者在命令列中將
+ <literal>$</literal> 字元放在變數之前,以取得環境變數的值。
+ 舉例來說,<command>echo $TERM</command> 會
+ 顯示出 <envar>$TERM</envar> 的設定值,這是因為 shell 取得了
+ <envar>$TERM</envar> 的設定值,
+ 並將其傳給 <command>echo</command> 顯示出來。</para>
+
+ <para>Shell 中有某些特別的字元是來表示特殊的資料,我們將其稱作
+ meta-characters。 其中最常見的是
+ <literal>*</literal> 字元,他代表了檔名中的任意字元。
+ 這些特殊字元可以用在檔名展開(filename globbing)上,舉例來說,輸入
+ <command>echo *</command> 會和輸入
+ <command>ls</command> 得到幾乎相同的結果,這是因為 shell 會將所有符合
+ <literal>*</literal> 字元的檔案傳到命令列上,再由
+ <command>echo</command> 顯示出來。</para>
+
+ <para>為了避免 shell 轉譯這些特殊字元,我們可以在這些特殊字元前放一個反斜線
+ (<literal>\</literal>) 字元使他們跳脫(escape) shell 的轉譯。舉例來說,
+ <command>echo $TERM</command> 會印出你目前設定的終端機格式,
+ <command>echo \$TERM</command> 則會直接印出 <envar>$TERM</envar>
+ 這幾個字。</para>
+
+ <sect2 xml:id="changing-shells">
+ <title>變更你的 Shell</title>
+
+ <para>變更 shell 最簡單的方法就是透過 <command>chsh</command> 命令。
+ 執行 <command>chsh</command> 將會呼叫環境變數中 <envar>EDITOR</envar>
+ 指定的文字編輯器。 如果沒有設定,則預設是 <command>vi</command>。
+ 請依照需求去修改 <quote>Shell:</quote> 的值。</para>
+
+ <para>你也可以透過 <command>chsh</command> 的參數 <option>-s</option>,
+ 這可以直接設定你的 shell 而不需要透過任何文字編輯器。 例如,
+ 假設想把所用的 shell 改為 <command>bash</command>,
+ 可以透過下列的方式:</para>
+
+ <screen>&prompt.user; <userinput>chsh -s /usr/local/bin/bash</userinput></screen>
+
+ <note>
+ <para>你所使用的 shell <emphasis>必須</emphasis> 列於
+ <filename>/etc/shells</filename> 裡頭。 如果是由
+ <link linkend="ports">Ports Collection</link> 來裝 shell,
+ 那這個步驟已經完成了。 但若是手動安裝了一個 shell,
+ 那麼就必須為新安裝的 shell 進行設定。</para>
+
+ <para>舉例來說,若手動安裝了 <command>bash</command> 並將它置於
+ <filename>/usr/local/bin</filename> 底下,你還得:</para>
+
+ <screen>&prompt.root; <userinput>echo &quot;/usr/local/bin/bash&quot; &gt;&gt; /etc/shells</userinput></screen>
+
+ <para>然後再重新執行 <command>chsh</command>。</para>
+ </note>
+ </sect2>
+ </sect1>
+
+ <sect1 xml:id="editors">
+ <title>文字編輯器</title>
+ <indexterm><primary>text editors</primary></indexterm>
+ <indexterm><primary>editors</primary></indexterm>
+
+ <para>在 FreeBSD 中有許多設定必須透過編輯文字檔完成。
+ 因此,若能熟悉文字編輯器是再好不過的。
+ FreeBSD 本身(指 base system)就附有幾種文字編輯器,
+ 此外,你也可以透過 Ports Collection 來安裝其他的文字編輯器。</para>
+
+ <indexterm>
+ <primary><command>ee</command></primary>
+ </indexterm>
+ <indexterm>
+ <primary>editors</primary>
+ <secondary><command>ee</command></secondary>
+ </indexterm>
+ <para>最簡單易學的文字編輯器叫做 <application>ee</application>,
+ 代表了其全名 easy editor。 要開始使用 <application>ee</application>,
+ 必須在命令列上輸入
+ <command>ee filename</command>,
+ 這邊的 <replaceable>filename</replaceable> 代表你想要編輯的檔案名稱。
+ 舉例來說,要編輯 <filename>/etc/rc.conf</filename>,就要輸入
+ <command>ee /etc/rc.conf</command>。
+ 而在 <command>ee</command> 的操作介面下,
+ 所有編輯器的功能與操作都會顯示在螢幕的正上方。
+ 其中的插入符號(<literal>^</literal>)代表鍵盤上的 <keycap>Ctrl</keycap>
+ 鍵,所以 <literal>^e</literal> 就等同於
+ <keycombo action="simul"><keycap>Ctrl</keycap><keycap>e</keycap></keycombo>
+ 。 若要結束 <application>ee</application>,請按下 <keycap>Esc</keycap>
+ 鍵,接著選擇 leave editor 即可。
+ 此時如果該檔案有修改過,編輯器會提醒你是否要存檔。</para>
+
+ <indexterm>
+ <primary><command>vi</command></primary>
+ </indexterm>
+ <indexterm>
+ <primary>editors</primary>
+ <secondary><command>vi</command></secondary>
+ </indexterm>
+ <indexterm>
+ <primary><command>emacs</command></primary>
+ </indexterm>
+ <indexterm>
+ <primary>editors</primary>
+ <secondary><command>emacs</command></secondary>
+ </indexterm>
+
+ <para>此外,FreeBSD 也內附了幾個好用的文字編輯器,像是 base system 的
+ <application>vi</application> 及 FreeBSD Ports Collection 內的其他編輯器,
+ 比如 <application>Emacs</application> 及 <application>vim</application>
+ (<package>editors/emacs</package> 及
+ <package>editors/vim</package>)。
+ 這些文字編輯器提供更強的功能,但是也比較難學習。
+ 然而若要從事大量文字編輯工作,
+ 那麼花點時間來學習這些好用的編輯器,
+ 會在日後為您省下更多的時間。</para>
+ </sect1>
+
+ <sect1 xml:id="basics-devices">
+ <title>設備及設備節點</title>
+
+ <para>設備(device)主要是指跟硬體比較有關的術語,
+ 包括磁碟、印表機、顯示卡和鍵盤。 FreeBSD 開機過程當中,
+ 大多數硬體通常都能偵測到並顯示出來,也可以查閱
+ <filename>/var/run/dmesg.boot</filename> 內有開機的相關訊息。</para>
+
+ <para>舉例來說,<filename>acd0</filename>即為第一台 IDE 光碟機的代號,
+ 而 <filename>kbd0</filename> 則代表鍵盤。</para>
+
+ <para>在 &unix; 作業系統,
+ 大部分的設備都是透過叫做 device nodes(設備節點)的特殊檔案來作存取,
+ 而這些檔案都位於 <filename>/dev</filename> 目錄。</para>
+
+ <sect2>
+ <title>建立設備節點</title>
+ <para>若要在系統上建立新節點,或者是要編譯某些新硬體的支援軟體,
+ 那麼就要先新增設備節點。</para>
+
+ <sect3>
+ <title><literal>DEVFS</literal> (DEVice File System)</title>
+
+ <para>設備檔案系統(或稱為 <literal>DEVFS</literal>) 是指在整體檔案系統
+ namespace 提供 kernel 的設備 namespace。 <literal>DEVFS</literal>
+ 乃是維護這些檔案系統,而不能新增或修改這些設備節點。</para>
+
+ <para>細節請參閱 &man.devfs.5; 說明。</para>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1 xml:id="binary-formats">
+ <title>Binary 的格式</title>
+
+ <para>若要知道為何 &os; 是採用 &man.elf.5; 格式,必先瞭解當前 &unix;
+ 系統中三種<quote>影響最為重大</quote>的可執行檔相關背景:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>&man.a.out.5;</para>
+
+ <para>最古老、<quote>經典</quote> 的 &unix; object 檔格式。
+ It uses a short and compact header with a magic
+ number at the beginning that is often used to characterize
+ the format (see &man.a.out.5; for more details). It
+ contains three loaded segments: .text, .data, and .bss plus
+ a symbol table and a string table.</para>
+ </listitem>
+
+ <listitem>
+ <para><acronym>COFF</acronym></para>
+
+ <para>The SVR3 object format. The header now comprises a
+ section table, so you can have more than just .text, .data,
+ and .bss sections.</para>
+ </listitem>
+
+ <listitem>
+ <para>&man.elf.5;</para>
+
+ <para>The successor to <acronym>COFF</acronym>, featuring
+ multiple sections and 32-bit or 64-bit possible values. One
+ major drawback: <acronym>ELF</acronym> was also designed
+ with the assumption that there would be only one ABI per
+ system architecture. That assumption is actually quite
+ incorrect, and not even in the commercial SYSV world (which
+ has at least three ABIs: SVR4, Solaris, SCO) does it hold
+ true.</para>
+
+ <para>FreeBSD tries to work around this problem somewhat by
+ providing a utility for <emphasis>branding</emphasis> a
+ known <acronym>ELF</acronym> executable with information
+ about the ABI it is compliant with. See the manual page for
+ &man.brandelf.1; for more information.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>FreeBSD comes from the <quote>classic</quote> camp and used
+ the &man.a.out.5; format, a technology tried and proven through
+ many generations of BSD releases, until the beginning of the 3.X
+ branch. Though it was possible to build and run native
+ <acronym>ELF</acronym> binaries (and kernels) on a FreeBSD
+ system for some time before that, FreeBSD initially resisted the
+ <quote>push</quote> to switch to <acronym>ELF</acronym> as the
+ default format. Why? Well, when the Linux camp made their
+ painful transition to <acronym>ELF</acronym>, it was not so much
+ to flee the <filename>a.out</filename> executable format as it
+ was their inflexible jump-table based shared library mechanism,
+ which made the construction of shared libraries very difficult
+ for vendors and developers alike. Since the
+ <acronym>ELF</acronym> tools available offered a solution to the
+ shared library problem and were generally seen as <quote>the way
+ forward</quote> anyway, the migration cost was accepted as
+ necessary and the transition made. FreeBSD's shared library
+ mechanism is based more closely on Sun's
+ &sunos; style shared library mechanism
+ and, as such, is very easy to use.</para>
+
+ <para>So, why are there so many different formats?</para>
+
+ <para>Back in the dim, dark past, there was simple hardware. This
+ simple hardware supported a simple, small system. <filename>a.out</filename> was
+ completely adequate for the job of representing binaries on this
+ simple system (a PDP-11). As people ported &unix; from this simple
+ system, they retained the <filename>a.out</filename> format because it was sufficient
+ for the early ports of &unix; to architectures like the Motorola
+ 68k, VAXen, etc.</para>
+
+ <para>Then some bright hardware engineer decided that if he could
+ force software to do some sleazy tricks, then he would be able
+ to shave a few gates off the design and allow his CPU core to
+ run faster. While it was made to work with this new kind of
+ hardware (known these days as <acronym>RISC</acronym>), <filename>a.out</filename>
+ was ill-suited for this hardware, so many formats were developed
+ to get to a better performance from this hardware than the
+ limited, simple <filename>a.out</filename> format could
+ offer. Things like <acronym>COFF</acronym>,
+ <acronym>ECOFF</acronym>, and a few obscure others were invented
+ and their limitations explored before things seemed to settle on
+ <acronym>ELF</acronym>.</para>
+
+ <para>In addition, program sizes were getting huge and disks (and
+ physical memory) were still relatively small so the concept of a
+ shared library was born. The VM system also became more
+ sophisticated. While each one of these advancements was done
+ using the <filename>a.out</filename> format, its usefulness was
+ stretched more and more with each new feature. In addition,
+ people wanted to dynamically load things at run time, or to junk
+ parts of their program after the init code had run to save in
+ core memory and swap space. Languages became more sophisticated
+ and people wanted code called before main automatically. Lots of
+ hacks were done to the <filename>a.out</filename> format to
+ allow all of these things to happen, and they basically worked
+ for a time. In time, <filename>a.out</filename> was not up to
+ handling all these problems without an ever increasing overhead
+ in code and complexity. While <acronym>ELF</acronym> solved many
+ of these problems, it would be painful to switch from the system
+ that basically worked. So <acronym>ELF</acronym> had to wait
+ until it was more painful to remain with
+ <filename>a.out</filename> than it was to migrate to
+ <acronym>ELF</acronym>.</para>
+
+ <para>However, as time passed, the build tools that FreeBSD
+ derived their build tools from (the assembler and loader
+ especially) evolved in two parallel trees. The FreeBSD tree
+ added shared libraries and fixed some bugs. The GNU folks that
+ originally wrote these programs rewrote them and added simpler
+ support for building cross compilers, plugging in different
+ formats at will, and so on. Since many people wanted to build cross
+ compilers targeting FreeBSD, they were out of luck since the
+ older sources that FreeBSD had for <application>as</application> and <application>ld</application> were not up to the
+ task. The new GNU tools chain (<application>binutils</application>) does support cross
+ compiling, <acronym>ELF</acronym>, shared libraries, C++
+ extensions, etc. In addition, many vendors are releasing
+ <acronym>ELF</acronym> binaries, and it is a good thing for
+ FreeBSD to run them.</para>
+
+ <para><acronym>ELF</acronym> is more expressive than <filename>a.out</filename> and
+ allows more extensibility in the base system. The
+ <acronym>ELF</acronym> tools are better maintained, and offer
+ cross compilation support, which is important to many people.
+ <acronym>ELF</acronym> may be a little slower than <filename>a.out</filename>, but
+ trying to measure it can be difficult. There are also numerous
+ details that are different between the two in how they map
+ pages, handle init code, etc. None of these are very important,
+ but they are differences. In time support for
+ <filename>a.out</filename> will be moved out of the <filename>GENERIC</filename>
+ kernel, and eventually removed from the kernel once the need to
+ run legacy <filename>a.out</filename> programs is past.</para>
+ </sect1>
+
+ <sect1 xml:id="basics-more-information">
+ <title>更多資訊</title>
+
+ <sect2 xml:id="basics-man">
+ <title>Manual 線上說明</title>
+ <indexterm><primary>manual pages</primary></indexterm>
+
+ <para>在使用 FreeBSD 時,最詳細的使用說明莫過於 man 線上說明。
+ 幾乎各程式都會有附上簡短說明,以介紹該程式的基本功能跟相關參數用法。
+ 可以透過 <command>man</command> 指令來閱讀這些說明,而
+ <command>man</command> 指令的使用相當簡單易懂:</para>
+
+ <screen>&prompt.user; <userinput>man command</userinput></screen>
+
+ <para><literal>command</literal> 處就是想要知道的指令。 舉個例子,
+ 若要知道 <command>ls</command> 的詳細用法,就可以打:</para>
+
+ <screen>&prompt.user; <userinput>man ls</userinput></screen>
+
+ <para>而各線上說明因為性質不同,而區分為下列的數字章節:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>使用者指令。</para>
+ </listitem>
+
+ <listitem>
+ <para>系統呼叫(System call) 及錯誤代號。</para>
+ </listitem>
+
+ <listitem>
+ <para>C 語言函式庫。</para>
+ </listitem>
+
+ <listitem>
+ <para>各設備的驅動程式。</para>
+ </listitem>
+
+ <listitem>
+ <para>檔案格式。</para>
+ </listitem>
+
+ <listitem>
+ <para>小遊戲程式及其他娛樂程式。</para>
+ </listitem>
+
+ <listitem>
+ <para>雜項工具、其他資訊。</para>
+ </listitem>
+
+ <listitem>
+ <para>系統維護、操作的指令。</para>
+ </listitem>
+
+ <listitem>
+ <para>Kernel 開發用途。</para>
+ </listitem>
+ </orderedlist>
+
+ <para>有些情況會有同樣主題但不同章節。 舉個例子,系統內會有
+ <command>chmod</command> 指令,但也有 <function>chmod()</function>
+ 系統呼叫。 在這種情況,<command>man</command>
+ 應該要指定所要查詢的章節:</para>
+
+ <screen>&prompt.user; <userinput>man 1 chmod</userinput></screen>
+
+ <para>如此一來就會查 <command>chmod</command> 指令部分。
+ 通常在寫文件時會把有參考到某特定章節的 man 號碼也一併寫在括號內。
+ 所以 &man.chmod.1; 就是指 <command>chmod</command> 指令,而
+ &man.chmod.2; 則是指系統呼叫的部分。</para>
+
+ <para>如果您已經知道命令的名稱,只是不知道要怎樣使用的話,那就比較好辦。
+ 但若不知道要用哪個指令時,該怎麼辦呢? 這個時候,就可以利用
+ <command>man</command> 的搜尋關鍵字功能,
+ 以在各說明的介紹部分搜尋相關字眼。,它的選項是 <option>-k</option>:
+ </para>
+
+ <screen>&prompt.user; <userinput>man -k mail</userinput></screen>
+
+ <para>如此一來會看到一堆有 <quote>mail</quote> 關鍵字的說明,
+ 事實上該功能與 <command>apropos</command> 指令是一樣的。</para>
+
+ <para>而有時你會看到像是 <filename>/usr/bin</filename>
+ 有許多看起來頗炫的指令,但不知其用途? 只要簡單輸入:</para>
+
+ <screen>&prompt.user; <userinput>cd /usr/bin</userinput>
+&prompt.user; <userinput>man -f *</userinput></screen>
+
+ <para>或者是</para>
+
+ <screen>&prompt.user; <userinput>cd /usr/bin</userinput>
+&prompt.user; <userinput>whatis *</userinput></screen>
+
+ <para>這兩者的指令效果是一樣的。</para>
+ </sect2>
+
+ <sect2 xml:id="basics-info">
+ <title>GNU Info 檔案</title>
+ <indexterm><primary>Free Software Foundation</primary></indexterm>
+
+ <para>FreeBSD 有許多程式跟工具來自於自由軟體基金會(FSF)。 除了 man
+ 線上說明之外,這些程式提供了另外一種更具有彈性的 hypertext 格式文件,
+ 叫做 <literal>info</literal>。 可以用 <command>info</command>
+ 指令來閱讀,或者若有裝 <application>emacs</application> 亦可透過
+ <application>emacs</application> 的 info 模式閱讀。</para>
+
+ <para>要用 &man.info.1; 指令,只需打:</para>
+
+ <screen>&prompt.user; <userinput>info</userinput></screen>
+
+ <para>按 <literal>h</literal> 會有簡單說明,而若要快速查閱相關操作方式,
+ 則請按 <literal>?</literal>。</para>
+ </sect2>
+ </sect1>
+</chapter>
diff --git a/zh_TW.Big5/books/handbook/basics/example-dir1.dot b/zh_TW.UTF-8/books/handbook/basics/example-dir1.dot
index f259e8377d..f259e8377d 100644
--- a/zh_TW.Big5/books/handbook/basics/example-dir1.dot
+++ b/zh_TW.UTF-8/books/handbook/basics/example-dir1.dot
diff --git a/zh_TW.Big5/books/handbook/basics/example-dir2.dot b/zh_TW.UTF-8/books/handbook/basics/example-dir2.dot
index b846c82399..b846c82399 100644
--- a/zh_TW.Big5/books/handbook/basics/example-dir2.dot
+++ b/zh_TW.UTF-8/books/handbook/basics/example-dir2.dot
diff --git a/zh_TW.Big5/books/handbook/basics/example-dir3.dot b/zh_TW.UTF-8/books/handbook/basics/example-dir3.dot
index 178a3a91bb..178a3a91bb 100644
--- a/zh_TW.Big5/books/handbook/basics/example-dir3.dot
+++ b/zh_TW.UTF-8/books/handbook/basics/example-dir3.dot
diff --git a/zh_TW.Big5/books/handbook/basics/example-dir4.dot b/zh_TW.UTF-8/books/handbook/basics/example-dir4.dot
index 82d12b421a..82d12b421a 100644
--- a/zh_TW.Big5/books/handbook/basics/example-dir4.dot
+++ b/zh_TW.UTF-8/books/handbook/basics/example-dir4.dot
diff --git a/zh_TW.Big5/books/handbook/basics/example-dir5.dot b/zh_TW.UTF-8/books/handbook/basics/example-dir5.dot
index f5aa6e01dc..f5aa6e01dc 100644
--- a/zh_TW.Big5/books/handbook/basics/example-dir5.dot
+++ b/zh_TW.UTF-8/books/handbook/basics/example-dir5.dot
diff --git a/zh_TW.Big5/books/handbook/bibliography/Makefile b/zh_TW.UTF-8/books/handbook/bibliography/Makefile
index e1ac7fd2e2..e1ac7fd2e2 100644
--- a/zh_TW.Big5/books/handbook/bibliography/Makefile
+++ b/zh_TW.UTF-8/books/handbook/bibliography/Makefile
diff --git a/zh_TW.Big5/books/handbook/bibliography/chapter.xml b/zh_TW.UTF-8/books/handbook/bibliography/chapter.xml
index 7a46fa26b9..2cbfa7068a 100644
--- a/zh_TW.Big5/books/handbook/bibliography/chapter.xml
+++ b/zh_TW.UTF-8/books/handbook/bibliography/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
@@ -6,186 +6,186 @@
Original revision: 1.85
-->
<appendix xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="bibliography">
- <title>ѦҤm</title>
+ <title>參考文獻</title>
- <para>MuW(manual pages) &os; UӯSwTA
- ̫oKupǦӤjvѡAOpӨtιB@ZC ]A
- 䦳 &unix; tκ޲znѥHΦnϥΤUOiίʪC</para>
+ <para>雖然線上說明(manual pages)有提供 &os; 各個特定部分明確的說明,
+ 但它們卻難免有「小學而大遺」之憾,像是如何讓整個系統運作順暢。 因此,
+ 身邊有 &unix; 系統管理的好書以及好的使用手冊是不可或缺的。</para>
<sect1 xml:id="bibliography-freebsd">
- <title>FreeBSD yBx</title>
+ <title>FreeBSD 相關的書籍、雜誌</title>
- <para><emphasis>D^yyBxG</emphasis></para>
+ <para><emphasis>非英語的書籍、雜誌:</emphasis></para>
<itemizedlist>
<listitem>
- <para><link xlink:href="http://jdli.tw.FreeBSD.org/publication/book/freebsd2/index.htm">FreeBSD JP(лت)</link> (c餤)A
- <link xlink:href="http://www.drmaster.com.tw/">պӤ</link>
- A1997C ISBN 9-578-39435-7</para>
+ <para><link xlink:href="http://jdli.tw.FreeBSD.org/publication/book/freebsd2/index.htm">FreeBSD 入門與應用(光碟豪華版)</link> (繁體中文),
+ <link xlink:href="http://www.drmaster.com.tw/">博碩文化</link>
+ ,1997。 ISBN 9-578-39435-7</para>
</listitem>
<listitem>
- <para>FreeBSD ޳N (FreeBSD Unleashed ²餤Ķ)A
- <link xlink:href="http://www.hzbook.com/">u~X</link>
- C ISBN 7-111-10201-0
+ <para>FreeBSD 技術內幕 (FreeBSD Unleashed 簡體中譯版),
+ <link xlink:href="http://www.hzbook.com/">機械工業出版社</link>
+ 。 ISBN 7-111-10201-0
</para>
</listitem>
<listitem>
- <para>FreeBSD ϥΤjĤ@ (²餤)A
- u~XC ISBN 7-111-07482-3
+ <para>FreeBSD 使用大全第一版 (簡體中文),
+ 機械工業出版社。 ISBN 7-111-07482-3
</para>
</listitem>
<listitem>
- <para>FreeBSD ϥΤjĤG (²餤)A
- u~XC ISBN 7-111-10286-X
+ <para>FreeBSD 使用大全第二版 (簡體中文),
+ 機械工業出版社。 ISBN 7-111-10286-X
</para>
</listitem>
<listitem>
- <para>FreeBSD Handbook ĤG (²餤Ķ)A
- <link xlink:href="http://www.ptpress.com.cn/">HlqX</link>
- C ISBN 7-115-10541-3
+ <para>FreeBSD Handbook 第二版 (簡體中譯版),
+ <link xlink:href="http://www.ptpress.com.cn/">人民郵電出版社</link>
+ 。 ISBN 7-115-10541-3
</para>
</listitem>
<listitem>
- <para>FreeBSD 3.x Internet ŪAȾ[]P޲z (²餤)A
- <link xlink:href="http://www.tup.tsinghua.edu.cn/">MؤjǥX</link>
- C ISBN 7-900625-66-6</para>
+ <para>FreeBSD 3.x Internet 高級服務器的架設與管理 (簡體中文),
+ <link xlink:href="http://www.tup.tsinghua.edu.cn/">清華大學出版社</link>
+ 。 ISBN 7-900625-66-6</para>
</listitem>
<listitem>
- <para>FreeBSD &amp; Windows պ (²餤)A
- <link xlink:href="http://www.tdpress.com/">KDX</link>
- C ISBN 7-113-03845-X</para>
+ <para>FreeBSD &amp; Windows 集成組網實務 (簡體中文),
+ <link xlink:href="http://www.tdpress.com/">中國鐵道出版社</link>
+ 。 ISBN 7-113-03845-X</para>
</listitem>
<listitem>
- <para>FreeBSD [] (²餤)AKDX
- C ISBN 7-113-03423-3</para>
+ <para>FreeBSD 網站架設實務 (簡體中文),中國鐵道出版社
+ 。 ISBN 7-113-03423-3</para>
</listitem>
<listitem>
- <para>FreeBSD for PC 98'ers ()ASHUWA SystemCo, LTD
- C ISBN 4-87966-468-5 C3055 w 2900 C</para>
+ <para>FreeBSD for PC 98'ers (日文),SHUWA SystemCo, LTD
+ 。 ISBN 4-87966-468-5 C3055 定價 2900 日圓。</para>
</listitem>
<listitem>
- <para>FreeBSD ()ACUTTC ISBN 4-906391-22-2
- C3055 w 2400 C</para>
+ <para>FreeBSD (日文),CUTT。 ISBN 4-906391-22-2
+ C3055 定價 2400 日圓。</para>
</listitem>
<listitem>
- <para><link xlink:href="http://www.shoeisha.com/book/Detail.asp?bid=650">Complete Introduction to FreeBSD</link> ()A<link xlink:href="http://www.shoeisha.co.jp/">Shoeisha Co., Ltd</link>C ISBN 4-88135-473-6 w 3600 C</para>
+ <para><link xlink:href="http://www.shoeisha.com/book/Detail.asp?bid=650">Complete Introduction to FreeBSD</link> (日文),<link xlink:href="http://www.shoeisha.co.jp/">Shoeisha Co., Ltd</link>。 ISBN 4-88135-473-6 定價 3600 日圓。</para>
</listitem>
<listitem>
- <para><link xlink:href="http://www.ascii.co.jp/pb/book1/shinkan/detail/1322785.html">Personal UNIX Starter Kit FreeBSD</link> ()A <link xlink:href="http://www.ascii.co.jp/">ASCII</link>C ISBN 4-7561-1733-3 w 3000 C</para>
+ <para><link xlink:href="http://www.ascii.co.jp/pb/book1/shinkan/detail/1322785.html">Personal UNIX Starter Kit FreeBSD</link> (日文), <link xlink:href="http://www.ascii.co.jp/">ASCII</link>。 ISBN 4-7561-1733-3 定價 3000 日圓。</para>
</listitem>
<listitem>
- <para>FreeBSD Handbook (Ķ)A <link xlink:href="http://www.ascii.co.jp/">ASCII</link>C ISBN 4-7561-1580-2
- w 3800 C</para>
+ <para>FreeBSD Handbook (日文譯版), <link xlink:href="http://www.ascii.co.jp/">ASCII</link>。 ISBN 4-7561-1580-2
+ 定價 3800 日圓。</para>
</listitem>
<listitem>
- <para>FreeBSD mit Methode (w)A<link xlink:href="http://www.cul.de">Computer und
- Literatur Verlag</link>/Vertrieb HanserA1998C ISBN 3-932311-31-0</para>
+ <para>FreeBSD mit Methode (德文),<link xlink:href="http://www.cul.de">Computer und
+ Literatur Verlag</link>/Vertrieb Hanser,1998。 ISBN 3-932311-31-0</para>
</listitem>
<listitem>
<para><link xlink:href="http://www.cul.de/freebsd.html">FreeBSD 4 - Installieren, Konfigurieren, Administrieren</link>
- (w)A<link xlink:href="http://www.cul.de">Computer und Literatur Verlag</link>A2001C
+ (德文),<link xlink:href="http://www.cul.de">Computer und Literatur Verlag</link>,2001。
ISBN 3-932311-88-4</para>
</listitem>
<listitem>
<para><link xlink:href="http://www.cul.de/freebsd.html">FreeBSD 5 - Installieren, Konfigurieren, Administrieren</link>
- (w)A<link xlink:href="http://www.cul.de">Computer und Literatur Verlag</link>A2003C
+ (德文),<link xlink:href="http://www.cul.de">Computer und Literatur Verlag</link>,2003。
ISBN 3-936546-06-1</para>
</listitem>
<listitem>
<para><link xlink:href="http://www.mitp.de/vmi/mitp/detail/pWert/1343/">
- FreeBSD de Luxe</link> (w)A
- <link xlink:href="http://www.mitp.de">Verlag Modere Industrie</link>A
- 2003C ISBN 3-8266-1343-0</para>
+ FreeBSD de Luxe</link> (德文),
+ <link xlink:href="http://www.mitp.de">Verlag Modere Industrie</link>,
+ 2003。 ISBN 3-8266-1343-0</para>
</listitem>
<listitem>
<para><link xlink:href="http://www.pc.mycom.co.jp/FreeBSD/install-manual.html">FreeBSD
- Install and Utilization Manual</link> ()A<link xlink:href="http://www.pc.mycom.co.jp/">Mainichi Communications Inc.</link>
- A1998C ISBN 4-8399-0112-0</para>
+ Install and Utilization Manual</link> (日文),<link xlink:href="http://www.pc.mycom.co.jp/">Mainichi Communications Inc.</link>
+ ,1998。 ISBN 4-8399-0112-0</para>
</listitem>
<listitem>
<para>Onno W Purbo, Dodi Maryanto, Syahrial Hubbany, Widjil Widodo
<emphasis><link xlink:href="http://maxwell.itb.ac.id/">
Building Internet Server with
- FreeBSD</link></emphasis> (L)A<link xlink:href="http://www.elexmedia.co.id/">Elex Media Komputindo</link>C</para>
+ FreeBSD</link></emphasis> (印尼文),<link xlink:href="http://www.elexmedia.co.id/">Elex Media Komputindo</link>。</para>
</listitem>
<listitem>
- <para>FreeBSD (Absolute BSD: The Ultimate Guide to FreeBSD
- c餤Ķ)A<link xlink:href="http://www.grandtech.com.tw/">W_</link>A2003C
+ <para>FreeBSD 完全探索 (Absolute BSD: The Ultimate Guide to FreeBSD
+ 繁體中文譯版),<link xlink:href="http://www.grandtech.com.tw/">上奇</link>,2003。
ISBN 986-7944-92-5</para>
</listitem>
<listitem>
- <para><link xlink:href="http://www.twbsd.org/cht/book/">FreeBSD 6.0[]޲zP</link>
- (c餤)AպӡA2006CISBN 9-575-27878-X</para>
+ <para><link xlink:href="http://www.twbsd.org/cht/book/">FreeBSD 6.0架設管理與應用</link>
+ (繁體中文),博碩,2006。ISBN 9-575-27878-X</para>
</listitem>
</itemizedlist>
- <para><emphasis>^媺yBxG</emphasis></para>
+ <para><emphasis>英文的書籍、雜誌:</emphasis></para>
<itemizedlist>
<listitem>
<para><link xlink:href="http://www.AbsoluteBSD.com/">Absolute
- BSD: The Ultimate Guide to FreeBSD</link>A
- <link xlink:href="http://www.nostarch.com/">No Starch Press</link>A2002C
+ BSD: The Ultimate Guide to FreeBSD</link>,
+ <link xlink:href="http://www.nostarch.com/">No Starch Press</link>,2002。
ISBN: 1886411743</para>
</listitem>
<listitem>
<para><link xlink:href="http://www.freebsdmall.com/cgi-bin/fm/bsdcomp">
- The Complete FreeBSD</link>A
- <link xlink:href="http://www.oreilly.com/">O'Reilly</link>A2003C
+ The Complete FreeBSD</link>,
+ <link xlink:href="http://www.oreilly.com/">O'Reilly</link>,2003。
ISBN: 0596005164</para>
</listitem>
<listitem>
<para><link xlink:href="http://www.freebsd-corp-net-guide.com/">The
- FreeBSD Corporate Networker's Guide</link>A
- <link xlink:href="http://www.awl.com/aw/">Addison-Wesley</link>A2000C
+ FreeBSD Corporate Networker's Guide</link>,
+ <link xlink:href="http://www.awl.com/aw/">Addison-Wesley</link>,2000。
ISBN: 0201704811</para>
</listitem>
<listitem>
<para><link xlink:href="http://andrsn.stanford.edu/FreeBSD/introbook/">
FreeBSD: An Open-Source Operating System for Your Personal
- Computer</link>AThe Bit Tree PressA2001C
+ Computer</link>,The Bit Tree Press,2001。
ISBN: 0971204500</para>
</listitem>
<listitem>
- <para>Teach Yourself FreeBSD in 24 HoursA
- <link xlink:href="http://www.samspublishing.com/">Sams</link>A2002C
+ <para>Teach Yourself FreeBSD in 24 Hours,
+ <link xlink:href="http://www.samspublishing.com/">Sams</link>,2002。
ISBN: 0672324245</para>
</listitem>
<listitem>
- <para>FreeBSD 6 UnleashedA
- <link xlink:href="http://www.samspublishing.com/">Sams</link>A2006C
+ <para>FreeBSD 6 Unleashed,
+ <link xlink:href="http://www.samspublishing.com/">Sams</link>,2006。
ISBN: 0672328755</para>
</listitem>
<listitem>
- <para>FreeBSD: The Complete ReferenceA
- <link xlink:href="http://books.mcgraw-hill.com">McGrawHill</link>A2003C
+ <para>FreeBSD: The Complete Reference,
+ <link xlink:href="http://books.mcgraw-hill.com">McGrawHill</link>,2003。
ISBN: 0072224096 </para>
</listitem>
@@ -193,7 +193,7 @@
</sect1>
<sect1 xml:id="bibliography-userguides">
- <title>ϥλU</title>
+ <title>使用說明手冊</title>
<itemizedlist>
<listitem>
@@ -221,30 +221,30 @@
<listitem>
<para><link xlink:href="http://www.osu.edu/">Ohio State University</link>
- g <link xlink:href="http://8help.osu.edu/wks/unix_course/index.html">UNIX
- Ъҵ{</link>Aô HTML PostScript خ榡ѤHsC
+ 有撰寫 <link xlink:href="http://8help.osu.edu/wks/unix_course/index.html">UNIX
+ 介紹的課程</link>,並提供 HTML 或 PostScript 兩種格式供人瀏覽。
</para>
- <para>UNIX Ъ<link xlink:href="&url.doc.base;/it_IT.ISO8859-15/books/unix-introduction/index.html">qjQ½Ķ</link>
- APɥ]O FreeBSD Italian Documentation Project @C</para>
+ <para>UNIX 介紹的<link xlink:href="&url.doc.base;/it_IT.ISO8859-15/books/unix-introduction/index.html">義大利文翻譯版</link>
+ ,同時本文件也是 FreeBSD Italian Documentation Project 之一。</para>
</listitem>
<listitem>
<para><link xlink:href="http://www.jp.FreeBSD.org/">Jpman Project, Japan
FreeBSD Users Group</link>. <link xlink:href="http://www.pc.mycom.co.jp/FreeBSD/urm.html">FreeBSD User's
- Reference Manual</link> (½Ķ)C <link xlink:href="http://www.pc.mycom.co.jp/">Mainichi Communications
+ Reference Manual</link> (日文翻譯)。 <link xlink:href="http://www.pc.mycom.co.jp/">Mainichi Communications
Inc.</link>, 1998. ISBN4-8399-0088-4 P3800E.</para>
</listitem>
<listitem>
<para><link xlink:href="http://www.ed.ac.uk/">Edinburgh
- University</link> UNIX sҼg <link xlink:href="http://unixhelp.ed.ac.uk/">Online Guide</link> ޻C</para>
+ University</link> 為 UNIX 新手所撰寫的 <link xlink:href="http://unixhelp.ed.ac.uk/">Online Guide</link> 指引說明。</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="bibliography-adminguides">
- <title>tκ޲zn</title>
+ <title>系統管理指南</title>
<itemizedlist>
<listitem>
@@ -290,20 +290,20 @@
<listitem>
<para><link xlink:href="http://www.jp.FreeBSD.org/">Jpman Project, Japan
FreeBSD Users Group</link>. <link xlink:href="http://www.pc.mycom.co.jp/FreeBSD/sam.html">FreeBSD System
- Administrator's Manual</link> (½Ķ)C <link xlink:href="http://www.pc.mycom.co.jp/">Mainichi Communications
+ Administrator's Manual</link> (日文翻譯)。 <link xlink:href="http://www.pc.mycom.co.jp/">Mainichi Communications
Inc.</link>, 1998. ISBN4-8399-0109-0 P3300E.</para>
</listitem>
<listitem>
<para>Dreyfus, Emmanuel. <link xlink:href="http://www.eyrolles.com/Informatique/Livre/9782212114638/">Cahiers
- de l'Admin: BSD</link> 2nd Ed. (k), Eyrolles, 2004.
+ de l'Admin: BSD</link> 2nd Ed. (法文), Eyrolles, 2004.
ISBN 2-212-11463-X</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="bibliography-programmers">
- <title>{]pvn</title>
+ <title>程式設計師指南</title>
<itemizedlist>
<listitem>
@@ -381,7 +381,7 @@
</sect1>
<sect1 xml:id="bibliography-osinternals">
- <title>`J@~t</title>
+ <title>深入作業系統</title>
<itemizedlist>
<listitem>
@@ -416,9 +416,9 @@
4.4BSD Operating System</emphasis>. Reading, Mass. :
Addison-Wesley, 1996. ISBN 0-201-54979-4</para>
- <para>(ѲĤG <link xlink:href="&url.books.design-44bsd;/book.html"></link> O
- FreeBSD p@AHβĤEiHb <link xlink:href="http://www.netapp.com/tech_library/nfsbook.html">
- o</link>)</para>
+ <para>(本書第二章的 <link xlink:href="&url.books.design-44bsd;/book.html">網路版</link> 是
+ FreeBSD 文件計劃的一部份,以及第九章的部分可以在 <link xlink:href="http://www.netapp.com/tech_library/nfsbook.html">
+ 這邊</link>找到)</para>
</listitem>
<listitem>
@@ -461,7 +461,7 @@
</sect1>
<sect1 xml:id="bibliography-security">
- <title>w쪺ѦҤm</title>
+ <title>資安領域的參考文獻</title>
<itemizedlist>
<listitem>
@@ -487,7 +487,7 @@
</sect1>
<sect1 xml:id="bibliography-hardware">
- <title>w譱ѦҤm</title>
+ <title>硬體方面的參考文獻</title>
<itemizedlist>
<listitem>
@@ -503,8 +503,8 @@
</listitem>
<listitem>
- <para>Intel Corporation q`|H PDF 榡b <link xlink:href="http://developer.intel.com/">developer web site</link>
- L̪ CPUBաBзǪWѤC</para>
+ <para>Intel Corporation 通常會以 PDF 格式在 <link xlink:href="http://developer.intel.com/">developer web site</link>
+ 網站放他們的 CPU、晶片組、相關標準的規格書文件。</para>
</listitem>
<listitem>
@@ -542,7 +542,7 @@
</sect1>
<sect1 xml:id="bibliography-history">
- <title>&unix; vW</title>
+ <title>&unix; 歷史淵源</title>
<itemizedlist>
<listitem>
@@ -578,10 +578,10 @@
</listitem>
<listitem>
- <para><emphasis>BSD </emphasis>G
+ <para><emphasis>BSD 族譜</emphasis>:
<uri xlink:href="http://www.FreeBSD.org/cgi/cvsweb.cgi/src/share/misc/bsd-family-tree">http://www.FreeBSD.org/cgi/cvsweb.cgi/src/share/misc/bsd-family-tree</uri>
- FreeBSD <link xlink:href="file://localhost/usr/share/misc/bsd-family-tree"><filename>/usr/share/misc/bsd-family-tree</filename></link>
- C</para>
+ 或 FreeBSD 機器內的 <link xlink:href="file://localhost/usr/share/misc/bsd-family-tree"><filename>/usr/share/misc/bsd-family-tree</filename></link>
+ 。</para>
</listitem>
<listitem>
@@ -606,7 +606,7 @@
</sect1>
<sect1 xml:id="bibliography-journals">
- <title>xBZ</title>
+ <title>雜誌、期刊</title>
<itemizedlist>
<listitem>
@@ -622,7 +622,7 @@
<listitem>
<para><emphasis>freeX &mdash; Das Magazin f&uuml;r Linux - BSD - UNIX</emphasis>
- (w) Computer- und Literaturverlag GmbH, ISSN 1436-7033</para>
+ (德文) Computer- und Literaturverlag GmbH, ISSN 1436-7033</para>
</listitem>
</itemizedlist>
diff --git a/zh_TW.Big5/books/handbook/book.xml b/zh_TW.UTF-8/books/handbook/book.xml
index b8226df00e..b6fa191bcf 100644
--- a/zh_TW.Big5/books/handbook/book.xml
+++ b/zh_TW.UTF-8/books/handbook/book.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd" [
<!ENTITY % chapters SYSTEM "chapters.ent">
@@ -13,10 +13,10 @@
Original revision: 1.163
-->
<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="zh_TW">
- <info><title>FreeBSD ϥΤU</title>
+ <info><title>FreeBSD 使用手冊</title>
- <author><orgname>FreeBSD pe</orgname></author>
+ <author><orgname>FreeBSD 文件計畫</orgname></author>
<pubdate>February 1999</pubdate>
@@ -37,7 +37,7 @@
<year>2006</year>
<year>2007</year>
<year>2008</year>
- <holder>FreeBSD pe</holder>
+ <holder>FreeBSD 文件計畫</holder>
</copyright>
&legalnotice;
@@ -85,20 +85,20 @@
</legalnotice>
<abstract>
- <para>wϥFreeBSDI ϥΤU[\d]AF
- <emphasis>FreeBSD &rel2.current;-RELEASE</emphasis> M
- <emphasis>FreeBSD &rel.current;-RELEASE</emphasis> w˩M`ϥΡC
- oϥΤUOܦhHЧ@AӥBMy_zi椤C
- \h`Aw]ǻݭnsC
- pGzUpeܡAбH e-mail &a.doc;C
- b <link xlink:href="http://www.FreeBSD.org/">FreeBSD </link>
- iHo󪺳̷s(ªiq <uri xlink:href="http://docs.FreeBSD.org/doc/">http://docs.FreeBSD.org/doc/</uri> o)A]iHq <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">FreeBSD FTP A</link>
- άOh <link linkend="mirrors-ftp">mirror O</link>
- UP榡ơC
- pGnѭơAiHb
- <link xlink:href="http://www.freebsdmall.com/">FreeBSD Mall</link> ʶRC
- ~A]iHb <link xlink:href="&url.base;/search/index.html">ϥΤU</link>
- jMơC
+ <para>歡迎使用FreeBSD! 本使用手冊涵蓋範圍包括了
+ <emphasis>FreeBSD &rel2.current;-RELEASE</emphasis> 和
+ <emphasis>FreeBSD &rel.current;-RELEASE</emphasis> 的安裝和日常使用。
+ 這份使用手冊是很多人的集體創作,而且仍然『持續不斷』的進行中。
+ 許多章節仍未完成,已完成的部份也有些需要更新。
+ 如果您有興趣協助本計畫的話,請寄 e-mail 到 &a.doc;。
+ 在 <link xlink:href="http://www.FreeBSD.org/">FreeBSD 網站</link>
+ 可以找到這份文件的最新版本(舊版文件可從 <uri xlink:href="http://docs.FreeBSD.org/doc/">http://docs.FreeBSD.org/doc/</uri> 取得),也可以從 <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">FreeBSD FTP 伺服器</link>
+ 或是眾多 <link linkend="mirrors-ftp">mirror 站臺</link>
+ 下載不同格式的資料。
+ 如果比較偏好實體書面資料,那可以在
+ <link xlink:href="http://www.freebsdmall.com/">FreeBSD Mall</link> 購買。
+ 此外,也可以在 <link xlink:href="&url.base;/search/index.html">使用手冊</link>
+ 中搜尋資料。
</para>
</abstract>
</info>
@@ -106,36 +106,36 @@
&chap.preface;
<part xml:id="getting-started">
- <title>}lϥ FreeBSD </title>
+ <title>開始使用 FreeBSD </title>
<partintro>
- <para>oOѵ즸ϥ FreeBSD ϥΪ̩Mtκ޲z̡C
- odz`]AG</para>
+ <para>這部份是提供給初次使用 FreeBSD 的使用者和系統管理者。
+ 這些章節包括:</para>
<itemizedlist>
<listitem>
- <para> FreeBSD zC </para>
+ <para>介紹 FreeBSD 給您。 </para>
</listitem>
<listitem>
- <para>bw˹L{zޡC </para>
+ <para>在安裝過程給您指引。 </para>
</listitem>
<listitem>
- <para>бz &unix; ¦έzC </para>
+ <para>教您 &unix; 的基礎及原理。 </para>
</listitem>
<listitem>
- <para>iܵzݦpw״I FreeBSD γn</para>
+ <para>展示給您看如何安裝豐富的 FreeBSD 的應用軟體</para>
</listitem>
<listitem>
- <para>Vz XA &unix; tΥHθԲӪୱҳ]wAz󦳥ͲOC
+ <para>向您介紹 X, &unix; 的視窗系統以及詳細的桌面環境設定,讓您更有生產力。
</para>
</listitem>
</itemizedlist>
- <para>ڭ̸յ۾i઺oqrѦҳsƥح̧CAzbŪϥΤUoɥiHӻݭn``e½C
+ <para>我們試著儘可能的讓這段文字的參考連結數目降到最低,讓您在讀使用手冊的這部份時可以不太需要常常前後翻頁。
</para>
</partintro>
@@ -147,36 +147,36 @@
</part>
<part xml:id="common-tasks">
- <title>@ʤu@</title>
+ <title>一般性工作</title>
<partintro>
- <para>JM¦wgLFAUӪoӳN|Qפ@DZ`|Ψ쪺 FreeBSD
- SAodz`]AG</para>
+ <para>既然基礎的部分已經提過了,接下來的這個部分將會討論一些常會用到的 FreeBSD
+ 的特色,這些章節包括:</para>
<itemizedlist>
<listitem>
- <para>еz`BΪୱγnGsBͲOuB˵{C</para>
+ <para>介紹給您常見且實用的桌面應用軟體:網頁瀏覽器、生產力工具、文件檢視程式等。</para>
</listitem>
<listitem>
- <para>еzh FreeBSD WiΪhCuC</para>
+ <para>介紹給您眾多 FreeBSD 上可用的多媒體工具。</para>
</listitem>
<listitem>
- <para>psĶۭq FreeBSD ֤ߥHW[B~tΥ\઺y{C</para>
+ <para>解釋如何編譯自訂 FreeBSD 核心以增加額外系統功能的流程。</para>
</listitem>
<listitem>
- <para>ԲӴyzCLtΡA]tWLκL]wC</para>
+ <para>詳細描述列印系統,包含桌上型印表機及網路印表機的設定。</para>
</listitem>
<listitem>
- <para>iܵzݦpbz FreeBSD tΤ Linux γnC</para>
+ <para>展示給您看如何在您的 FreeBSD 系統中執行 Linux 應用軟體。</para>
</listitem>
</itemizedlist>
- <para>odz`ǻݭnzw\ŪǬAbU`}Yn|ΡC</para>
+ <para>這些章節中有些需要您預先閱讀些相關文件,在各章節開頭的概要內會提及。</para>
</partintro>
@@ -188,15 +188,15 @@
</part>
<part xml:id="system-administration">
- <title>tκ޲z</title>
+ <title>系統管理</title>
<partintro>
- <para>FreeBSD ϥΤUѤUodz`[\F쪺 FreeBSD tκ޲zC
- Cӳ`}Y|yzbӱzŪӳ`z|Ǩ줰A]|ԭzbzbݳoǸƮӭn@ǭIѡC
+ <para>FreeBSD 使用手冊剩下的這些章節涵蓋了全方位的 FreeBSD 系統管理。
+ 每個章節的開頭會先描述在該您讀完該章節後您會學到什麼,也會詳述在您在看這些資料時應該要有的一些背景知識。
</para>
- <para>odz`Ozbݭndƪɭ½\ΪC
- zݭn̷ӯSwǨŪA]ݭnNodz`LŪ~}l FreeBSDC
+ <para>這些章節是讓您在需要查資料的時候翻閱用的。
+ 您不需要依照特定的順序來讀,也不需要將這些章節全部過讀之後才開始用 FreeBSD。
</para>
</partintro>
@@ -216,39 +216,39 @@
</part>
<part xml:id="network-communication">
- <title>qT</title>
+ <title>網路通訊</title>
<partintro>
- <para>FreeBSD O@ؼsxQϥΦbį઺A@~tΡAodz`]tFG</para>
+ <para>FreeBSD 是一種廣泛的被使用在高效能的網路伺服器中的作業系統,這些章節包含了:</para>
<itemizedlist>
<listitem>
- <para>ǦCqT</para>
+ <para>序列埠通訊</para>
</listitem>
<listitem>
- <para>PPP M PPPoE</para>
+ <para>PPP 和 PPPoE</para>
</listitem>
<listitem>
- <para>qll</para>
+ <para>電子郵件</para>
</listitem>
<listitem>
- <para>A{</para>
+ <para>執行網路伺服程式</para>
</listitem>
<listitem>
- <para></para>
+ <para>防火牆</para>
</listitem>
<listitem>
- <para>LiDD</para>
+ <para>其他的進階網路主題</para>
</listitem>
</itemizedlist>
- <para>odz`Ozbݭndƪɭ½\ΪC
- zݭn̷ӯSwǨŪA]ݭnNodz`ŪL~N FreeBSD ΦbҤUC</para>
+ <para>這些章節是讓您在需要查資料的時候翻閱用的。
+ 您不需要依照特定的順序來讀,也不需要將這些章節全部讀過之後才將 FreeBSD 用在網路環境下。</para>
</partintro>
&chap.serialcomms;
@@ -261,7 +261,7 @@
</part>
<part xml:id="appendices">
- <title></title>
+ <title>附錄</title>
&chap.mirrors;
&chap.bibliography;
diff --git a/zh_TW.Big5/books/handbook/boot/Makefile b/zh_TW.UTF-8/books/handbook/boot/Makefile
index c405bb50c6..c405bb50c6 100644
--- a/zh_TW.Big5/books/handbook/boot/Makefile
+++ b/zh_TW.UTF-8/books/handbook/boot/Makefile
diff --git a/zh_TW.Big5/books/handbook/boot/chapter.xml b/zh_TW.UTF-8/books/handbook/boot/chapter.xml
index 98ccd8ec97..ae4ce38477 100644
--- a/zh_TW.Big5/books/handbook/boot/chapter.xml
+++ b/zh_TW.UTF-8/books/handbook/boot/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
@@ -6,10 +6,10 @@
Original revision: 1.62
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="boot">
- <title>FreeBSD }y{g</title>
+ <title>FreeBSD 開機流程篇</title>
<sect1 xml:id="boot-synopsis">
- <title>z</title>
+ <title>概述</title>
<indexterm><primary>booting</primary></indexterm>
<indexterm><primary>bootstrap</primary></indexterm>
@@ -27,7 +27,7 @@
started &man.init.8;. If you are not quite sure when this happens, it
occurs when the text color changes from bright white to grey.</para>
- <para>ŪoAzNFѡG</para>
+ <para>讀完這章,您將了解:</para>
<itemizedlist>
<listitem>
@@ -41,7 +41,7 @@
</listitem>
<listitem>
- <para>&man.device.hints.5; 򥻷C</para>
+ <para>&man.device.hints.5; 的基本概念。</para>
</listitem>
</itemizedlist>
@@ -54,7 +54,7 @@
</sect1>
<sect1 xml:id="boot-introduction">
- <title>Booting D</title>
+ <title>Booting 問題</title>
<para>Turning on a computer and starting the operating system poses an
interesting dilemma. By definition, the computer does not know how to
diff --git a/zh_TW.Big5/books/handbook/chapters.ent b/zh_TW.UTF-8/books/handbook/chapters.ent
index a04a2211ae..fc0c4577d0 100644
--- a/zh_TW.Big5/books/handbook/chapters.ent
+++ b/zh_TW.UTF-8/books/handbook/chapters.ent
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
Creates entities for each chapter in the FreeBSD Handbook. Each entity
is named chap.foo, where foo is the value of the id attribute on that
diff --git a/zh_TW.Big5/books/handbook/colophon.xml b/zh_TW.UTF-8/books/handbook/colophon.xml
index 11610d6581..0ded28baa5 100644
--- a/zh_TW.Big5/books/handbook/colophon.xml
+++ b/zh_TW.UTF-8/books/handbook/colophon.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
diff --git a/zh_TW.Big5/books/handbook/config/Makefile b/zh_TW.UTF-8/books/handbook/config/Makefile
index 2d81feca5e..2d81feca5e 100644
--- a/zh_TW.Big5/books/handbook/config/Makefile
+++ b/zh_TW.UTF-8/books/handbook/config/Makefile
diff --git a/zh_TW.Big5/books/handbook/config/chapter.xml b/zh_TW.UTF-8/books/handbook/config/chapter.xml
index 2c3e0097bc..07b0409d8b 100644
--- a/zh_TW.Big5/books/handbook/config/chapter.xml
+++ b/zh_TW.UTF-8/books/handbook/config/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
@@ -7,7 +7,7 @@
Chased revision: 1.221
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="config-tuning">
- <info><title>]wPįծ(Tuning)</title>
+ <info><title>設定與效能調校(Tuning)</title>
<authorgroup>
<author><personname><firstname>Chern</firstname><surname>Lee</surname></personname><contrib>Written by </contrib></author>
</authorgroup>
@@ -22,59 +22,59 @@
<sect1 xml:id="config-synopsis">
- <title>z</title>
+ <title>概述</title>
<indexterm><primary>system configuration</primary></indexterm>
<indexterm><primary>system optimization</primary></indexterm>
- <para>b &os; ϥιL{A۷n`@NOtγ]wC
- Ttγ]wAiHAɯŪYhOC
- ۭ󤶲 &os; n]wWA]A@ǥiHվ &os; į઺ѼƳ]wC
+ <para>在 &os; 使用過程中,相當重要的環節之一就是系統設定部分。
+ 正確的系統設定,可以讓你減輕日後升級的頭痛壓力。
+ 本章著重於介紹 &os; 的相關重要設定上,包括一些可以調整 &os; 效能的參數設定。
</para>
- <para>ŪoAzNFѡG</para>
+ <para>讀完這章,您將了解:</para>
<itemizedlist>
<listitem>
- <para>p󦳮ĹBɮרtΥH swap ΰϡC</para>
+ <para>如何有效運用檔案系統以及 swap 分割區。</para>
</listitem>
<listitem>
- <para><filename>rc.conf</filename> ]wP <filename>/usr/local/etc/rc.d</filename> Ұʬ[cC</para>
+ <para><filename>rc.conf</filename> 的設定與 <filename>/usr/local/etc/rc.d</filename> 的啟動架構。</para>
</listitem>
<listitem>
- <para>p]wBպdC</para>
+ <para>如何設定、測試網路卡。</para>
</listitem>
<listitem>
- <para>p]w virtual hostsC</para>
+ <para>如何設定 virtual hosts。</para>
</listitem>
<listitem>
- <para>p]w <filename>/etc</filename> Uس]wɡC</para>
+ <para>如何設定 <filename>/etc</filename> 內的各種設定檔。</para>
</listitem>
<listitem>
- <para>pH <command>sysctl</command> ӽվ &os; tήįC</para>
+ <para>如何以 <command>sysctl</command> 來調整 &os; 的系統效能。</para>
</listitem>
<listitem>
- <para>pվwЮįAHΧ kernel C</para>
+ <para>如何調整硬碟效能,以及更改 kernel 限制。</para>
</listitem>
</itemizedlist>
- <para>b}l\ŪoeAzݭnJ</para>
+ <para>在開始閱讀這章之前,您需要︰</para>
<itemizedlist>
<listitem>
- <para>A &unix; &os; 򥻷(<xref linkend="basics"/>)C</para>
+ <para>瞭解 &unix; 及 &os; 相關基本概念(<xref linkend="basics"/>)。</para>
</listitem>
<listitem>
- <para>n]wBsĶ kernel ¦(<xref linkend="kernelconfig"/>)C</para>
+ <para>要有設定、編譯 kernel 的基礎概念(<xref linkend="kernelconfig"/>)。</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="configtuning-initial">
- <title>@}lW</title>
+ <title>一開始的規劃</title>
<sect2>
- <title>Wΰ(Partition)</title>
+ <title>規劃分割區(Partition)</title>
<indexterm><primary>partition layout</primary></indexterm>
<indexterm>
@@ -90,68 +90,68 @@
<sect3>
<title>Base Partitions</title>
- <para> &man.bsdlabel.8; &man.sysinstall.8; ӳWɮרtήɡAаOG
- wЦbǿƤ譱A(ѩ󵲺cФ])~|񤺰ӱo֨ǡC
- ]AijpB`|sΰϾq~AӸjΰϹO
- <filename>/usr</filename> hbC
- ijإߤΰϪǡAHOGroot, swap,
- <filename>/var</filename>, <filename>/usr</filename> o˶Ǩӫإ߷|C</para>
+ <para>用 &man.bsdlabel.8; 或 &man.sysinstall.8; 來規劃檔案系統時,請記住:
+ 硬碟在傳輸資料方面,(由於結構為碟片因素)外圈會比內圈來得快些。
+ 因此,建議把較小、常會存取的分割區儘量放外圈,而較大的分割區像是
+ <filename>/usr</filename> 則應放在較內圈。
+ 建議建立分割區的順序,以像是:root, swap,
+ <filename>/var</filename>, <filename>/usr</filename> 這樣順序來建立會較妥。</para>
- <para><filename>/var</filename> jpnγ~өwC
- <filename>/var</filename> OΨө
- HcBlog ɥHΦLC(spools)C HcHΰOɪTץiLkwA
- ]oǦTפDOMh֥ΤBnh[޲zhөwC
- q`oǨϥΪ̨èSΨ 1 GB HWAФOGܤ֭nOd@wŶ <filename>/var/tmp</filename>
- HKs packagesC
+ <para><filename>/var</filename> 的大小要視機器的用途而定。
+ <filename>/var</filename> 是用來放
+ 信箱、log 紀錄檔以及印表機佇列(spools)。 信箱以及記錄檔的成長幅度可能無法預估,
+ 因為這些成長幅度乃是取決於多少用戶、要放多久等管理原則而定。
+ 通常這些使用者並沒有用到 1 GB 以上,但請切記:至少要保留一定空間給 <filename>/var/tmp</filename>
+ 以便存放 packages。
</para>
- <para> <filename>/usr</filename> ΰϥDnOΨөtιB@ɩһݪɮסBu{AҦpG
- &man.ports.7; collection(ijw) source tree(optional)C
- bw FreeBSD ɡAo̳Oiܸ˻P˪C
- LAoӤΰϫijܤ֭n 2 GB ŶHW~ΡC</para>
+ <para>而 <filename>/usr</filename> 分割區主要是用來放系統運作時所需的檔案、工具程式等,例如:
+ &man.ports.7; collection(建議安裝)跟 source tree(optional)。
+ 在安裝 FreeBSD 時,這兩者都是可選擇裝與不裝的。
+ 不過,這個分割區建議至少要有 2 GB 空間以上才夠用。</para>
- <para>WΰϤjpɡAOohOdǦŶC
- _hYYӤΰϺFAt@ӤΰϫoٳѫܦhŶAN|۷x~C</para>
+ <para>規劃分割區大小時,記得多保留些成長空間。
+ 否則若某個分割區滿了,但另一個分割區卻還剩很多空間,就會相當困窘。</para>
- <note><para>ǤHi|o{ &man.sysinstall.8;
- <literal>Auto-defaults(۰ʹw])</literal> ҰΰϤjpA
- ɭԷ| <filename>/var</filename> H <filename>/</filename> ΰϳ]ӤpFC
- ڭ̫ijOGШ̨ϥαpHλݨDAӤʽվΰϤjpC</para></note>
+ <note><para>有些人可能會發現 &man.sysinstall.8; 的
+ <literal>Auto-defaults(自動預設值)</literal> 所做的分割區大小,
+ 有時候會把 <filename>/var</filename> 以及 <filename>/</filename> 分割區設太小了。
+ 我們建議是:請依使用情況以及需求,來手動調整相關分割區大小。</para></note>
</sect3>
<sect3 xml:id="swap-design">
- <title>Swap ΰ</title>
+ <title>Swap 分割區</title>
<indexterm><primary>swap sizing</primary></indexterm>
<indexterm><primary>swap partition</primary></indexterm>
- <para>ھڸgkhAq` swap ΰӳ]tΰO(RAM)jp⭿YiC
- |ҨӻGY 128&nbsp;MB RAM ܡA
- swap hӳ] 256&nbsp;MBC O֪AiHzLW[h swap ŶӴ@įC
- ڭ̫ij swap Ŷn]C 256&nbsp;MBAӥBӦҼ{W[O~O}C
- swap ̤֬O骺⭿jɡAkernel VM paging tk|įվ̨ΪAC
- YOOܤjA swap oӤ֪ܡA|ɭP VM page ˪IJvLCA
- ~YW[hOɡA]|ɭP@Dz`po͡C</para>
+ <para>根據經驗法則,通常 swap 分割區應該設為系統記憶體(RAM)大小的兩倍即可。
+ 舉例來說:若機器有 128&nbsp;MB RAM 的話,那麼
+ swap 則應該設為 256&nbsp;MB。 記憶體較少的機器,可以透過增加更多 swap 空間來提昇效能。
+ 我們建議 swap 空間不要設低於 256&nbsp;MB,而且該考慮增加記憶體才是良策。
+ 當 swap 最少為記憶體的兩倍大時,kernel 的 VM paging 演算法會把效能調整到最佳狀態。
+ 但若是機器記憶體很大,但 swap 卻劃分太少的話,會導致 VM page 掃瞄的效率過低,
+ 此外日後若增加更多記憶體時,也會導致一些異常狀況發生。</para>
- <para>bjAq`|h SCSI Ϻ(Φh IDE ϺбbP IDE ׬yƤW)A
- ijbCϺФWإ swap(̦h|)C
- ӳo swap ӳj@ˤjpA
- Kernel iNjp swapAƵchO̤j swap 4 C
- YO swap PˤjpܡAhi kernel ̨ΤƹBΦUϺФ swap ŶC
- YϤӱ`|ΨAtj swap ]٥iA
- ]ibj}eAeq{_`C</para>
+ <para>在較大型的機器內,通常會有多顆 SCSI 磁碟(或多顆 IDE 磁碟接在不同 IDE 匯流排上),
+ 建議在每顆磁碟上都建立 swap(最多到四顆)。
+ 而這些 swap 應該都大約一樣大小,
+ Kernel 可接受任意大小的 swap,但內部資料結構則是最大塊 swap 的 4 倍。
+ 若有保持 swap 為同樣大小的話,則可讓 kernel 最佳化運用各磁碟之中的 swap 空間。
+ 即使不太常會用到,分配大的 swap 也都還可接受,
+ 因為它可在強制重開機之前讓你更容易從當掉的程式中恢復正常。</para>
</sect3>
<sect3>
- <title>nW PartitionH</title>
+ <title>為何要規劃 Partition?</title>
- <para>ǤHıowдN@ӤjΰϴNnFA
- OƹWǭ]|ҩoOIlA
- ACӤΰϳPB@SʡA⥦̤}ܥiHɮרtΨӽվC
- pG <filename>/</filename> H <filename>/usr</filename> ΰϤjhuOŪӤwA
- ֦bgJC ŪgWchO <filename>/var</filename>
- <filename>/var/tmp</filename>C</para>
+ <para>有些人覺得把硬碟就直接劃分一個大分割區就好了,
+ 但是事實上有些原因會證明為何這是個爛點子,
+ 首先,每個分割區都有不同的運作特性,把它們分開的話可以讓檔案系統來調整。
+ 比如: <filename>/</filename> 以及 <filename>/usr</filename> 分割區大多只是讀取而已,
+ 比較少在寫入。 而讀寫都很頻繁的則是 <filename>/var</filename> 及
+ <filename>/var/tmp</filename>。</para>
<para>By properly partitioning a system, fragmentation
introduced in the smaller write heavy partitions
@@ -174,7 +174,7 @@
</sect1>
<sect1 xml:id="configtuning-core-configuration">
- <title>̥Dn]w</title>
+ <title>最主要的設定檔</title>
<indexterm>
<primary>rc files</primary>
@@ -234,23 +234,23 @@
</sect1>
<sect1 xml:id="configtuning-appconfig">
- <title>Uε{]w</title>
+ <title>各式應用程式的設定檔</title>
- <para>hWAw˪n鳣|ۦ]wɡA]|ۤv榡λykC
- ]ANPtΤ}W߬OD`nƱCp@ӡAM޲zuNiH
- ܻXodz]wɨú޲zodz]wɡC</para>
+ <para>原則上,安裝的軟體都會有其自有的設定檔,也會有自己的格式及語法。
+ 因此,將其與系統分開獨立是件非常重要的事情。如此一來,套件管理工具將可以
+ 很輕易的找出這些設定檔並管理這些設定檔。</para>
<indexterm><primary>/usr/local/etc</primary></indexterm>
- <para>hWA]wɷ|Qmb <filename>/usr/local/etc</filename>C
- YYn骺]wɬƲhAN|Uإߤ@ӥؿHѩm</para>
+ <para>原則上,設定檔會被放置在 <filename>/usr/local/etc</filename>。
+ 若某軟體的設定檔為數眾多,那將會其下建立一個目錄以供放置</para>
- <para>q`A@ port package Qw˪PɡA@ǰ򥻪]wd
- ]|@ֳQw˦ܦCoǽdҳq`|Q <filename>.default</filename> ɦWC
- YwˮɨSۦ漶gn]wɡAN|ƻs@ <filename>.default</filename> ]w
- w]]w</para>
+ <para>通常,當一個 port 或 package 被安裝的同時,一些基本的設定範例
+ 也會一併被安裝至此。這些範例通常會被用 <filename>.default</filename> 做為副檔名。
+ 若安裝時沒有自行撰寫的軟體設定檔,那麼將會複製一份 <filename>.default</filename> 設定
+ 做為預設設定檔</para>
- <para>|ӨҤlAڭ̨Ӭݬ <filename>/usr/local/etc/apache</filename>G</para>
+ <para>舉個例子,我們來看看 <filename>/usr/local/etc/apache</filename>:</para>
<literallayout class="monospaced">-rw-r--r-- 1 root wheel 2184 May 20 1998 access.conf
-rw-r--r-- 1 root wheel 2184 May 20 1998 access.conf.default
@@ -263,13 +263,13 @@
-rw-r--r-- 1 root wheel 7980 May 20 1998 srm.conf
-rw-r--r-- 1 root wheel 7933 May 20 1998 srm.conf.default</literallayout>
- <para><filename>srm.conf</filename> ɮ׳QקLFA <application>Apache</application> s
- N|oӤwקL]wɰܰʡC</para>
+ <para><filename>srm.conf</filename> 的檔案被修改過了,爾後 <application>Apache</application> 的更新
+ 將不會對這個已修改過的設定檔做任何變動。</para>
</sect1>
<sect1 xml:id="configtuning-starting-services">
- <info><title>U Services Ұʤ覡</title>
+ <info><title>各種 Services 的啟動方式</title>
<authorgroup>
<author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Contributed by </contrib></author>
</authorgroup>
@@ -414,7 +414,7 @@ run_rc_command "$1"</programlisting>
</sect2>
<sect2>
- <title>H Services ӱҰʦU Services</title>
+ <title>以 Services 來啟動各式 Services</title>
<para>Other services, such as <acronym>POP</acronym>3 server
daemons, <acronym>IMAP</acronym>, etc. could be started using
@@ -443,7 +443,7 @@ run_rc_command "$1"</programlisting>
</sect1>
<sect1 xml:id="configtuning-cron">
- <info><title>]w <command>cron</command></title>
+ <info><title>設定 <command>cron</command></title>
<authorgroup>
<author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Contributed by </contrib></author>
</authorgroup>
@@ -453,13 +453,13 @@ run_rc_command "$1"</programlisting>
<indexterm><primary>cron</primary>
<secondary>configuration</secondary></indexterm>
- <para>&os; ̦nΪu㤧@NO &man.cron.8;C
- <command>cron</command> |bIUB@Aä_ˬd
- <filename>/etc/crontab</filename> ɥH <filename>/var/cron/tabs</filename> ؿAӷjMO_s <filename>crontab</filename> ɮסC
- o <filename>crontab</filename> ɷ|s@DZƵ{u@]wAӵ <command>cron</command> C</para>
+ <para>&os; 最好用的工具之一就是 &man.cron.8;。
+ <command>cron</command> 會在背景下運作,並不斷檢查
+ <filename>/etc/crontab</filename> 檔以及 <filename>/var/cron/tabs</filename> 目錄,來搜尋是否有新 <filename>crontab</filename> 檔案。
+ 這些 <filename>crontab</filename> 檔會存放一些排程工作的設定,來給 <command>cron</command> 執行。</para>
- <para><command>cron</command> {AiPɱĥΨؤP]wɡGtΥ crontab
- ΨϥΪ̥ crontabCӨخ榡ߤ@tObĤ檺PFIn the
+ <para><command>cron</command> 程式,可同時採用兩種不同類型的設定檔:系統本身的 crontab
+ 及使用者本身的 crontab。而兩種格式唯一差別在於第六欄的不同;In the
system crontab, the sixth field is the name of a user for the command
to run as. This gives the system crontab the ability to run commands
as any user. In a user crontab, the sixth field is the command to run,
@@ -566,7 +566,7 @@ HOME=/var/log
<sect2 xml:id="configtuning-installcrontab">
- <title>u@Ƶ{(Crontab)ƩwP޲z</title>
+ <title>工作排程(Crontab)的排定與管理</title>
<important>
<para>You must not use the procedure described here to
@@ -610,7 +610,7 @@ HOME=/var/log
</sect1>
<sect1 xml:id="configtuning-rcd">
- <info><title>b &os; ϥ rc</title>
+ <info><title>在 &os; 使用 rc</title>
<authorgroup>
<author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Contributed by </contrib></author>
</authorgroup>
@@ -618,21 +618,21 @@ HOME=/var/log
- <para>q 2002 ~_A&os; XF NetBSD <filename>rc.d</filename> ӧ@tΪAȱҰʾC
- iH <filename>/etc/rc.d</filename> ؿUhݡAܦhɮ׳O򥻪AȡAiH <option>start</option>, <option>stop</option>
- <option>restart</option> @ϥήɪﶵC
- |ӨҤlAiHΤUCOӭsҰ &man.sshd.8;G</para>
+ <para>從 2002 年起,&os; 整合了 NetBSD 的 <filename>rc.d</filename> 機制來作為系統服務啟動機制。
+ 可以到 <filename>/etc/rc.d</filename> 目錄下去看,很多檔案都是基本服務,可以用 <option>start</option>, <option>stop</option>
+ 及 <option>restart</option> 作為使用時的選項。
+ 舉個例子,可以用下列指令來重新啟動 &man.sshd.8;:</para>
<screen>&prompt.root; <userinput>/etc/rc.d/sshd restart</userinput></screen>
- <para>LAȤ]O@kCMA
- Aȳq`unb &man.rc.conf.5; wܡA|b}ɴN۰ʱҰʡC|ҨӻAYn}ɱҰ NAT(Network Address
- Translation) daemon ܡAunb <filename>/etc/rc.conf</filename> [WUCoYiG</para>
+ <para>其他服務也是類似作法。當然,
+ 服務通常只要在 &man.rc.conf.5; 內有指定的話,都會在開機時就自動啟動。舉例來說,若要開機時啟動 NAT(Network Address
+ Translation) daemon 的話,只要在 <filename>/etc/rc.conf</filename> 內加上下列這行即可:</para>
<programlisting>natd_enable="YES"</programlisting>
- <para>Y쥻gO <option>natd_enable="NO"</option> un <option>NO</option> אּ
- <option>YES</option> NnFCrc scripts |bU}ɡA۰ʸJ(ۨ)AȡAHUڭ̷|oC</para>
+ <para>若原本寫的是 <option>natd_enable="NO"</option> 那麼只要把 <option>NO</option> 改為
+ <option>YES</option> 就好了。rc scripts 會在下次重開機時,自動載入相關(有相依)的服務,以下我們會講到這部分。</para>
<para>Since the <filename>rc.d</filename> system is primarily
intended to start/stop services at system startup/shutdown time,
@@ -670,8 +670,8 @@ $sshd_enable=YES</screen>
console.</para>
</note>
- <para>YnˬdAȬO_bB@AiH <option>status</option> ﶵӬdߡCpGYnT{
- <command>sshd</command> O_uҰʪܡA򥴡G</para>
+ <para>若要檢查服務是否有在運作,可以用 <option>status</option> 選項來查詢。比如:若要確認
+ <command>sshd</command> 是否真的有啟動的話,那麼打:</para>
<screen>&prompt.root; <userinput>/etc/rc.d/sshd status</userinput>
sshd is running as pid 433.</screen>
@@ -733,7 +733,7 @@ sshd is running as pid 433.</screen>
</sect1>
<sect1 xml:id="config-network-setup">
- <info><title>]wd</title>
+ <info><title>設定網路卡</title>
<authorgroup>
<author><personname><firstname>Marc</firstname><surname>Fonvieille</surname></personname><contrib>Contributed by </contrib></author>
</authorgroup>
@@ -751,7 +751,7 @@ sshd is running as pid 433.</screen>
card is a common task for any &os; administrator.</para>
<sect2>
- <title>ܥTBiΪXʵ{(Driver)</title>
+ <title>選擇正確、可用的驅動程式(Driver)</title>
<indexterm>
<primary>network cards</primary>
@@ -945,7 +945,7 @@ ndis0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 36Mbps 48Mbps 54Mbps</screen>
</sect2>
<sect2>
- <title>]wd</title>
+ <title>設定網路卡</title>
<indexterm>
<primary>network cards</primary>
@@ -1114,7 +1114,7 @@ ifconfig_dc1="inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP"</programlis
</sect2>
<sect2>
- <title>ջPư</title>
+ <title>測試與疑難排除</title>
<para>Once you have made the necessary changes in
<filename>/etc/rc.conf</filename>, you should reboot your
@@ -1126,7 +1126,7 @@ ifconfig_dc1="inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP"</programlis
network interfaces.</para>
<sect3>
- <title>դAӺd(Ethernet Card)</title>
+ <title>測試乙太網路卡(Ethernet Card)</title>
<indexterm>
<primary>network cards</primary>
@@ -1171,7 +1171,7 @@ round-trip min/avg/max/stddev = 0.700/0.729/0.766/0.025 ms</screen>
</sect3>
<sect3>
- <title>ư</title>
+ <title>疑難排除</title>
<indexterm>
<primary>network cards</primary>
@@ -1232,7 +1232,7 @@ round-trip min/avg/max/stddev = 0.700/0.729/0.766/0.025 ms</screen>
</sect1>
<sect1 xml:id="configtuning-virtual-hosts">
- <title>D(Virtual Hosts)</title>
+ <title>虛擬主機(Virtual Hosts)</title>
<indexterm><primary>virtual hosts</primary></indexterm>
<indexterm><primary>IP aliases</primary></indexterm>
@@ -1301,7 +1301,7 @@ ifconfig_fxp0_alias7="inet 202.0.75.20 netmask 255.255.255.255"</programlisting>
</sect1>
<sect1 xml:id="configtuning-configfiles">
- <title>٦ǥDn]wɩOH</title>
+ <title>還有哪些主要設定檔呢?</title>
<sect2>
<title><filename>/etc</filename> Layout</title>
diff --git a/zh_TW.Big5/books/handbook/cutting-edge/Makefile b/zh_TW.UTF-8/books/handbook/cutting-edge/Makefile
index 6ca842754f..6ca842754f 100644
--- a/zh_TW.Big5/books/handbook/cutting-edge/Makefile
+++ b/zh_TW.UTF-8/books/handbook/cutting-edge/Makefile
diff --git a/zh_TW.Big5/books/handbook/cutting-edge/chapter.xml b/zh_TW.UTF-8/books/handbook/cutting-edge/chapter.xml
index 50f6f0e072..ef0d9a6c6d 100644
--- a/zh_TW.Big5/books/handbook/cutting-edge/chapter.xml
+++ b/zh_TW.UTF-8/books/handbook/cutting-edge/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
@@ -6,7 +6,7 @@
Original revision: 1.225
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="cutting-edge">
- <info><title>sBɯ FreeBSD</title>
+ <info><title>更新、升級 FreeBSD</title>
<authorgroup>
<author><personname><firstname>Jim</firstname><surname>Mock</surname></personname><contrib>Restructured, reorganized, and parts updated by </contrib></author>
<!-- Mar 2000 -->
@@ -23,38 +23,38 @@
<sect1 xml:id="cutting-edge-synopsis">
- <title>z</title>
+ <title>概述</title>
- <para>&os; Oӫoi@~tΡCwlDsABEϥΪ̦ӨA
- ܦhkiHϱztλPs̷sC
- `NGëDCӤHAXo򰵡I@DnOUzMw쩳n}oA
- άOnϥθíwXC
+ <para>&os; 是個持續發展的作業系統。對於喜歡追求新鮮、刺激的使用者而言,
+ 有很多方法可以使您的系統輕鬆更新為最新版。
+ 注意:並非每個人都適合這麼做! 本章主要是協助您決定到底要跟開發版本,
+ 或是要使用較穩定的釋出版。
</para>
- <para>ŪoAzNFѡJ</para>
+ <para>讀完這章,您將了解︰</para>
<itemizedlist>
- <listitem><para>&os.stable; P &os.current;@o䪺PBF</para>
+ <listitem><para>&os.stable; 與 &os.current; 這兩分支的不同之處;</para>
</listitem>
- <listitem><para>pH
+ <listitem><para>如何以
<application>CSup</application>,
<application>CVSup</application>,
- <application>CVS</application>
- <application>CTM</application> ӧsAt</para>
+ <application>CVS</application> 或
+ <application>CTM</application> 來更新你的系統</para>
</listitem>
- <listitem><para>pH <command>make buildworld</command>
- OӭssĶBw˾ base systemC</para>
+ <listitem><para>如何以 <command>make buildworld</command>
+ 等指令來重新編譯、安裝整個 base system。</para>
</listitem>
</itemizedlist>
- <para>b}l\ŪoeAzݭnJ</para>
+ <para>在開始閱讀這章之前,您需要︰</para>
<itemizedlist>
- <listitem><para>]nA(<xref linkend="advanced-networking"/>)C
+ <listitem><para>先設好你的網路(<xref linkend="advanced-networking"/>)。
</para>
</listitem>
- <listitem><para>DpzL port/package w˳n(<xref linkend="ports"/>)C</para></listitem>
+ <listitem><para>知道如何透過 port/package 安裝軟體(<xref linkend="ports"/>)。</para></listitem>
</itemizedlist>
</sect1>
@@ -63,286 +63,286 @@
<indexterm><primary>-CURRENT</primary></indexterm>
<indexterm><primary>-STABLE</primary></indexterm>
- <para>FreeBSD ӵoiG&os.current;
- &os.stable;C`N|򤶲СAäХ̤OSOpsC
- A &os.current;AۦA &os.stable;C</para>
+ <para>FreeBSD 有兩個發展分支:&os.current; 及
+ &os.stable;。本節將會陸續介紹,並介紹它們分別又是如何更新。
+ 首先,先介紹 &os.current;,接著再介紹 &os.stable;。</para>
<sect2 xml:id="current">
- <title>ϥγ̷s &os; CURRENT</title>
+ <title>使用最新的 &os; CURRENT</title>
- <para>o̦AjաA&os.current; O &os; }o <quote>̫eu</quote>C
- &os.current; ϥΪ̶j޳NOA
- ӥBӭnOۤvѨMxtΰDC YzO &os; sA
- Цbw˫e̦nTC</para>
+ <para>這裡再次強調,&os.current; 是 &os; 開發的 <quote>最前線</quote>。
+ &os.current; 使用者須有較強的技術能力,
+ 而且應該要有能力自己解決困難的系統問題。 若您是 &os; 新手,
+ 那麼請在安裝前最好先三思。</para>
<sect3>
- <title>O &os.current;H</title>
+ <title>什麼是 &os.current;?</title>
<indexterm><primary>snapshot</primary></indexterm>
- <para>&os.current; O &os; ̷sC]tG
- boqBʽ誺קBLɴA
- oǪFbU@ relase i|A]iण|C
- ަ\h &os; }ǫCѳ|sĶ &os.current; source codeA
- ɳoǭlXOLksĶ\C MAoǰDq`|ָѨMA
- &os.current; 쩳OaӯETάOhFQnΪs\BﵽA
- oIDnMzslXɾөwI</para>
+ <para>&os.current; 是 &os; 的最新版。它包含:
+ 仍在研發階段、實驗性質的修改、過渡時期的機制,
+ 這些東西在下一次正式 relase 的版本可能會有,也可能不會有的。
+ 儘管有許多 &os; 開發者每天都會編譯 &os.current; source code,
+ 但有時這些原始碼是無法編譯成功。 雖然,這些問題通常會儘快解決,
+ 但 &os.current; 到底是帶來浩劫或是多了想要用的新功能、改善,
+ 這點主要取決於您更新原始碼的時機為何而定!</para>
</sect3>
<sect3>
- <title>ֻݭn &os.current;H</title>
+ <title>誰需要 &os.current;?</title>
- <para>&os.current; AXUCoTHG</para>
+ <para>&os.current; 適合下列這三類人:</para>
<orderedlist>
<listitem>
- <para>&os; sGnM` source tree Y@A
- Hλ{O <quote>current(̷sA)</quote>
- ݨDHC</para>
+ <para>&os; 社群成員:積極專注於 source tree 的某一部份,
+ 以及認為保持為 <quote>current(最新狀態)</quote>
+ 為絕對需求的人。</para>
</listitem>
<listitem>
- <para>&os; sGFTO &os.current;
- iabíwAA
- ӥDʪɶѨMDժ̡C ~A٦ &os;
- ണXijHΧﵽVAôX patch ץɪHC</para>
+ <para>&os; 社群成員:為了確保 &os.current;
+ 能夠儘可能地維持在最穩定的狀態,
+ 而主動花時間解決問題的測試者。 此外,還有對 &os;
+ 能提出具體建議以及改善方向,並提出 patch 修正檔的人。</para>
</listitem>
<listitem>
- <para>uOߩΪ̷QѦ(pAuO<emphasis>\Ū</emphasis>A
- ӫD)HC
- oǤHɤ]|ǵѡAΰ^mlXC</para>
+ <para>只是關心或者想參考(比如,只是<emphasis>閱讀</emphasis>,
+ 而非執行)的人。
+ 這些人有時也會做些註解,或貢獻原始碼。</para>
</listitem>
</orderedlist>
</sect3>
<sect3>
- <title>&os.current; <emphasis>äO</emphasis> H</title>
+ <title>&os.current; <emphasis>並不是</emphasis> 什麼?</title>
<orderedlist>
<listitem>
- <para>lD̷s\C ṱ̌ǫܻŪs\A
- çƱ榨zP򪺤HĤ@ӹժHA
- ]N &os.current; omA|C
- ޡAz]AѨ̷s\A
- o]NۭYX{s bug ɡAz]OġC</para>
+ <para>追求最新功能。 聽說裡面有些很酷的新功能,
+ 並希望成為您周圍的人中第一個嘗試的人,
+ 因此將 &os.current; 視為取得搶鮮版的捷徑。
+ 儘管,您能夠因此首先瞭解到最新的功能,
+ 但這也意味著若出現新的 bug 時,您也是首當其衝。</para>
</listitem>
<listitem>
- <para>״_ bug tkC ] &os.current;
- 󪩥b״_w bug PɡASi|ͷs bugC
+ <para>修復 bug 的速成法。 因為 &os.current;
+ 的任何版本在修復已知 bug 的同時,又可能會產生新的 bug。
</para>
</listitem>
<listitem>
- <para>LҤb <quote>officially supported</quote>C
- ڭ̷|ɤOUWz &os.current; TO
- <quote>legitimate</quote> ϥΪ̡A
- ڭ<emphasis>Sɶ</emphasis>L̴ѧ޳N䴩C
- oNڭ̫ܴcHAάOQUH(YOܡA
- ڭ̤]| &os; VOF)
- AbO]ڭ̤FNALkCѦ^ƦʭӰDA
- <emphasis>ӦP</emphasis>~}o &os;C
- iHTw@INOA
- bﵽ &os; άO^jqXDA
- YnӿܪܡA}o̷|ܫe̡C</para>
+ <para>無所不在的 <quote>officially supported</quote>。
+ 我們會盡力協助上述 &os.current; 的那三種類別的
+ <quote>legitimate</quote> 使用者,
+ 但我們<emphasis>沒時間</emphasis>為他們提供技術支援。
+ 這不代表我們很惡劣,或是不想幫助人(若是的話,
+ 我們也不會為 &os; 努力了)
+ ,實在是因為我們分身乏術,無法每天回答數百個問題,
+ <emphasis>而同時</emphasis>繼續開發 &os;。
+ 可以確定的一點就是,
+ 在改善 &os; 或是回答大量有關實驗碼的問題之間,
+ 若要做個選擇的話,開發者會選擇前者。</para>
</listitem>
</orderedlist>
</sect3>
<sect3>
- <title>ϥ &os.current;</title>
+ <title>使用 &os.current;</title>
<orderedlist>
<listitem>
- <para>[J &a.current.name;<indexterm><primary>-CURRENT</primary><secondary>using</secondary></indexterm> &a.cvsall.name; ׾¡C
- ouOӫijA]O <emphasis></emphasis> @C
- YzSq\ <emphasis>&a.current.name;</emphasis>
- AN|LOHثetΪAAӬ\ӦbOHwѪDC
- 󭫭nOAi|@ǹvҺިtΦwM۷niC
+ <para>加入 &a.current.name;<indexterm><primary>-CURRENT</primary><secondary>using</secondary></indexterm> 及 &a.cvsall.name; 論壇。
+ 這不單只是個建議,也是 <emphasis>必須</emphasis> 作的。
+ 若您沒訂閱 <emphasis>&a.current.name;</emphasis>
+ ,那麼就會錯過別人對目前系統狀態的說明,而枯耗在別人已解的問題。
+ 更重要的是,可能會錯失一些對己身所管系統安危相當重要的公告。
</para>
- <para>b &a.cvsall.name; WhiHݨC commit A
- ]oǰO|savTLTC</para>
+ <para>在 &a.cvsall.name; 上則可以看到每個 commit 紀錄,
+ 因為這些記錄會連帶影響其他相關資訊。</para>
- <para>nq\oǽ׾©ΨL׾¡AаѦ &a.mailman.lists.link;
- IQq\YiC ܩLBJpiA
- b̷|C</para>
+ <para>要訂閱這些論壇或其他論壇,請參考 &a.mailman.lists.link;
+ 並點選想訂閱的部分即可。 至於其他後續步驟如何進行,
+ 在那裡會有說明。</para>
</listitem>
<listitem>
- <para>q &os; <link linkend="mirrors">mirror </link>
- olXC ؤ覡iHFG</para>
+ <para>從 &os; <link linkend="mirrors">mirror 站</link>
+ 取得原始碼。 有兩種方式可以達成:</para>
<orderedlist>
<listitem>
- <para>H <link linkend="cvsup">csup</link><indexterm><primary><command>cvsup</command></primary></indexterm>
- <link linkend="cvsup">cvsup</link> {ft
- <filename>/usr/share/examples/cvsup</filename> ɦW
- <filename>standard-supfile</filename>
- <filename>supfile</filename>C
- oOja̱`˪覡A]iHz tree ^ӡA
- NusYiC
- ~A\hH| <command>csup</command>
- <command>cvsup</command>
- <command>cron</command><indexterm><primary><command>cron</command></primary></indexterm> Hw۰ʧsC
- znۭqez <filename>supfile</filename> dɡA
- ðwۨҥHվ <link linkend="cvsup">csup</link>
- <link linkend="cvsup">cvsup</link><indexterm><primary>-CURRENT</primary><secondary>Syncing with <application>CVSup</application></secondary></indexterm> ]wC</para>
+ <para>以 <link linkend="cvsup">csup</link><indexterm><primary><command>cvsup</command></primary></indexterm> 或
+ <link linkend="cvsup">cvsup</link> 程式搭配位於
+ <filename>/usr/share/examples/cvsup</filename> 檔名為
+ <filename>standard-supfile</filename> 的
+ <filename>supfile</filename>。
+ 這是大家最常推薦的方式,因為它可以讓您把整個 tree 都抓回來,
+ 之後就只取有更新的部分即可。
+ 此外,許多人會把 <command>csup</command> 或
+ <command>cvsup</command> 放到
+ <command>cron</command><indexterm><primary><command>cron</command></primary></indexterm> 以定期自動更新。
+ 您須要自訂前述的 <filename>supfile</filename> 範例檔,
+ 並針對自身網路環境以調整 <link linkend="cvsup">csup</link>
+ 或 <link linkend="cvsup">cvsup</link><indexterm><primary>-CURRENT</primary><secondary>Syncing with <application>CVSup</application></secondary></indexterm> 相關設定。</para>
</listitem>
<listitem>
- <para>ϥ <application>CTM</application><indexterm><primary>-CURRENT</primary><secondary>Syncing with CTM</secondary></indexterm> uC YҤ
- (WOζQAΥu email Ӥw)
- <application>CTM</application> |AXzݨDC
- MӡAo]@ǪijåB`@ǦDɮסC ]A
- ܤ֤H|ΥC o]wF̿oӧs覡C
- YOϥ 9600&nbsp;bps modem WejW̡Aijϥ
+ <para>使用 <application>CTM</application><indexterm><primary>-CURRENT</primary><secondary>Syncing with CTM</secondary></indexterm> 工具。 若網路環境不佳
+ (上網費用貴,或只能用 email 而已)
+ <application>CTM</application> 會比較適合您的需求。
+ 然而,這也有一些爭議並且常抓到一些有問題的檔案。 因此,
+ 很少人會用它。 這也註定了不能長期依賴這個更新方式。
+ 若是使用 9600&nbsp;bps modem 或頻寬更大的上網者,建議使用
<application>CVSup</application>
- C</para>
+ 。</para>
</listitem>
</orderedlist>
</listitem>
<listitem>
- <para>Y source code OnΨӶ]AӤȥuOݬݦӤwA
- N <emphasis></emphasis> &os.current;AӤnu쳡C
- ]j source code |̨ۨL source code `A
- YOzusĶ䤤@AOҷ|ܳ·СC</para>
+ <para>若抓 source code 是要用來跑的,而不僅只是看看而已,
+ 那麼就抓 <emphasis>整個</emphasis> &os.current;,而不要只抓部分。
+ 因為大部分的 source code 都會相依到其他 source code 環節部分,
+ 若是您只編譯其中一部份,保證會很麻煩。</para>
- <para>bsĶ &os.current;<indexterm><primary>-CURRENT</primary><secondary>compiling</secondary></indexterm> eAХJӾ\Ū
- <filename>/usr/src</filename> <filename>Makefile</filename>C
- ޥuOɯųFӤwAzܤ֤]n <link linkend="makeworld">
- ˷s kernel HέssĶ world</link>C ~Ahh\Ū
- &a.current; H <filename>/usr/src/UPDATING</filename>
- ]OA
- ~ાDثei׬O˥HΤU@|sFC</para>
+ <para>在編譯 &os.current;<indexterm><primary>-CURRENT</primary><secondary>compiling</secondary></indexterm> 之前,請仔細閱讀
+ <filename>/usr/src</filename> 內的 <filename>Makefile</filename>。
+ 儘管只是升級部分東西而已,您至少也要先 <link linkend="makeworld">
+ 裝新的 kernel 以及重新編譯 world</link>。 此外,多多閱讀
+ &a.current; 以及 <filename>/usr/src/UPDATING</filename>
+ 也是必須的,
+ 才能知道目前進度是怎樣以及下一版會有什麼新東西。</para>
</listitem>
<listitem>
- <para>IYzb] &os.current;A
- ڭ̫ܷQDz󥦪QkOAרO[jǥ\A
- θӭץǿ~ijC pGzbijɯW{XܡA
- uOӴΤFI</para>
+ <para>熱血!若您正在跑 &os.current;,
+ 我們很想知道您對於它的想法是什麼,尤其是加強哪些功能,
+ 或該修正哪些錯誤的建議。 如果您在建議時能附上相關程式碼的話,
+ 那真是太棒了!</para>
</listitem>
</orderedlist>
</sect3>
</sect2>
<sect2 xml:id="stable">
- <title>ϥγ̷s &os; STABLE</title>
+ <title>使用最新的 &os; STABLE</title>
<sect3>
- <title>O &os.stable;H</title>
+ <title>什麼是 &os.stable;?</title>
<indexterm><primary>-STABLE</primary></indexterm>
- <para>&os.stable; Oڭ̪}oADno檩NѦӨӡC
- oӤ|HPtק@קܤơAåB]oǬOĤ@iJ &os.current;
- iաC MӡAo <emphasis>M</emphasis> ݩ}oA
- ]NObYǮɭԡA&os.stable; i|B]iण|ŦX@ǯSݨDC
- uLOt@Ӷ}oӤwAiणӾAX@ϥΪ̡C</para>
+ <para>&os.stable; 是我們的開發分支,主要的發行版就由此而來。
+ 這個分支會以不同速度作修改變化,並且假設這些是第一次進入 &os.current;
+ 進行測試。 然而,這 <emphasis>仍然</emphasis> 屬於開發中的分支,
+ 也就是說在某些時候,&os.stable; 可能會、也可能不會符合一些特殊需求。
+ 它只不過是另一個開發分支而已,可能不太適合一般使用者。</para>
</sect3>
<sect3>
- <title>ֻݭn &os.stable;H</title>
+ <title>誰需要 &os.stable;?</title>
- <para>YzhlܡB^m FreeBSD }oL{Χ@ǰ^mA
- רO| FreeBSD UӪ <quote></quote> o榳A
- ӦҼ{ĥ &os.stable;C</para>
+ <para>若您有興趣去追蹤、貢獻 FreeBSD 開發過程或作些貢獻,
+ 尤其是會跟 FreeBSD 接下來的 <quote>關鍵性</quote> 發行有關,
+ 應該考慮採用 &os.stable;。</para>
- <para>Mw|}׸ɤ]|iJ &os.stable; A
- ȶȦ] <emphasis>ݭn</emphasis> h &os.stable;C
- FreeBSD C security advisory(wi)
- |ѻph״_vT
- <footnote><para>MӡAo]@wOTAڭ̤iû䴩 FreeBSD
- 骺Uصo檩AިCӵo檩oGA|䴩Ʀ~[C
- YA FreeBSD ثeª䴩FӸ`AаѾ\ <link xlink:href="&url.base;/security/">http://www.FreeBSD.org/security/</link>
- C</para>
+ <para>雖然安全漏洞的修補也會進入 &os.stable; 分支,
+ 但不必僅僅因此而 <emphasis>需要</emphasis> 去用 &os.stable;。
+ FreeBSD 每項 security advisory(安全公告)
+ 都會解說如何去修復有受到影響的版本
+ <footnote><para>然而,這也不一定是正確,我們不可能永遠支援 FreeBSD
+ 昔日的各種發行版本,儘管每個發行版發佈之後,都仍會持續支援數年之久。
+ 若欲瞭解 FreeBSD 目前對於舊版的支援政策細節,請參閱 <link xlink:href="&url.base;/security/">http://www.FreeBSD.org/security/</link>
+ 。</para>
</footnote>
- AYȦ]w]ӥhĥζ}oAM|ѨM{wDA
- ]iaӤ@ǼêDC</para>
+ ,若僅因為安全因素而去採用開發分支,雖然會解決現有已知問題,
+ 但也可能帶來一些潛藏的問題。</para>
- <para>ާڭ̺ɤOTO &os.stable; bɭԧॿTsĶBB@A
- SHOHɳiHŦXWzتC ~AMlXbiJ
- &os.stable; eA|b &os.current; }oAϥ &os.current;
- H &os.stable; ϥΪ̨Ӫ֡AҥHq`ǰDAib
- &os.current; SH`NAH &os.stable;
- ϥΪ̪sxϥΤ~|B{C</para>
+ <para>儘管我們盡力確保 &os.stable; 分支在任何時候均能正確編譯、運作,
+ 但沒人能夠擔保它隨時都可以符合上述目的。 此外,雖然原始碼在進入
+ &os.stable; 之前,都會先在 &os.current; 開發完畢,但使用 &os.current;
+ 的人畢竟遠比 &os.stable; 使用者來的少,所以通常有些問題,可能在
+ &os.current; 比較沒人注意到,隨著 &os.stable;
+ 使用者的廣泛使用才會浮現。</para>
- <para>ѩWzoDzzѡAڭ<emphasis>ä</emphasis> ذlH
- &os.stable;AӥB󭫭nOAOblX|gդeA
- Nİʧ production server ಾ &os.stable; ҡC</para>
+ <para>由於上述這些理由,我們<emphasis>並不推薦</emphasis> 盲目追隨
+ &os.stable;,而且更重要的是,別在原始碼尚未經完整測試之前,
+ 就衝動把 production server 轉移到 &os.stable; 環境。</para>
- <para>YzSoǦhɶB믫ܡA˱zϥγ̷s FreeBSD
- o檩YiAñĥΨҴѪ binary sӧɯಾC</para>
+ <para>若您沒有這些多的時間、精神的話,那推薦您使用最新的 FreeBSD
+ 發行版即可,並採用其所提供的 binary 更新機制來完成升級轉移。</para>
</sect3>
<sect3>
- <title>ϥ &os.stable;</title>
+ <title>使用 &os.stable;</title>
<orderedlist>
<listitem>
- <para>q\ &a.stable.name;<indexterm><primary>-STABLE</primary><secondary>using</secondary></indexterm> listC iHzHA &os.stable;
- nsĶɪۨYAHΨLݯSO`NDC
- }o̦bҼ{@ǦijץΧsɡAN|bo̵oHA
- ϥΪ̦|iHA
- ݥL̹ҴO_ijΰDC</para>
+ <para>訂閱 &a.stable.name;<indexterm><primary>-STABLE</primary><secondary>using</secondary></indexterm> list。 可以讓您隨時瞭解 &os.stable;
+ 的軟體編譯時的相依關係,以及其他需特別注意的問題。
+ 開發者在考慮一些有爭議的修正或更新時,就會先在這裡發信說明,
+ 給使用者有機會可以反應,
+ 看他們對所提的更改是否有什麼建議或問題。</para>
- <para> &a.cvsall.name; list oiHݨC commit logA
- 䤤]AF\h֪TAҦp@ǥioͪڮC</para>
+ <para>而 &a.cvsall.name; list 這邊可以看到每個 commit log,
+ 其中包括了許多中肯的資訊,例如一些可能發生的邊際效應等等。</para>
- <para>Qn[JodzqH׾ªܡAun &a.mailman.lists.link;
- IUQq\ list YiC lBJbW|C</para>
+ <para>想要加入這些通信論壇的話,只要到 &a.mailman.lists.link;
+ 點下想訂閱的 list 即可。 其餘的步驟在網頁上會有說明。</para>
</listitem>
<listitem>
- <para>Ynwˤ@ӥstΡAåBƱ &os.stable;
- Cw snapshotAаѾ\ <link xlink:href="&url.base;/snapshots/">Snapshots</link> HAѬӸ`C
- ~A]iq <link linkend="mirrors">mirror </link>
- Ӧw˳̷s &os.stable; o檩AózLUCӧs̷s
- &os.stable; lXC</para>
+ <para>若打算要安裝一個全新的系統,並且希望裝 &os.stable;
+ 每月定期的 snapshot,那麼請參閱 <link xlink:href="&url.base;/snapshots/">Snapshots</link> 網頁以瞭解相關細節。
+ 此外,也可從 <link linkend="mirrors">mirror 站</link>
+ 來安裝最新的 &os.stable; 發行版,並透過下列的的說明來更新到最新的
+ &os.stable; 原始碼。</para>
- <para>Yw˪O &os; HeAӷQzLlX覡ӤɯšA
- ]OiHQ &os; <link linkend="mirrors">mirror </link>
- ӧC HUШؤ覡G</para>
+ <para>若已裝的是 &os; 以前的版本,而想透過原始碼方式來升級,
+ 那麼也是可以利用 &os; <link linkend="mirrors">mirror 站</link>
+ 來完成。 以下介紹兩種方式:</para>
<orderedlist>
<listitem>
- <para>H <link linkend="cvsup">csup</link><indexterm><primary><command>cvsup</command></primary></indexterm>
- <link linkend="cvsup">cvsup</link> {ft
- <filename>/usr/share/examples/cvsup</filename> ɦW
- <filename>stable-supfile</filename>
- <filename>supfile</filename>C oOja̱`˪覡A
- ]iHA tree ^ӡA
- NusYiC
- ~A\hH| <command>csup</command>
- <command>cvsup</command> <command>cron</command><indexterm><primary><command>cron</command></primary></indexterm>
- Hw۰ʧsC znۭqez
- <filename>supfile</filename> dɡAðwۨҥHվ
- <link linkend="cvsup">csup</link>
- <link linkend="cvsup">cvsup</link><indexterm><primary>-STABLE</primary><secondary>syncing with <application>CVSup</application></secondary></indexterm> ]wC</para>
+ <para>以 <link linkend="cvsup">csup</link><indexterm><primary><command>cvsup</command></primary></indexterm> 或
+ <link linkend="cvsup">cvsup</link> 程式搭配位於
+ <filename>/usr/share/examples/cvsup</filename> 檔名為
+ <filename>stable-supfile</filename> 的
+ <filename>supfile</filename>。 這是大家最常推薦的方式,
+ 因為它可以讓你把整個 tree 都抓回來,
+ 之後就只取有更新的部分即可。
+ 此外,許多人會把 <command>csup</command> 或
+ <command>cvsup</command> 放到 <command>cron</command><indexterm><primary><command>cron</command></primary></indexterm>
+ 以定期自動更新。 您須要自訂前述的
+ <filename>supfile</filename> 範例檔,並針對自身網路環境以調整
+ <link linkend="cvsup">csup</link> 或
+ <link linkend="cvsup">cvsup</link><indexterm><primary>-STABLE</primary><secondary>syncing with <application>CVSup</application></secondary></indexterm> 相關設定。</para>
</listitem>
<listitem>
- <para>ϥ <application>CTM</application><indexterm><primary>-STABLE</primary><secondary>syncing with CTM</secondary></indexterm> suC
- Y֩κOζQAiHҼ{ĥΡC</para>
+ <para>使用 <application>CTM</application><indexterm><primary>-STABLE</primary><secondary>syncing with CTM</secondary></indexterm> 更新工具。
+ 若網路不快或網路費用貴,那麼可以考慮採用。</para>
</listitem>
</orderedlist>
</listitem>
<listitem>
- <para>@ӨAY`ݦs̷slXAӤpWeܡA
- iHϥ <command>csup</command> <command>cvsup</command>
- <command>ftp</command>C _hANҼ{
- <application>CTM</application>C</para>
+ <para>一般而言,若常需存取最新原始碼,而不計較網路頻寬的話,
+ 可以使用 <command>csup</command> 或 <command>cvsup</command>
+ 或 <command>ftp</command>。 否則,就考慮
+ <application>CTM</application>。</para>
</listitem>
<listitem>
- <para>bsĶ &os.stable;<indexterm><primary>-STABLE</primary><secondary>compiling</secondary></indexterm> eAХJӾ\Ū
- <filename>/usr/src</filename> <filename>Makefile</filename>
- ɡC ޥuOɯųFӤwAzܤ֤]n <link linkend="makeworld">˷s kernel HέssĶ world</link>C
- ~Ahh\Ū &a.stable; H
- <filename>/usr/src/UPDATING</filename> ]OƪA
- oˤ~ાDثei׬OˡAHΤU@|ǷsFC</para>
+ <para>在編譯 &os.stable;<indexterm><primary>-STABLE</primary><secondary>compiling</secondary></indexterm> 之前,請先仔細閱讀
+ <filename>/usr/src</filename> 內的 <filename>Makefile</filename>
+ 檔。 儘管只是升級部分東西而已,您至少也要先 <link linkend="makeworld">裝新的 kernel 以及重新編譯 world</link>。
+ 此外,多多閱讀 &a.stable; 以及
+ <filename>/usr/src/UPDATING</filename> 也是必備的,
+ 這樣才能知道目前進度是怎樣,以及下一版會有哪些新東西。</para>
</listitem>
</orderedlist>
</sect3>
@@ -350,20 +350,20 @@
</sect1>
<sect1 xml:id="synching">
- <title>sA Source</title>
+ <title>更新你的 Source</title>
- <para>&os; plX\hzL( email)覡ӧsA
- L׬Os@AoǥѱzۦMwC ڭ̥DnѪO <link linkend="anoncvs">Anonymous CVS</link>B<link linkend="cvsup">CVSup</link>
- B<link linkend="ctm">CTM</link>C</para>
+ <para>&os; 計劃原始碼有許多透過網路(或 email)的方式來更新,
+ 無論是更新那一塊領域,這些全由您自行決定。 我們主要提供的是 <link linkend="anoncvs">Anonymous CVS</link>、<link linkend="cvsup">CVSup</link>
+ 、<link linkend="ctm">CTM</link>。</para>
<warning>
- <para>MiHuslXAߤ@䴩sy{Os treeA
- åBs userland(pGѨϥΪ̥h檺Ҧ{AO
- <filename>/bin</filename>B<filename>/sbin</filename> {)H
- kernel lXC
- Yus source treeBΥu kernel BΥu userland
- Aq`|y@ǿ~AOGsĶ~Bkernel panicBƷl
- C</para>
+ <para>雖然可以只更新部分原始碼,但唯一支援的更新流程是更新整個 tree,
+ 並且重編 userland(比如:由使用者去執行的所有程式,像是
+ <filename>/bin</filename>、<filename>/sbin</filename> 內的程式)以及
+ kernel 原始碼。
+ 若只更新部分的 source tree、或只有 kernel 部分、或只有 userland
+ 部分,通常會造成一些錯誤,像是:編譯錯誤、kernel panic、資料毀損等
+ 。</para>
</warning>
<indexterm>
@@ -371,104 +371,104 @@
<secondary>anonymous</secondary>
</indexterm>
- <para><application>Anonymous CVS</application>
- <application>CVSup</application> O <emphasis>pull</emphasis>
- ҦӧslXC H <application>CVSup</application> ҡA
- ϥΪ( <command>cron</command> script)| <command>cvsup</command>
- {A̷|PY@x <command>cvsupd</command> A@ǤʡA
- HslXɮסC zҦs|Oɳ̷sA
- ӥBu|ݧsC ~A]iHܻPh]wnsdC
- s|ѦA򥻾蠟AXɱzһݭnsɮ׵AC
- <application>Anonymous CVS</application> ۹
- <application>CVSup</application> ӱo²ǡA]uO
- <application>CVS</application> ӤwA@Aiqݪ
- CVS repository X̷slXC M <application>CVSup</application>
- bo譱|󦳮IJvAL <application>Anonymous CVS</application>
- sӨAOΰ_Ӥ²C</para>
+ <para><application>Anonymous CVS</application> 及
+ <application>CVSup</application> 均是採 <emphasis>pull</emphasis>
+ 模式來更新原始碼。 以 <application>CVSup</application> 為例,
+ 使用者(或 <command>cron</command> script)會執行 <command>cvsup</command>
+ 程式,後者會與某一台 <command>cvsupd</command> 伺服器作些互動,
+ 以更新相關原始碼檔案。 您所收到更新會是當時最新的,
+ 而且只會收到需更新的部分。 此外,也可以很輕鬆去設定要更新的範圍。
+ 更新會由伺服器跟本機比對之後,丟出當時您所需要的更新檔案給你。
+ <application>Anonymous CVS</application> 的概念相對於
+ <application>CVSup</application> 來得更簡單些,因為它只是
+ <application>CVS</application> 的延伸而已,一樣讓你可從遠端的
+ CVS repository 取出最新原始碼。 然而 <application>CVSup</application>
+ 在這方面會更有效率,不過 <application>Anonymous CVS</application>
+ 對新手而言,是用起來比較簡單。</para>
<indexterm>
<primary><application>CTM</application></primary>
</indexterm>
- <para>t@ؤ覡hO <application>CTM</application>C
- äOHͦӤzҾ֦ sources MAW sources
- άOzosC ۤϪA|@ script
- ɱMΨӿܧLɮסAoӵ{O CTM AӰA
- Cѷ|ƦAç⦸ܧLɮץ[HYA
- õ̤@ӧǸAMN[HsX(u printable ASCII r)A
- åH email 覡HXC z쥦ɭԡAo <quote>CTM deltas</quote>
- NiH &man.ctm.rmail.1; {ӳBzAӵ{|۰ʸѽXBT{B
- MγoܧC o{Ǥ <application>CVSup</application> ӻOֱohFA
- ӥBAoӼҦڭ̪AӻOPA]oO@
- <emphasis>push</emphasis> ҦAӫD <emphasis>pull</emphasis>
- ҦC</para>
+ <para>另一種方式則是 <application>CTM</application>。
+ 它並不是以交談式介面來比對您所擁有的 sources 和伺服器上的 sources
+ 或是您取得的更新部份。 相反的,會有一個 script
+ 檔專門用來辨識變更過的檔案,這個程式是由 CTM 伺服器來執行,
+ 每天會比對數次,並把兩次執行期間內變更過的檔案加以壓縮,
+ 並給它們一個序號,然後就加以編碼(只用 printable ASCII 字元),
+ 並以 email 的方式寄出。 當您收到它的時候,這些 <quote>CTM deltas</quote>
+ 就可以由 &man.ctm.rmail.1; 程式來處理,該程式會自動解碼、確認、
+ 套用這些變更。 這程序比 <application>CVSup</application> 來說是快得多了,
+ 而且,這個模式對我們的伺服器來說是比較輕鬆的,因為這是一個
+ <emphasis>push</emphasis> 的模式,而非 <emphasis>pull</emphasis>
+ 的模式。</para>
- <para>MAo˰]|aӤ@ǤKC Ypߧz{MFA
- <application>CVSup</application> |XӡAæ۰ʬz⤣ɻC
- <application>CTM</application> ä|zoǰʧ@C
- YMFz source (ӥBSƥ)AziHqY}l(q̷s CVS
- <quote>base delta</quote>)å <application>CTM</application> ӭإ
- AάO <application>Anonymous CVS</application> ӧA
- un⤣Ta屼AAsPBʧ@YiC</para>
+ <para>當然,這樣做也會帶來一些不便。 若不小心把您部份的程式清除掉了,
+ <application>CVSup</application> 會偵測出來,並自動為您把不足的部份補齊。
+ <application>CTM</application> 並不會為您做這些動作。
+ 若清掉了您的部份 source (而且沒備份),您可以從頭開始(從最新的 CVS
+ <quote>base delta</quote>)並用 <application>CTM</application> 來重建它們
+ ,或是用 <application>Anonymous CVS</application> 來完成,
+ 只要把不正確的地方砍掉,再重新做同步的動作即可。</para>
</sect1>
<sect1 xml:id="makeworld">
- <title>ssĶ <quote>world</quote></title>
+ <title>重新編譯 <quote>world</quote></title>
<indexterm>
<primary>Rebuilding <quote>world</quote></primary>
</indexterm>
- <para>bs &os; source tree ̷s(L׬O &os.stable;B
- &os.current; )AUӴNiHγo source tree ӭssĶt
- C</para>
+ <para>在更新 &os; 的 source tree 到最新之後(無論是 &os.stable;、
+ &os.current; 等等),接下來就可以用這些 source tree 來重新編譯系統
+ 。</para>
<warning>
- <title>nƥ</title>
+ <title>做好備份</title>
- <para>b@jʧ@ <emphasis>e</emphasis>
- nOotΧ@ƥnʵLjաC ޭssĶ world O
- (unӤܥh@)@²檺ƱAX]ObKC
- t~AOHb source tree VdV~A]i|ytεLk}
- C</para>
+ <para>在作任何大動作 <emphasis>之前</emphasis>
+ 要記得先把系統作備份的重要性無須強調。 儘管重新編譯 world 是
+ (只要有照文件指示去作的話)一件很簡單的事情,但出錯也是在所難免的。
+ 另外,別人在 source tree 不慎搞混的錯誤,也可能會造成系統無法開機
+ 。</para>
- <para>нT{ۤvw@ƥAåB䦳 fixit Ϥζ}СC
- ziû]ΤoǪFA
- wĤ@`ƫỡpӱonaI</para>
+ <para>請確認自己已作妥相關備份,並且手邊有 fixit 磁片或開機光碟。
+ 您可能永遠也用不到這些東西,
+ 但安全第一總比事後說抱歉來得好吧!</para>
</warning>
<warning>
- <title>q\ Mailing List</title>
+ <title>訂閱相關的 Mailing List</title>
<indexterm><primary>mailing list</primary></indexterm>
- <para>&os.stable; H &os.current; AWNOݩ <emphasis>
- }oq</emphasis>C &os; @^m]OHA]|ǿ~C</para>
+ <para>&os.stable; 以及 &os.current; 分支,本質上就是屬於 <emphasis>
+ 開發階段</emphasis>。 為 &os; 作貢獻的也都是人,偶爾也會犯錯誤。</para>
- <para>ɭԳoǿ~õLjêAuO|tβͷs~ĵiӤwC
- ɫhOaAi|ɭP}ɮרtΪl(ΧV)C</para>
+ <para>有時候這些錯誤並無大礙,只是會讓系統產生新的錯誤警告而已。
+ 有時則是災難,可能會導致不能開機或檔案系統的毀損(或更糟)。</para>
- <para>YJDAKʼD <quote>heads up(`N)</quote>
- }YH mailing listAMDIHη|vTǨtΡC
- bDѨMAAKD <quote>all clear(wѨM)</quote>
- }YnHC</para>
+ <para>若遇到類似問題,貼封標題為 <quote>heads up(注意)</quote>
+ 開頭的信到相關的 mailing list,並講清楚問題點以及會影響哪些系統。
+ 在問題獲解決後,再貼標題為 <quote>all clear(已解決)</quote>
+ 開頭的聲明信。</para>
- <para>YΪO &os.stable; &os.current;AoS\Ū &a.stable;
- &a.current; QסA|Oۧ·ЦӤwC</para>
+ <para>若用的是 &os.stable; 或 &os.current;,卻又不閱讀 &a.stable; 或
+ &a.current; 的討論,那麼會是自找麻煩而已。</para>
</warning>
<warning>
- <title>n <command>make world</command></title>
+ <title>不要用 <command>make world</command></title>
- <para>@玲¤󳣷|ijϥ <command>make world</command>C
- o˰|L@ǭnBJAijubADۤvb@AAo򰵡C
- bjhƪpUAФnå <command>make world</command>A
- ӸӧΤUЪ覡C</para>
+ <para>一堆早期的舊文件都會建議說使用 <command>make world</command>。
+ 這樣做會跳過一些重要步驟,建議只有在你知道自己在作什麼,再這麼做。
+ 在絕大多數的情況下,請不要亂用 <command>make world</command>,
+ 而該改用下面介紹的方式。</para>
</warning>
<sect2>
- <title>stΪзǤ覡</title>
+ <title>更新系統的標準方式</title>
- <para>nɯŨtΫeA@wnd\ <filename>/usr/src/UPDATING</filename>
- AHA buildworld eݭn@ǨƱΪ`NƶA
- M~ΤUCBJG</para>
+ <para>要升級系統前,一定要先查閱 <filename>/usr/src/UPDATING</filename>
+ 文件,以瞭解 buildworld 之前需要作哪些事情或注意事項,
+ 然後才用下列步驟:</para>
<screen>&prompt.root; <userinput>make buildworld</userinput>
&prompt.root; <userinput>make buildkernel</userinput>
@@ -476,16 +476,16 @@
&prompt.root; <userinput>reboot</userinput></screen>
<note>
- <para>bּƪpAiݭnb <buildtarget>buildworld</buildtarget>
- BJe@ <command>mergemaster -p</command> ~৹C
- ܩɻݭnΤݭnAаѾ\ <filename>UPDATING</filename> C
- @ӻAunOi󪩸(major) &os; ɯšA
- NiLoBJC</para>
+ <para>在少數狀況,可能需要先在 <buildtarget>buildworld</buildtarget>
+ 步驟之前先作 <command>mergemaster -p</command> 才能完成。
+ 至於何時需要或不需要,請參閱 <filename>UPDATING</filename> 內的說明。
+ 一般來說,只要不是進行跨版號(major)的 &os; 版本升級,
+ 就可略過這步驟。</para>
</note>
- <para> <buildtarget>installkernel</buildtarget> Aݭn}ä
- single user Ҧ(|ҡG]iHb loader ܲŸ᭱[W
- <command>boot -s</command>)C UӰG</para>
+ <para>完成 <buildtarget>installkernel</buildtarget> 之後,需要重開機並切到
+ single user 模式(舉例:也可以在 loader 提示符號後面加上
+ <command>boot -s</command>)。 接下來執行:</para>
<screen>&prompt.root; <userinput>mergemaster -p</userinput>
&prompt.root; <userinput>make installworld</userinput>
@@ -495,158 +495,158 @@
<warning>
<title>Read Further Explanations</title>
- <para>WzBJuOUzɯŪ²满ӤwAYnMAѨC@BJA
- רOYۦ楴y kernel ]wANӾ\ŪUeC</para>
+ <para>上述步驟只是協助您升級的簡單說明而已,若要清楚瞭解每一步驟,
+ 尤其是若欲自行打造 kernel 設定,就更該閱讀下面的內容。</para>
</warning>
</sect2>
<sect2>
- <title>\Ū <filename>/usr/src/UPDATING</filename></title>
+ <title>閱讀 <filename>/usr/src/UPDATING</filename></title>
- <para>b@ƱeAаȥ\Ū
- <filename>/usr/src/UPDATING</filename> (Φb source code )
- C o|giDJDAΫwǷ|檺OǬC
- pGA{b <filename>UPDATING</filename>
- Po䪺yzĬB٬ޤBAХHW
- <filename>UPDATING</filename> ǡC</para>
+ <para>在作任何事情之前,請務必先閱讀
+ <filename>/usr/src/UPDATING</filename> (或在 source code 內類似的文件)
+ 。 這份文件會寫到可能遭遇的問題,或指定那些會執行的指令順序為何。
+ 如果你機器現在的 <filename>UPDATING</filename>
+ 文件與這邊的描述有衝突、矛盾之處,那麼請以機器上的
+ <filename>UPDATING</filename> 為準。</para>
<important>
- <para>MӡApPeҭzAua\Ū <filename>UPDATING</filename>
- ä৹N mailing listC o̳OɪAӤ۱ƥC</para>
+ <para>然而,如同先前所述,單單只靠閱讀 <filename>UPDATING</filename>
+ 並不能完全取代 mailing list。 這兩者都是互補的,而不相排斥。</para>
</important>
</sect2>
<sect2>
- <title>ˬd <filename>/etc/make.conf</filename></title>
+ <title>檢查 <filename>/etc/make.conf</filename></title>
<indexterm>
<primary><filename>make.conf</filename></primary>
</indexterm>
- <para>ˬd
+ <para>檢查
<filename>/usr/share/examples/etc/make.conf</filename>
- H
- <filename>/etc/make.conf</filename>C Ĥ@DO@Ǩtιw]
- &ndash; LAjQѰ_ӡC FbssĶɯϥγoǡA
- Чodz]w[ <filename>/etc/make.conf</filename>C Ъ`Nb
- <filename>/etc/make.conf</filename> ]w]|vTCϥ
- <command>make</command> GA
- ]]w@ǾAXۤvtΪﶵ|O@kC</para>
+ 以及
+ <filename>/etc/make.conf</filename>。 第一份文件乃是一些系統預設值
+ &ndash; 不過,大部分都被註解起來。 為了在重新編譯時能夠使用這些,
+ 請把這些設定加到 <filename>/etc/make.conf</filename>。 請注意在
+ <filename>/etc/make.conf</filename> 的任何設定也會影響到每次使用
+ <command>make</command> 的結果,
+ 因此設定一些適合自己系統的選項會是不錯的作法。</para>
- <para>@ϥΪ̳q`|q
- <filename>/usr/share/examples/etc/make.conf</filename> ƻs
- <varname>CFLAGS</varname> H <varname>NO_PROFILE</varname>
- ]w <filename>/etc/make.conf</filename>AøѰѦLO
- C</para>
+ <para>一般使用者通常會從
+ <filename>/usr/share/examples/etc/make.conf</filename> 複製
+ <varname>CFLAGS</varname> 以及 <varname>NO_PROFILE</varname>
+ 之類的設定到 <filename>/etc/make.conf</filename>,並解除相關註解印記
+ 。</para>
- <para>~A]iHոլݨL]w (<varname>COPTFLAGS</varname>B
- <varname>NOPORTDOCS</varname> )AO_ŦXۤvһݡC</para>
+ <para>此外,也可以試試看其他設定 (<varname>COPTFLAGS</varname>、
+ <varname>NOPORTDOCS</varname> 等等),是否符合自己所需。</para>
</sect2>
<sect2>
- <title>s <filename>/etc</filename> ]w</title>
+ <title>更新 <filename>/etc</filename> 內的設定檔</title>
- <para>b <filename>/etc</filename> ؿ|tΪ]wɡA
- Hζ}ɪUAȱҰ scriptC script H FreeBSD
- PӦǮtC</para>
+ <para>在 <filename>/etc</filename> 目錄會有系統的相關設定檔,
+ 以及開機時的各項服務啟動 script。 有些 script 隨 FreeBSD
+ 版本的不同而有些差異。</para>
- <para>䤤dz]wɷ|bCB@tθ̤]|ΨC רO
- <filename>/etc/group</filename>C</para>
+ <para>其中有些設定檔會在每日運作的系統裡也會用到。 尤其是
+ <filename>/etc/group</filename>。</para>
- <para>ɭԦb <command>make installworld</command> w˹L{A
- |ݭnإ߬YǯSwbθsաC biɯŤeḀiäsbA
- ]ɯŮɴN|yDC ɭ <command>make buildworld</command>
- |ˬdoǩһݪbθsլO_wsbC</para>
+ <para>有時候在 <command>make installworld</command> 安裝過程中,
+ 會需要先建立某些特定帳號或群組。 在進行升級之前,它們可能並不存在,
+ 因此升級時就會造成問題。 有時候 <command>make buildworld</command>
+ 會先檢查這些所需的帳號或群組是否已有存在。</para>
- <para>|ӳo˪ҤlAOYɯŤᥲsW <systemitem class="username">smmsp</systemitem>
- bC YϥΪ̩|sWӱbNnɯžާ@ܡA
- |b &man.mtree.8; իإ <filename>/var/spool/clientmqueue</filename>
- ɵoͥѡC</para>
+ <para>舉個這樣的例子,像是某次升級之後必須新增 <systemitem class="username">smmsp</systemitem>
+ 帳號。 若使用者尚未新增該帳號就要完成升級操作的話,
+ 會在 &man.mtree.8; 嘗試建立 <filename>/var/spool/clientmqueue</filename>
+ 時發生失敗。</para>
- <para>ѪkOb buildworld qeA &man.mergemaster.8; ÷ft
- <option>-p</option> ﶵC |墨ǰ
- <buildtarget>buildworld</buildtarget>
- <buildtarget>installworld</buildtarget> һݤ]wɡC
- YAҥΪO䴩 <option>-p</option>
- <command>mergemaster</command> A򪽱ϥ source tree
- sYiG</para>
+ <para>解法是在 buildworld 階段之前,先執行 &man.mergemaster.8; 並搭配
+ <option>-p</option> 選項。 它會比對那些執行
+ <buildtarget>buildworld</buildtarget> 或
+ <buildtarget>installworld</buildtarget> 所需之關鍵設定檔。
+ 若你所用的是早期仍未支援 <option>-p</option> 的
+ <command>mergemaster</command> 版本,那麼直接使用 source tree
+ 內的新版即可:</para>
<screen>&prompt.root; <userinput>cd /usr/src/usr.sbin/mergemaster</userinput>
&prompt.root; <userinput>./mergemaster.sh -p</userinput></screen>
<tip>
- <para>YzOg(paranoid)A
- iHUo˥hյˬdtΤWɮݩwWγQRs
- G</para>
+ <para>若您是偏執狂(paranoid),
+ 可以像下面這樣去試著檢查系統上有哪些檔案屬於已改名或被刪除的群組
+ :</para>
<screen>&prompt.root; <userinput>find / -group GID -print</userinput></screen>
- <para>o|ܩҦŦXn䪺 <replaceable>GID</replaceable> s
- (iHOsզW١AΪ̬OsժƦrN)ҦɮסC</para>
+ <para>這會顯示所有符合要找的 <replaceable>GID</replaceable> 群組
+ (可以是群組名稱,或者是群組的數字代號)的所有檔案。</para>
</tip>
</sect2>
<sect2 xml:id="makeworld-singleuser">
- <title> Single User Ҧ</title>
+ <title>切換到 Single User 模式</title>
<indexterm><primary>single-user mode</primary></indexterm>
- <para>zi|Qb single user ҦUsĶtΡC
- FiH֧~Aw˹L{N|oA\hntɮסA
- ]AҦt binariesBlibrariesBinclude ɮ׵C
- YbB@t(ר䦳\hϥΪ̦bΪɭ)oɮסA
- ²Oۧ·Ъ@kC</para>
+ <para>您可能會想在 single user 模式下編譯系統。
+ 除了可以明顯更快完成之外,安裝過程中將會牽涉許多重要的系統檔案,
+ 包括所有系統 binaries、libraries、include 檔案等。
+ 若在運作中的系統(尤其有許多使用者在用的時候)內更改這些檔案,
+ 那簡直是自找麻煩的作法。</para>
<indexterm><primary>multi-user mode</primary></indexterm>
- <para>t@ؼҦOb multi-user ҦUsĶntΡAMA single user
- ҦhwˡC Yzwoؤ覡Auݦb build(sĶL{) A
- AhUBJYiC @i single user ҦɡAAh
- <buildtarget>installkernel</buildtarget>
- <buildtarget>installworld</buildtarget> YiC</para>
+ <para>另一種模式是先在 multi-user 模式下編譯好系統,然後再切到 single user
+ 模式去安裝。 若您比較喜歡這種方式,只需在 build(編譯過程) 完成之後,
+ 再去執行下面的步驟即可。 一直到可切換 single user 模式時,再去執行
+ <buildtarget>installkernel</buildtarget> 或
+ <buildtarget>installworld</buildtarget> 即可。</para>
- <para> root G</para>
+ <para>切換為 root 身份打:</para>
<screen>&prompt.root; <userinput>shutdown now</userinput></screen>
- <para>o˴N|q쥻 multi-user Ҧ single user ҦC</para>
+ <para>這樣就會從原本的 multi-user 模式切換到 single user 模式。</para>
- <para>~]iH}Aۦb}B
- <quote>single user</quote> ﶵC p@ӴN|iJ single user ҦA
- Mb shell ܲŸBJG</para>
+ <para>除此之外也可以重開機,接著在開機選單處選擇
+ <quote>single user</quote> 選項。 如此一來就會進入 single user 模式,
+ 然後在 shell 提示符號處輸入:</para>
<screen>&prompt.root; <userinput>fsck -p</userinput>
&prompt.root; <userinput>mount -u /</userinput>
&prompt.root; <userinput>mount -a -t ufs</userinput>
&prompt.root; <userinput>swapon -a</userinput></screen>
- <para>o˷|ˬdɮרtΡAísN <filename>/</filename>
- HiŪgҦAH <filename>/etc/fstab</filename>
- ҳ]wL UFS ɮרtΡA̫ҥ swap ϰϡC</para>
+ <para>這樣會先檢查檔案系統,並重新將 <filename>/</filename>
+ 改以可讀寫的模式掛載,以及 <filename>/etc/fstab</filename>
+ 內所設定的其他 UFS 檔案系統,最後啟用 swap 磁區。</para>
<note>
- <para>Y CMOS O]aɶAӫD GMT ɰ(Y &man.date.1;
- OSܥTɶBɰ)AiݭnAJUCOG</para>
+ <para>若 CMOS 時鐘是設為當地時間,而非 GMT 時區(若 &man.date.1;
+ 指令沒顯示正確的時間、時區),那可能需要再輸入下列指令:</para>
<screen>&prompt.root; <userinput>adjkerntz -i</userinput></screen>
- <para>oBJiHT{zaɰϳ]wO_T &mdash;
- _h|y@ǰDC</para>
+ <para>這步驟可以確認您的當地時區設定是否正確 &mdash;
+ 否則日後會造成一些問題。</para>
</note>
</sect2>
<sect2>
- <title> <filename>/usr/obj</filename></title>
+ <title>移除 <filename>/usr/obj</filename></title>
- <para>bssĶtΪL{AsĶG|(w]p)
- <filename>/usr/obj</filename> C o̭ؿ|
- <filename>/usr/src</filename> ؿcC</para>
+ <para>在重新編譯系統的過程中,編譯結果會放到(預設情況)
+ <filename>/usr/obj</filename> 內。 這裡面的目錄會對應到
+ <filename>/usr/src</filename> 的目錄結構。</para>
- <para>屼oؿAiHH᪺ <command>make buildworld</command>
- L{֤@ǡAӥBiקKHesĶF{bVcb@_ۨ̿
- C</para>
+ <para>砍掉這目錄,可以讓以後的 <command>make buildworld</command>
+ 過程更快一些,而且可避免以前編譯的東西跟現在的混淆在一起的相依錯亂
+ 。</para>
- <para>Ӧ <filename>/usr/obj</filename> ɮץi|]wiʪ
- flag(Ӹ`аѾ\ &man.chflags.1;)Aӥo flag ]w~
- C</para>
+ <para>而有些 <filename>/usr/obj</filename> 內的檔案可能會設定不可更動的
+ flag(細節請參閱 &man.chflags.1;),而必須先拿掉這些 flag 設定才行
+ 。</para>
<screen>&prompt.root; <userinput>cd /usr/obj</userinput>
&prompt.root; <userinput>chflags -R noschg *</userinput>
@@ -654,20 +654,20 @@
</sect2>
<sect2 xml:id="cutting-edge-compilebase">
- <title>ssĶ Base System</title>
+ <title>重新編譯 Base System</title>
<sect3>
- <title>OdsĶ</title>
+ <title>保留編譯的紀錄</title>
- <para>ijinߺDA &man.make.1; ɲͪs_ӡC
- o˭YXAN|~TC MoˡA
- AiणDpROXFáAYADOK &os;
- mailing list NiHHiHݬO@^ƱC</para>
+ <para>建議養成好習慣,把執行 &man.make.1; 時產生的紀錄存起來。
+ 這樣若有哪邊出錯,就會有錯誤訊息的紀錄。 雖然單單這樣,
+ 你可能不知道如何分析是哪邊出了岔,但若把你問題記錄貼到 &os; 相關的
+ mailing list 就可以有人可以幫忙看是怎麼一回事情。</para>
- <para>²檺ONO &man.script.1; OAå[WѼ
- (AQsOɮצmBɦW)YiC
- oBJӦbssĶtήɴNn@AMbsĶJ
- <userinput>exit</userinput> Yi}C</para>
+ <para>最簡單的方是就是用 &man.script.1; 指令,並加上參數
+ (你想存放記錄的檔案位置、檔名)即可。
+ 這步驟應該在重新編譯系統時就要作,然後在完成編譯後輸入
+ <userinput>exit</userinput> 即可離開。</para>
<screen>&prompt.root; <userinput>script /var/tmp/mw.out</userinput>
Script started, output file is /var/tmp/mw.out
@@ -676,54 +676,54 @@ Script started, output file is /var/tmp/mw.out
&prompt.root; <userinput>exit</userinput>
Script done, &hellip;</screen>
- <para>FA٦@Iq<emphasis>O</emphasis>ɮצs
- <filename>/tmp</filename> ؿC ]}A
- oؿF賣|QMšC aO
- <filename>/var/tmp</filename> (pWҩҥ) Ϊ̬O
- <systemitem class="username">root</systemitem> aؿC</para>
+ <para>對了,還有一點儘量<emphasis>別把</emphasis>檔案存到
+ <filename>/tmp</filename> 目錄內。 因為重開機之後,
+ 這目錄內的東西都會被清空。 比較妥善的地方是
+ <filename>/var/tmp</filename> (如上例所示) 或者是
+ <systemitem class="username">root</systemitem> 的家目錄。</para>
</sect3>
<sect3 xml:id="make-buildworld">
- <title>sĶ Base System</title>
+ <title>編譯 Base System</title>
- <para>Х <filename>/usr/src</filename> ؿG</para>
+ <para>首先請先切換到 <filename>/usr/src</filename> 目錄:</para>
<screen>&prompt.root; <userinput>cd /usr/src</userinput></screen>
- <para>(MADA source code LaAYuOoˡA
- N쨺ӥؿYi)C</para>
+ <para>(當然,除非你把 source code 放到其他地方,若真是這樣,
+ 就切換到那個目錄即可)。</para>
<indexterm><primary><command>make</command></primary></indexterm>
- <para>ϥ &man.make.1; OӭssĶ worldC
- oO|q <filename>Makefile</filename> (oɷ|g &os;
- {Ӧp󭫷ssĶBHǶǨӽsĶ)hŪOC</para>
+ <para>使用 &man.make.1; 指令來重新編譯 world。
+ 這指令會從 <filename>Makefile</filename> 檔(這檔會寫 &os;
+ 的程式該如何重新編譯、以哪些順序來編譯等等)去讀取相關指令。</para>
- <para>@UO榡pUG</para>
+ <para>一般下指令的格式如下:</para>
<screen>&prompt.root; <userinput>make -x -DVARIABLE target</userinput></screen>
- <para>boӨҤlA<option>-<replaceable>x</replaceable></option>
- OAQǵ &man.make.1; ﶵAӸ`аѾ\ &man.make.1; A
- ̭dһC</para>
+ <para>在這個例子,<option>-<replaceable>x</replaceable></option>
+ 是你想傳給 &man.make.1; 的選項,細節說明請參閱 &man.make.1; 說明,
+ 裡面有相關範例說明。</para>
<para><option>-D<replaceable>VARIABLE</replaceable></option>
- hOܼƳ]wǵ <filename>Makefile</filename>C oܼƷ|
- <filename>Makefile</filename> 欰C odz]wP
- <filename>/etc/make.conf</filename> ܼƳ]wO@ˡA
- uOt@س]w覡ӤwC</para>
+ 則是把變數設定傳給 <filename>Makefile</filename>。 這些變數會控制
+ <filename>Makefile</filename> 的行為。 這些設定與
+ <filename>/etc/make.conf</filename> 的變數設定是一樣,
+ 只是另一種設定方式而已。</para>
<screen>&prompt.root; <userinput>make -DNO_PROFILE target</userinput></screen>
- <para>WҤlhOt@س]w覡A]NOǤnC
- oӨҤlNOhsĶ profiled librariesAĪGNpP]wb
- <filename>/etc/make.conf</filename> </para>
+ <para>上面的例子則是另一種設定方式,也就是哪些不要。
+ 這個例子中的意思是不去編譯 profiled libraries,效果就如同設定在
+ <filename>/etc/make.conf</filename> 的</para>
<programlisting>NO_PROFILE= true # Avoid compiling profiled libraries</programlisting>
- <para><replaceable>target</replaceable> hOiD &man.make.1;
- ӥhǡC C <filename>Makefile</filename> |wqP
- <quote>targets</quote>AM̱zҵ target N|Mw|ǰʧ@
- C</para>
+ <para><replaceable>target</replaceable> 則是告訴 &man.make.1;
+ 該去做哪些。 每個 <filename>Makefile</filename> 都會定義不同的
+ <quote>targets</quote>,然後依您所給的 target 就會決定會做哪些動作
+ 。</para>
<para>Some targets are listed in the
<filename>Makefile</filename>, but are not meant for you to run.
diff --git a/zh_TW.Big5/books/handbook/desktop/Makefile b/zh_TW.UTF-8/books/handbook/desktop/Makefile
index 192ca2b156..192ca2b156 100644
--- a/zh_TW.Big5/books/handbook/desktop/Makefile
+++ b/zh_TW.UTF-8/books/handbook/desktop/Makefile
diff --git a/zh_TW.UTF-8/books/handbook/desktop/chapter.xml b/zh_TW.UTF-8/books/handbook/desktop/chapter.xml
new file mode 100644
index 0000000000..e4169261ff
--- /dev/null
+++ b/zh_TW.UTF-8/books/handbook/desktop/chapter.xml
@@ -0,0 +1,1037 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ The FreeBSD Documentation Project
+ $FreeBSD$
+ Original revision: 1.72
+-->
+<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="desktop">
+ <info><title>桌面環境應用程式</title>
+ <authorgroup>
+ <author><personname><firstname>Christophe</firstname><surname>Juniet</surname></personname><contrib>Contributed by </contrib></author>
+ </authorgroup>
+ </info>
+
+
+
+ <sect1 xml:id="desktop-synopsis">
+ <title>概述</title>
+
+ <para>在 FreeBSD 上面可以執行非常多種類的桌面應用程式,
+ 像是網頁瀏覽器和文字處理軟體等。
+ 這些程式大都可以透過套件來安裝或是從 Ports Collection 中自動編譯安裝。
+ 許多新的使用者會希望能在在他們的桌面系統中找到這些程式。
+ 這章將會告訴你如何不用費太多功夫去安裝一些熱門的桌面應用程式,
+ 不管是從套件或是從 Ports Collection 中安裝。</para>
+
+ <para>需要注意到的是:當從 ports 中安裝程式的時候,
+ 它們是從原始碼開始編譯的。依照你編譯的 ports 和電腦速度(硬體等級),
+ 有可能會花很長一段時間才能完成。
+ 如果從原始碼編譯對你來說會花太多時間的話,
+ 大部分的 ports 你都能找到事先編譯好的套件來安裝。</para>
+
+ <para>因為 FreeBSD 具有相容 Linux 二進制的特性,
+ 許多原先在 Linux 上開發的應用程式都能在你的 FreeBSD 桌面環境執行。
+ 在安裝任何 Linux 應用程式之前,強烈建議你先閱讀 <xref linkend="linuxemu"/>
+ Linux 執行相容模式這個章節。
+ 而許多用 Linux 二進制相容模式的軟體在 ports 裡頭通常都會用
+ <quote>linux-</quote> 開頭。
+ 當你在搜尋某個特定軟體時,記住這點,並且可以使用 &man.whereis.1;
+ 來找。 在下列的說明中,
+ 都假設你在安裝任何 Linux 應用軟體之前,
+ 已經事先啟用了 Linux 二進制相容模式。</para>
+
+ <para>下列目錄是這章中所涵蓋的應用程式:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>瀏覽器 (像是 <application>Mozilla</application>,
+ <application>Opera</application>,
+ <application>Firefox</application>,
+ <application>Konqueror</application>)</para>
+ </listitem>
+
+ <listitem>
+ <para>辦公軟體 (像是
+ <application>KOffice</application>,
+ <application>AbiWord</application>,
+ <application>The GIMP</application>,
+ <application>OpenOffice.org</application>)</para>
+ </listitem>
+
+ <listitem>
+ <para>文件瀏覽軟體 (像是 <application>&acrobat.reader;</application>,
+ <application>gv</application>,
+ <application>Xpdf</application>,
+ <application>GQview</application>)</para>
+ </listitem>
+
+ <listitem>
+ <para>財務處理軟體 (像是
+ <application>GnuCash</application>,
+ <application>Gnumeric</application>,
+ <application>Abacus</application>)</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>在閱讀這章之前,你必須</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>知道如何安裝其他的軟體(third-party software)
+ (<xref linkend="ports"/>).</para>
+ </listitem>
+
+ <listitem>
+ <para>知道如何安裝 Linux 軟體
+ (<xref linkend="linuxemu"/>).</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>要知道更多關於多媒體環境的資訊,請先閱讀
+ <xref linkend="multimedia"/> 多媒體章節。
+ 如果你想要設定和使用電子郵件,也請你先看 <xref linkend="mail"/>郵件章節。</para>
+ </sect1>
+
+ <sect1 xml:id="desktop-browsers">
+ <title>瀏覽器</title>
+
+ <indexterm>
+ <primary>瀏覽器</primary>
+ <secondary>網路</secondary>
+ </indexterm>
+
+ <para>在 FreeBSD 中並沒有預先安裝好的特定瀏覽器。
+ 但在 Ports Collection 之中卻有許多瀏覽器可供你安裝使用。
+ 如果你沒有足夠時間去編譯所有的東西
+ (在某些情況下這可能會花上很長的一段時間),
+ 這些都有現成的套件可供直接安裝。</para>
+
+ <para><application>KDE</application> 和
+ <application>GNOME</application> 桌面環境都已提供 HTML 瀏覽器。
+ 請參考 <xref linkend="x11-wm"/> 來了解更多有關如何設定這些完整的桌面環境系統資訊。</para>
+
+ <para>如果你在尋找輕量化的瀏覽器,你可以從 Ports Collection 中找到下面的幾種:
+ <package>www/dillo</package>,
+ <package>www/links</package>, 或
+ <package>www/w3m</package>。</para>
+
+ <para>這節介紹這些瀏覽器:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry>瀏覽器名稱</entry>
+ <entry>所需的系統資源</entry>
+ <entry>從 ports 安裝時間</entry>
+ <entry>主要相依的軟體</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><application>Mozilla</application></entry>
+ <entry>多</entry>
+ <entry>長</entry>
+ <entry><application>Gtk+</application></entry>
+ </row>
+
+ <row>
+ <entry><application>Opera</application></entry>
+ <entry>少</entry>
+ <entry>短</entry>
+ <entry>FreeBSD 和 Linux 的版本都有。
+ Linux 的版本需要 Linux 二進制相容模組以及
+ <application>linux-openmotif</application>.</entry>
+ </row>
+
+ <row>
+ <entry><application>Firefox</application></entry>
+ <entry>中度</entry>
+ <entry>長</entry>
+ <entry><application>Gtk+</application></entry>
+ </row>
+
+ <row>
+ <entry><application>Konqueror</application></entry>
+ <entry>中度</entry>
+ <entry>長</entry>
+ <entry><application>KDE</application> 函式庫</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <sect2>
+ <title>Mozilla</title>
+ <indexterm>
+ <primary><application>Mozilla</application></primary>
+ </indexterm>
+
+ <para><application>Mozilla</application>
+ 是相當現代化、穩定且完全移植至 FreeBSD 系統上。
+ 它也具備有十分符合 HTML 標準的顯示引擎,
+ 它更提供了郵件及新聞群組的閱讀功能。
+ 此外如果你打算要自己寫一些網頁的話,它還提供了 HTML 的編輯器。
+ 如果是 <application>&netscape;</application> 的使用者,
+ 你可能會認出這跟 <application>Communicator</application> 很像,
+ 它們其實同樣是使用相同基礎的瀏覽器。</para>
+
+ <para>在速度較慢,像是 CPU 速度少於 233MHz 或是小於 64MB 記憶體的機器上面,
+ 完全使用 <application>Mozilla</application> 會是件極度耗費資源的事。
+ 所以在這樣的機器上面,你可能會想要使用 <application>Opera</application>
+ 這樣輕量級的瀏覽器,而接下來後面會提到。</para>
+ <!--20060316: psilotum 譯著:多加一句話,試著讓此段比較通順一些。
+ 「所以在這樣的機器上面」-->
+
+ <para>如果你有什麼原因不能或是不想編譯
+ <application>Mozilla</application> 的話,FreeBSD
+ GNOME 團隊已經為你做好了這件事。
+ 只要用下面的指令透過網路安裝套件就行了:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r mozilla</userinput></screen>
+
+ <para>如果沒有找到套件可以使用,而你也有足夠的時間和磁碟空間來編譯
+ <application>Mozilla</application> 並安裝到你的系統中,
+ 你可以透過下列步驟來安裝:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/www/mozilla</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+
+ <para><application>Mozilla</application> 需要使用
+ <systemitem class="username">root</systemitem> 的權限來執行 chrome
+ 註冊來確保正確的初始化。
+ 另外,如果你需要抓一些額外的外掛程式像是 mouse gestures,
+ 你就必須要使用 <systemitem class="username">root</systemitem> 的權限來安裝,
+ 以適當的安裝這些外掛程式。</para>
+
+ <para>一旦你完成了 <application>Mozilla</application>
+ 的安裝,你就再也不需要 <systemitem class="username">root</systemitem> 的權限了。
+  你可以直接打下面的指令來啟動 <application>Mozilla</application>:</para>
+
+ <screen>&prompt.user; <userinput>mozilla</userinput></screen>
+
+ <para>也可以直接打下列指令,直接啟動郵件和新聞閱讀器:</para>
+
+ <screen>&prompt.user; <userinput>mozilla -mail</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>Firefox</title>
+ <indexterm>
+ <primary><application>Firefox</application></primary>
+ </indexterm>
+
+ <para><application>Firefox</application> 是以
+ <application>Mozilla</application> 原始碼為基礎的新世代瀏覽器。
+ <application>Mozilla</application> 是一堆應用軟體的整合套裝,
+ 像是瀏覽器、郵件程式、聊天室軟體等所組成。
+ <application>Firefox</application> 則純粹是瀏覽器,
+ 這也是為何它能短小精悍之故。</para>
+
+ <para>可以打下列指令來安裝:</para>
+
+ <screen>&prompt.root;<userinput>pkg_add -r firefox</userinput></screen>
+
+ <para>也可以透過 Ports Collection,以編譯原始碼的方式來安裝:</para>
+
+ <screen>&prompt.root;<userinput>cd /usr/ports/www/firefox</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+ </sect2>
+
+ <sect2 xml:id="moz-java-plugin">
+ <title>Firefox, Mozilla 的 &java; plugin 程式</title>
+
+ <note>
+ <para>本節以及下一節,均假設您已裝好
+ <application>Firefox</application> 或
+ <application>Mozilla</application>。</para>
+ </note>
+
+ <para>&os; 基金會與 Sun Microsystems 有達成授權協議,
+ 可以散播 Java Runtime Environment(&jre;) 及
+ Java Developement Kit(&jdk;) 的 &os; 版 binary(執行檔)。
+ &os; 版的 binary 可以在 <link xlink:href="http://www.freebsdfoundation.org/downloads/java.shtml">&os;
+ 基金會</link> 網站下載。</para>
+
+ <para>要讓 <application>Firefox</application> 或
+ <application>Mozilla</application> 支援 &java; 的話,首先要先裝
+ <package>java/javavmwrapper</package> 這個 port。
+ 然後再去 <uri xlink:href="http://www.freebsdfoundation.org/downloads/java.shtml">http://www.freebsdfoundation.org/downloads/java.shtml</uri>
+ 下載 <application>Diablo &jre;</application>,並以 &man.pkg.add.1;
+ 指令來安裝之。</para>
+
+ <para>接著啟動瀏覽器,在網址列輸入 <literal>about:plugins</literal>
+ 然後按 <keycap>Enter</keycap> 鍵,就會顯示目前已裝的 plugins 清單,
+ 這時應該就可以看到 <application>&java;</application> 也有列出來。
+ 若仍未看到的話,那就切換為 <systemitem class="username">root</systemitem> 帳號,
+ 打下列指令:</para>
+
+ <screen>&prompt.root; <userinput>ln -s /usr/local/diablo-jre1.5.0/plugin/i386/ns7/libjavaplugin_oji.so \
+ /usr/local/lib/browser_plugins/</userinput></screen>
+
+ <para>最後,重啟瀏覽器即可。</para>
+ </sect2>
+
+ <sect2 xml:id="moz-flash-plugin">
+
+ <title>Firefox, Mozilla 的 &macromedia; &flash; plugin 程式</title>
+
+ <para>&macromedia; &flash; plugin 程式並沒有 &os; 版,
+ 然而可以透過軟體層(wrapper)來執行 Linux 版的 plugin 程式。
+ 這個 wrapper 同時也支援 &adobe; &acrobat; 以及 &realplayer; plugin
+ 等。</para>
+
+ <para>接下來去裝 <package>www/linuxpluginwrapper</package>。
+ linuxpluginwrapper 需要先裝一個很大的 <package>emulators/linux_base</package>port。
+ 然後根據 port 所指示的作法,
+ 去正確地設定你的 <filename>/etc/libmap.conf</filename>!
+ 設定的範例檔案位於
+ <filename>/usr/local/share/examples/linuxpluginwrapper/</filename>
+ 的目錄底下。</para>
+
+ <para>下一步,則是裝 <package>www/linux-flashplugin7</package>。
+ 裝好後,再啟動瀏覽器,在網址列輸入 <literal>about:plugins</literal>,
+ 然後按 <keycap>Enter</keycap> 鍵就會顯示目前已裝的 plugin 清單。</para>
+
+ <para>若 &flash; plugin 沒出現的話,大多可能是因為漏了做 symlink
+ 連結之故。 請切為 <systemitem class="username">root</systemitem> 帳號,打下列指令:</para>
+
+ <screen>&prompt.root; <userinput>ln -s /usr/local/lib/npapi/linux-flashplugin/libflashplayer.so \
+ /usr/local/lib/browser_plugins/</userinput>
+&prompt.root; <userinput>ln -s /usr/local/lib/npapi/linux-flashplugin/flashplayer.xpt \
+ /usr/local/lib/browser_plugins/</userinput></screen>
+
+ <para>最後,重啟瀏覽器應該就可看到了。</para>
+
+ <note>
+ <para><application>linuxpluginwrapper</application> 只能在
+ &i386; 的系統架構下運行。</para>
+ </note>
+
+ </sect2>
+
+ <sect2>
+ <title>Opera</title>
+ <indexterm>
+ <primary><application>Opera</application></primary>
+ </indexterm>
+
+ <para><application>Opera</application> 是個具備完整功能、符合標準的瀏覽器。
+ 它同時也具備了內建的郵件、新聞閱讀器、IRC、RSS/Atom feeds 閱讀器等。
+ 此外 <application>Opera</application> 更是個輕量級、
+ 執行速度又快的瀏覽器。
+ 它在 ports 中有兩種版本:「原生」的 FreeBSD 版本還有在 Linux
+ 模擬模式下的版本。</para>
+
+ <para>要用 <application>Opera</application> 的 FreeBSD 版本來瀏覽網頁的話,
+ 用下面的指令安裝:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r opera</userinput></screen>
+
+ <para>有些 FTP 站台並沒有全部的套件,
+ 但是打下面的指令就能從 Ports Collection 中安裝:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/www/opera</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <para>要安裝 <application>Opera</application> 的 Linux 版本的話,
+ 請將上面例子中的 <literal>opera</literal> 替換成
+ <literal>linux-opera</literal>。
+ 有些時候, Linux 的版本是十分有用的,
+ 像是只有 Linux 版本外掛程式的時候。
+ 但在其他方面來說, FreeBSD 和 Linux 的版本功能上是一樣的。</para>
+
+ </sect2>
+
+ <sect2>
+ <title>Konqueror</title>
+ <indexterm>
+ <primary><application>Konqueror</application></primary>
+ </indexterm>
+
+ <para><application>Konqueror</application> 是 <application>KDE</application>
+ 桌面系統的一部分,但是它也可以藉由安裝
+ <package>x11/kdebase3</package>
+ 在 KDE 環境以外使用。
+ <application>Konqueror</application> 不只是個網頁瀏覽器,
+ 他同時也是檔案管理器和多媒體瀏覽器。</para>
+
+ <para><application>Konqueror</application> 也有許多的外掛程式,
+ 這些外掛程式可以從 <package>misc/konq-plugins</package>
+ 中安裝。</para>
+
+ <para><application>Konqueror</application> 也支援 <application>&flash;</application> 的外掛程式。
+ 如何安裝的說明請參閱:<uri xlink:href="http://freebsd.kde.org/howto.php">http://freebsd.kde.org/howto.php</uri>。</para>
+ </sect2>
+ </sect1>
+
+ <sect1 xml:id="desktop-productivity">
+ <title>辦公室軟體</title>
+
+ <para>當開始進行辦公,
+ 新的使用者通常會去找好用的辦公室軟體或是好上手的文字處理器。
+ 目前 有些<link linkend="x11-wm">桌面環境</link> 像是
+ <application>KDE</application>已經提供了辦公軟體組合的套件。
+ FreeBSD 提供了所需的所有辦公軟體,桌面環境也不例外。</para>
+
+ <para>這節涵蓋了下列的這些軟體:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry>軟體名稱</entry>
+ <entry>所需系統資源</entry>
+ <entry>從 Ports 安裝的時間</entry>
+ <entry>主要相依套件</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><application>KOffice</application></entry>
+ <entry>少</entry>
+ <entry>長</entry>
+ <entry><application>KDE</application></entry>
+ </row>
+
+ <row>
+ <entry><application>AbiWord</application></entry>
+ <entry>少</entry>
+ <entry>短</entry>
+ <entry><application>Gtk+</application> 或是 <application>GNOME</application></entry>
+ </row>
+
+ <row>
+ <entry><application>The Gimp</application></entry>
+ <entry>少</entry>
+ <entry>長</entry>
+ <entry><application>Gtk+</application></entry>
+ </row>
+
+ <row>
+ <entry><application>OpenOffice.org</application></entry>
+ <entry>多</entry>
+ <entry>很久</entry>
+ <entry><application>&jdk; 1.4</application>, <application>Mozilla</application></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <sect2>
+ <title>KOffice</title>
+ <indexterm>
+ <primary><application>KOffice</application></primary>
+ </indexterm>
+ <indexterm>
+ <primary>辦公軟體套件</primary>
+ <secondary><application>KOffice</application></secondary>
+ </indexterm>
+
+ <para>KDE 社群在它的桌面環境裡頭提供了一個可以在 <application>KDE</application>
+ 外使用的辦公軟體組合。 它包含了四種模組:
+ <application>KWord</application> 是文字處理器,
+ <application>KSpread</application> 是試算表程式,
+ <application>KPresenter</application> 是簡報播放程式,
+ 另外 <application>Karbon14</application> 讓你可以產生圖形化的文件。
+ <footnote><para>譯註:Karbon14 是向量繪圖軟體,以前叫 Kontour,更早之前稱為 Killustrator。
+ </para></footnote>
+ </para>
+
+ <para>在安裝最新版的 <application>KOffice</application> 之前,
+ 請先確定你有最新版本的 <application>KDE</application>。</para>
+
+ <para>若要用套件來安裝 <application>KOffice</application>,
+ 請依照下面的指令:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r koffice</userinput></screen>
+
+ <para>如果套件不存在的話,你可以使用 ports
+ collection. 例如要安裝 <application>KDE3</application> 中的
+ <application>KOffice</application>,請使用下列指令安裝:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/editors/koffice-kde3</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>AbiWord</title>
+ <indexterm>
+ <primary><application>AbiWord</application></primary>
+ </indexterm>
+
+ <para><application>AbiWord</application>
+ 是一個免費的文字處理軟體,外觀和感覺都近似於 <application>&microsoft; Word</application>。
+ 它適合處理文件、信件、報告、備忘錄等等。
+ 它也非常快速,包含了許多功能而且非常容易上手。</para>
+
+ <para><application>AbiWord</application> 可以輸入或輸出許多檔案格式,
+ 包括一些有專利的格式,例如微軟(Microsoft)公司的
+ <filename>.doc</filename> 格式。</para>
+
+ <para><application>AbiWord</application> 也能用套件安裝,
+ 你可以用下列指令來安裝:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r abiword</userinput></screen>
+
+ <para>如果找不到套件的話,它也可以從 Ports Collection 中編譯安裝。
+ 而 Ports Collection 應該要保持在最新的狀態。
+ <application>AbiWord</application> 可以透過下列方式編譯安裝:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/editors/abiword</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>The GIMP</title>
+ <indexterm>
+ <primary><application>The GIMP</application></primary>
+ </indexterm>
+
+ <para>對於影像的編輯及修改來說,<application>GIMP</application>
+ 是非常精緻的影像處理軟體。
+ 它可以當作簡單的繪圖軟體或是高品質的相片處理軟體。
+ 它支援為數眾多的外掛程式及指令稿 (script-fu) 介面。
+ <application>GIMP</application> 可以讀寫許多檔案格式。
+ 它也支援掃描器
+ <footnote><para>
+ 譯註:你必須透過 sane-frontends 或 xsane 來掃描</para></footnote>
+ 和手寫板。</para>
+
+ <para>譯註:<application>GIMP</application> 在目前是 2.x 版,如果你想要安裝
+ 1.x 版的話,請用 Ports Collection 中的
+ <package>graphics/gimp1</package>。
+ 另外如果你已經使用習慣 Adobe Photoshop,而且不習慣
+ <application>GIMP</application> 介面的話,你也可以嘗試安裝
+ <package>graphics/gimpshop</package>,
+ 它的使用介面十分類似 Adobe Photoshop。</para>
+
+ <para>你可以使用下面指令安裝套件:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r gimp</userinput></screen>
+
+ <para>如果的你的 FTP 站台沒有這個套件,你可以使用
+ Ports Collection。 在 Ports Collection 的
+ <link xlink:href="http://www.FreeBSD.org/ports/graphics.html">graphics</link>
+ 目錄下也包含了
+ <application>The Gimp Manual</application>(GIMP 使用手冊)。
+ 下面示範如何安裝這些程式:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/graphics/gimp</userinput>
+&prompt.root; <userinput>make install clean</userinput>
+&prompt.root; <userinput>cd /usr/ports/graphics/gimp-manual-pdf</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <para>譯註:另外在 Ports Collection 中也有一些外掛程式可以使用,
+ 例如說可以處理數位相機 raw 檔案格式的 <package>gimp-ufraw</package>。
+ </para>
+
+ <note><para>GIMP 使用手冊也有 HTML 格式的,你可以在
+ <package>graphics/gimp-manual-html</package>
+ 中安裝。</para>
+ </note>
+ </sect2>
+
+ <sect2>
+ <title>OpenOffice.org</title>
+ <indexterm>
+ <primary><application>OpenOffice.org</application></primary>
+ </indexterm>
+ <indexterm>
+ <primary>office suite</primary>
+ <secondary><application>OpenOffice.org</application></secondary>
+ </indexterm>
+
+ <para><application>OpenOffice.org</application> 包含了所有完整的辦公軟體組合:
+ 文字處理器、試算表、簡報軟體還有繪圖軟體。
+ 除了它的使用者介面非常類似其他的辦公軟體,
+ 他還能夠輸入和輸出許多熱門的檔案格式。
+ 它也包含了不同語言的使用者介面、拼字檢查和字典。</para>
+
+ <para><application>OpenOffice.org</application>
+ 的文字處理器使用 XML 檔案格式來增加移植性及彈性。
+ 試算表程式支援巨集(macro)功能而且能夠使用外來的資料庫介面。
+ <application>OpenOffice.org</application> 已經十分穩定,
+ 並且能夠在 &windows;, &solaris;, Linux, FreeBSD 及
+ &macos;&nbsp;X 等作業系統上面執行。
+ 想知道更多關於 <application>OpenOffice.org</application>
+ 的資訊可以在
+ <link xlink:href="http://www.openoffice.org/">OpenOffice.org 網頁</link>
+ 上查詢。你也可以在 <link xlink:href="http://porting.openoffice.org/freebsd/">FreeBSD OpenOffice.org
+ 移植團隊</link>
+ 的網頁上查詢關於 FreeBSD 上 OpenOffice 特定的資訊或直接下載已編譯好的套件</para>
+
+ <para>要安裝 <application>OpenOffice.org</application>,
+ 請用以下方式來執行:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r openoffice.org</userinput></screen>
+
+ <note>
+ <para>當你在使用 &os; -RELEASE 版本的時候,上面的作法應該行得通。
+ 要是其他的版本,你應該看一下 &os; <application>OpenOffice.org</application>
+ 移植團隊的網站,並且用 &man.pkg.add.1; 安裝合適的套件。
+ 在這個站台都可以下載到穩定的釋出版(release)或開發中的版本。</para>
+ </note>
+
+ <para>當已經安裝完之後,你只要鍵入下面的指令就能執行
+ <application>OpenOffice.org</application>:</para>
+
+ <screen>&prompt.user; <userinput>openoffice.org</userinput></screen>
+
+ <para>譯註:端看你的版本,有時候需要輸入如 openoffice.org-2.0.1
+ 之類的指令,不過你也可以用 shell 中的 alias 或是用 symbolic link
+ 來處理。</para>
+
+ <note>
+ <para>在第一次啟動的時候,OpenOffice 會問到一些問題。
+ 而且在你的家目錄底下會自動建立 <filename>.openoffice.org2</filename>
+ 的資料夾。</para>
+ </note>
+
+ <para>如果無法取得 <application>OpenOffice.org</application>
+ 的套件,你仍然可以選擇從 port 編譯。
+ 不過你必須謹記在心:編譯的過程會需要大量的磁碟空間且相當耗時。</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/editors/openoffice.org-2</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <note>
+ <para>如果你想要安裝本地化的版本,把前面的指令代換成下面的:</para>
+
+ <screen>&prompt.root; <userinput>make LOCALIZED_LANG=你的語言 install clean</userinput></screen>
+
+ <para>你必須把<replaceable>你的語言</replaceable>
+ 換成正確的語言 ISO-code
+ <footnote>
+ <para>譯註:臺灣正體中文使用者為 zh-TW。</para>
+ </footnote>
+ 所支援的語言代碼清單可以在 port 目錄裡的
+ <filename>files/Makefile.localized</filename> 檔案中找到。</para>
+ </note>
+
+ <para>一旦完成了上述步驟,
+ <application>OpenOffice.org</application> 可用以下指令啟動:</para>
+
+ <screen>&prompt.user; <userinput>openoffice.org</userinput></screen>
+
+ </sect2>
+ </sect1>
+
+ <sect1 xml:id="desktop-viewers">
+ <title>文件閱覽器</title>
+
+ <para>近年來有些文件格式變得愈來愈流行,
+ 基本的系統中也許不會有這些格式所需的標準閱覽器。
+ 在這一節,我們來看看怎麼安裝這些軟體。</para>
+
+ <para>這張涵蓋了下列的軟體</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry>軟體名稱</entry>
+ <entry>所需系統資源</entry>
+ <entry>從 Ports 安裝時間</entry>
+ <entry>主要相依套件</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><application>&acrobat.reader;</application></entry>
+ <entry>少</entry>
+ <entry>短</entry>
+ <entry>Linux 二進制相容模組</entry>
+ </row>
+
+ <row>
+ <entry><application>gv</application></entry>
+ <entry>少</entry>
+ <entry>短</entry>
+ <entry><application>Xaw3d</application></entry>
+ </row>
+
+ <row>
+ <entry><application>Xpdf</application></entry>
+ <entry>少</entry>
+ <entry>短</entry>
+ <entry><application>FreeType</application></entry>
+ </row>
+
+ <row>
+ <entry><application>GQview</application></entry>
+ <entry>少</entry>
+ <entry>短</entry>
+ <entry><application>Gtk+</application> 或是 <application>GNOME</application></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <sect2>
+ <title>&acrobat.reader;</title>
+ <indexterm>
+ <primary><application>Acrobat Reader</application></primary>
+ </indexterm>
+ <indexterm>
+ <primary>PDF</primary>
+ <secondary>閱覽</secondary>
+ </indexterm>
+
+ <para>許多文件在散佈的時候都是用 PDF 的檔案格式,
+ 這個格式是基於 <quote>可攜式文件格式(Portable Document Format)</quote>。
+ 其中一個推薦的閱覽軟體就是<application>&acrobat.reader;</application>,
+ 它是由 Adobe 公司發行給 Linux 使用的版本。
+ 因為 FreeBSD 也可以執行 Linux 二進位檔案,
+ 所以它也能在 FreeBSD 上面執行。</para>
+
+ <para>要從 Ports Collection 中安裝
+ <application>&acrobat.reader; 7</application>
+ 只要:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/print/acroread7</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <para>因為授權的限制,所以不提供編譯好的套件。</para>
+
+ </sect2>
+
+ <sect2>
+ <title>gv</title>
+ <indexterm>
+ <primary><application>gv</application></primary>
+ </indexterm>
+ <indexterm>
+ <primary>PDF</primary>
+ <secondary>viewing</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>PostScript</primary>
+ <secondary>閱覽</secondary>
+ </indexterm>
+
+ <para><application>gv</application>是 &postscript; 和 PDF 的閱覽器。
+ 它建構於 <application>ghostview</application>的基礎上,
+ 不過因為使用 <application>Xaw3d</application> 函式庫,
+ 所以外觀看起來比較漂亮。 gv 速度快,介面簡潔並且有許多功能,
+ 比如說方向性、紙張大小、縮放比例、和反鋸齒(antialias)等。
+ 而且幾乎所有的使用都可以從鍵盤或滑鼠來完成。</para>
+
+ <para>用套件來安裝 <application>gv</application>,使用下列指令:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r gv</userinput></screen>
+
+ <para>如果你不能取得套件,你可以使用 Ports Collection:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/print/gv</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>Xpdf</title>
+ <indexterm>
+ <primary><application>Xpdf</application></primary>
+ </indexterm>
+ <indexterm>
+ <primary>PDF</primary>
+ <secondary>閱覽</secondary>
+ </indexterm>
+
+ <para>如果你想要一個小型的 FreeBSD PDF 閱覽軟體,
+ <application>Xpdf</application>是個輕量級而且有效率的閱覽器。
+ 它只需要非常少的資源而且十分穩定。
+ 它只使用標準的 X 字型而不需要 <application>&motif;</application>
+ 或是其他的 X 工具組(toolkit)。</para>
+
+ <para>用套件來安裝 <application>Xpdf</application>,使用下列指令:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r xpdf</userinput></screen>
+
+ <para>如果套件不存在或是你偏好使用 Ports Collection,
+ 使用以下指令: </para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/graphics/xpdf</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <para>一旦完成了安裝,你可以啟動 <application>Xpdf</application>
+ 並且使用滑鼠右鍵去使用選單。</para>
+ </sect2>
+
+ <sect2>
+ <title>GQview</title>
+ <indexterm>
+ <primary><application>GQview</application></primary>
+ </indexterm>
+
+ <para><application>GQview</application> 是影像管理軟體。
+ 你可以用單鍵來閱覽檔案、啟動額外的編輯器、縮圖預覽等功能。
+ 它也有幻燈片播放(slideshow)及一些基本的檔案操作功能。
+ 你可用 GQview 管理影像集並能輕鬆地找出重複的檔案。
+ <application>GQview</application>
+ 能夠使用全螢幕觀看並支援國際化。</para>
+
+ <para>如果你想要安裝 <application>GQview</application>的套件,
+ 請使用下列指令:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r gqview</userinput></screen>
+
+ <para>如果套件無法取得,或是你比較喜歡使用 Ports Collection,只要:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/graphics/gqview</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+ </sect2>
+ </sect1>
+
+ <sect1 xml:id="desktop-finance">
+ <title>財務</title>
+
+ <para>如果有任何理由你想要在你的 FreeBSD 桌面環境上管理你的個人財務,
+ 這裡有一些功能強大、使用簡單的應用程式可供安裝。
+ 這些財務管理軟體之中有些是相容於流行的
+ <application>Quicken</application> 或 <application>Excel</application> 文件。</para>
+
+ <para>這節涵蓋了下面這些軟體:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry>軟體名稱</entry>
+ <entry>所需系統資源</entry>
+ <entry>從 Ports 安裝的時間</entry>
+ <entry>主要的相依套件</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><application>GnuCash</application></entry>
+ <entry>少</entry>
+ <entry>長</entry>
+ <entry><application>GNOME</application></entry>
+ </row>
+
+ <row>
+ <entry><application>Gnumeric</application></entry>
+ <entry>少</entry>
+ <entry>長</entry>
+ <entry><application>GNOME</application></entry>
+ </row>
+
+ <row>
+ <entry><application>Abacus</application></entry>
+ <entry>少</entry>
+ <entry>短</entry>
+ <entry><application>Tcl/Tk</application></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <sect2>
+ <title>GnuCash</title>
+ <indexterm>
+ <primary><application>GnuCash</application></primary>
+ </indexterm>
+
+ <para><application>GnuCash</application> 是
+ <application>GNOME</application> 團隊努力成果中的一部分,
+ 而 <application>GNOME</application> 主要是提供終端使用者(end-users)
+ 親切而強大的桌面應用程式。
+ 使用 <application>GnuCash</application>,
+ 你可以持續紀錄你的收入及花費、你的銀行帳戶、或是你的股票證券等。
+ 它的特性是介面直覺但功能仍非常專業。</para>
+
+ <para><application>GnuCash</application> 提供了一個智慧的註冊器、
+ 帳戶層級系統、許多快速鍵及自動完成(auto-completion)模式。
+ 它也能分開單一的報表至數個詳細的部份。
+ <application>GnuCash</application> 也能夠輸入及合併
+ <application>Quicken</application> QIF 檔案。
+ 它也能處理大部分國際的日期及通用貨幣之格式。</para>
+
+ <para>要安裝 <application>GnuCash</application> 到你的系統中,
+ 只要做下列步驟:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r gnucash</userinput></screen>
+
+ <para>如果不能取得套件,你可以使用 Ports Collection:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/finance/gnucash</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>Gnumeric</title>
+ <indexterm>
+ <primary><application>Gnumeric</application></primary>
+ </indexterm>
+ <indexterm>
+ <primary>試算表</primary>
+ <secondary><application>Gnumeric</application></secondary>
+ </indexterm>
+
+ <para><application>Gnumeric</application> 是
+ <application>GNOME</application> 桌面環境中的試算表。
+ 它的特點是能夠根據儲存格格式(cell format)及自動補齊的系統,
+ 來方便自動地「猜出」使用者的輸入。
+ 它也能夠輸入許多熱門的檔案格式,像是
+ <application>Excel</application>, <application>Lotus 1-2-3</application>, 或是 <application>Quattro Pro</application>。
+
+ <application>Gnumeric</application> 支援使用
+ <package>math/guppi</package> 繪圖軟體來繪圖。
+ 它有許多內建的函數而且允許一般的儲存格格式,像是:
+ 數字、貨幣、日期、時間及其他格式等。</para>
+
+ <para>要用套件安裝 <application>Gnumeric</application>,只要打以下指令:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r gnumeric</userinput></screen>
+
+ <para>如果套件不存在,你可以做下面的步驟來使用 Ports Collection 編譯安裝:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/math/gnumeric</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>Abacus</title>
+ <indexterm>
+ <primary><application>Abacus</application></primary>
+ </indexterm>
+ <indexterm>
+ <primary>試算表</primary>
+ <secondary><application>Abacus</application></secondary>
+ </indexterm>
+
+ <para><application>Abacus</application> 是個小巧又使用簡單的試算表。
+ 它包含了許多內建的函數,在相關的領域如統計學、財務、數學中很實用。
+ 它也可以輸出輸入 <application>Excel</application> 的檔案格式。
+ 另外 <application>Abacus</application>也能夠輸出 &postscript; 格式。</para>
+
+ <para>從套件安裝 <application>Abacus</application> 只要做:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r abacus</userinput></screen>
+
+ <para>如果套件不能取得的話,你可以使用 Ports Collection,
+ 並用以下指令:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/deskutils/abacus</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+ </sect2>
+ </sect1>
+
+ <sect1 xml:id="desktop-summary">
+ <title>摘要</title>
+
+ <para>雖然 FreeBSD 是因為效能及穩定性而在 ISP 之間很流行,
+ 不過它也可以完全當作桌面環境(desktop)來使用,
+ 並不侷限於使用在伺服器上面。目前有數千種應用程式的
+ <link xlink:href="http://www.FreeBSD.org/where.html">套件(packages)</link>
+ 或
+ <link xlink:href="http://www.FreeBSD.org/ports/index.html">ports</link>,
+ 可供使用,你可以根據你的需求打造出一個完美的桌面環境。</para>
+
+ <para>下面是這章涵蓋的所有桌面應用軟體之快速回顧表:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>軟體名稱</entry>
+ <entry>套件名稱</entry>
+ <entry>Ports 名稱</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><application>Mozilla</application></entry>
+ <entry><literal>mozilla</literal></entry>
+ <entry><package>www/mozilla</package></entry>
+ </row>
+
+ <row>
+ <entry><application>Opera</application></entry>
+ <entry><literal>opera</literal></entry>
+ <entry><package>www/opera</package></entry>
+ </row>
+
+ <row>
+ <entry><application>Firefox</application></entry>
+ <entry><literal>firefox</literal></entry>
+ <entry><package>www/firefox</package></entry>
+ </row>
+
+ <row>
+ <entry><application>KOffice</application></entry>
+ <entry><literal>koffice-kde3</literal></entry>
+ <entry><package>editors/koffice-kde3</package></entry>
+ </row>
+
+ <row>
+ <entry><application>AbiWord</application></entry>
+ <entry><literal>abiword</literal></entry>
+ <entry><package>editors/abiword</package></entry>
+ </row>
+
+ <row>
+ <entry><application>The GIMP</application></entry>
+ <entry><literal>gimp</literal></entry>
+ <entry><package>graphics/gimp</package></entry>
+ </row>
+
+ <row>
+ <entry><application>OpenOffice.org</application></entry>
+ <entry><literal>openoffice</literal></entry>
+ <entry><package>editors/openoffice-1.1</package></entry>
+ </row>
+
+ <row>
+ <entry><application>&acrobat.reader;</application></entry>
+ <entry><literal>acroread</literal></entry>
+ <entry><package>print/acroread7</package></entry>
+ </row>
+
+ <row>
+ <entry><application>gv</application></entry>
+ <entry><literal>gv</literal></entry>
+ <entry><package>print/gv</package></entry>
+ </row>
+
+ <row>
+ <entry><application>Xpdf</application></entry>
+ <entry><literal>xpdf</literal></entry>
+ <entry><package>graphics/xpdf</package></entry>
+ </row>
+
+ <row>
+ <entry><application>GQview</application></entry>
+ <entry><literal>gqview</literal></entry>
+ <entry><package>graphics/gqview</package></entry>
+ </row>
+
+ <row>
+ <entry><application>GnuCash</application></entry>
+ <entry><literal>gnucash</literal></entry>
+ <entry><package>finance/gnucash</package></entry>
+ </row>
+
+ <row>
+ <entry><application>Gnumeric</application></entry>
+ <entry><literal>gnumeric</literal></entry>
+ <entry><package>math/gnumeric</package></entry>
+ </row>
+
+ <row>
+ <entry><application>Abacus</application></entry>
+ <entry><literal>abacus</literal></entry>
+ <entry><package>deskutils/abacus</package></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </sect1>
+</chapter>
diff --git a/zh_TW.Big5/books/handbook/disks/Makefile b/zh_TW.UTF-8/books/handbook/disks/Makefile
index c9ed4c9594..c9ed4c9594 100644
--- a/zh_TW.Big5/books/handbook/disks/Makefile
+++ b/zh_TW.UTF-8/books/handbook/disks/Makefile
diff --git a/zh_TW.Big5/books/handbook/disks/chapter.xml b/zh_TW.UTF-8/books/handbook/disks/chapter.xml
index ca159a29bf..f659610fd1 100644
--- a/zh_TW.Big5/books/handbook/disks/chapter.xml
+++ b/zh_TW.UTF-8/books/handbook/disks/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
@@ -6,60 +6,60 @@
Original revision: 1.246
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="disks">
- <title>xs]ƽg</title>
+ <title>儲存設備篇</title>
<sect1 xml:id="disks-synopsis">
- <title>z</title>
+ <title>概述</title>
- <para>[\pb FreeBSD UϥκФ˸m
+ <para>本章涵蓋如何在 FreeBSD 下使用碟片裝置
<footnote>
- <para>ĶGMdz]ƨSyФzAҦp USB HСA
- Lb Disk ĶyФ˸mzC~AK_A
- Ҧ Disk ĶyϺСzC</para></footnote>
- ]t memory-backed disk (ΰO@ϺШϥ)BϥΪϺСB
- з SCSI/IDE ϺСBUSB ]ƵC</para>
+ <para>譯註:雖然有些設備沒有『碟片』,例如 USB 隨身碟,
+ 不過在此仍把 Disk 譯為『碟片裝置』。此外,為方便起見,
+ 後文所有的 Disk 都譯為『磁碟』。</para></footnote>
+ 包含 memory-backed disk (用記憶體作為磁碟使用)、跨網路使用的磁碟、
+ 標準 SCSI/IDE 磁碟、USB 介面的設備等。</para>
- <para>\ŪAz˾Ƿ|G</para>
+ <para>閱讀本章後,您裝學會:</para>
<itemizedlist>
- <listitem><para>FreeBSD pyzƦbϺФW
- (partition M slices)C</para>
+ <listitem><para>FreeBSD 如何描述資料在磁碟上的劃分情形
+ (partition 和 slices)。</para>
</listitem>
- <listitem><para>pbtΤW[JϺ</para>
+ <listitem><para>如何在系統上加入磁碟</para>
</listitem>
<listitem>
- <para>p]w &os; Өϥ USB ˸mC</para>
+ <para>如何設定 &os; 來使用 USB 裝置。</para>
</listitem>
- <listitem><para>p]wɮרt (virtual file systems),
- Ҧp memory disks (ΰO@ϺШϥ)C</para></listitem>
+ <listitem><para>如何設定虛擬檔案系統 (virtual file systems),
+ 例如 memory disks (用記憶體作為磁碟使用)。</para></listitem>
<listitem>
- <para>p quota ӭϺЪŶϥΡC</para>
+ <para>如何用 quota 來限制磁碟空間的使用。</para>
</listitem>
<listitem>
- <para>pϺХ[KHIC</para>
+ <para>如何對磁碟加密以應付攻擊。</para>
</listitem>
<listitem>
- <para>pb FreeBSD UإߡBN CD M DVDC</para>
+ <para>如何在 FreeBSD 下建立、燒錄 CD 和 DVD。</para>
</listitem>
<listitem>
- <para>UؤPƥ]ơC</para>
+ <para>各種不同的備份設備。</para>
</listitem>
<listitem>
- <para>pϥ FreeBSD ѪƥuC</para>
+ <para>如何使用 FreeBSD 提供的備份工具。</para>
</listitem>
<listitem>
- <para>pƥnСC</para>
+ <para>如何備份到軟碟。</para>
</listitem>
<listitem>
- <para>O snapshots ABp󦳮IJvaϥΤC</para>
+ <para>什麼是 snapshots ,且如何有效率地使用之。</para>
</listitem>
</itemizedlist>
- <para>b\ŪeAzӡG</para>
+ <para>在閱讀之前,您應該:</para>
<itemizedlist>
<listitem>
- <para>Dp]wBw˷s FreeBSD kernelC
+ <para>知道如何設定、安裝新的 FreeBSD kernel。
(<xref linkend="kernelconfig"/>).</para>
</listitem>
</itemizedlist>
@@ -67,66 +67,66 @@
</sect1>
<sect1 xml:id="disks-naming">
- <title>˸mW</title>
+ <title>裝置名稱</title>
- <para>UO FreeBSD 䴩xsCCAΥ̹˸mW١C</para>
+ <para>下面是 FreeBSD 支援的儲存媒體列表,及它們對應的裝置名稱。</para>
<table xml:id="disk-naming-physical-table" frame="none">
- <title>RWWh</title>
+ <title>命名規則</title>
<tgroup cols="2">
<thead>
<row>
- <entry>˸m</entry>
- <entry>˸mW</entry>
+ <entry>裝置類型</entry>
+ <entry>裝置名稱</entry>
</row>
</thead>
<tbody>
<row>
- <entry>IDE Ϻо</entry>
+ <entry>IDE 磁碟機</entry>
<entry><literal>ad</literal></entry>
</row>
<row>
- <entry>IDE о</entry>
+ <entry>IDE 光碟機</entry>
<entry><literal>acd</literal></entry>
</row>
<row>
- <entry>SCSI ϺоM USB </entry>
+ <entry>SCSI 磁碟機和 USB 碟</entry>
<entry><literal>da</literal></entry>
</row>
<row>
- <entry>SCSI о</entry>
+ <entry>SCSI 光碟機</entry>
<entry><literal>cd</literal></entry>
</row>
<row>
- <entry>DзdzWо</entry>
- <entry>Mitsumi о <literal>mcd</literal>A
- Sony о <literal>scd</literal>C
+ <entry>非標準規格光碟機</entry>
+ <entry>Mitsumi 光碟機用 <literal>mcd</literal>,
+ Sony 光碟機用 <literal>scd</literal>。
</entry>
</row>
<row>
- <entry>nо</entry>
+ <entry>軟碟機</entry>
<entry><literal>fd</literal></entry>
</row>
<row>
- <entry>SCSI бa</entry>
+ <entry>SCSI 碟帶機</entry>
<entry><literal>sa</literal></entry>
</row>
<row>
- <entry>IDE бa</entry>
+ <entry>IDE 碟帶機</entry>
<entry><literal>ast</literal></entry>
</row>
<row>
- <entry>Flash Ϻо</entry>
- <entry>&diskonchip; Flash Ϻо <literal>fla</literal></entry>
+ <entry>Flash 磁碟機</entry>
+ <entry>&diskonchip; Flash 磁碟機用 <literal>fla</literal></entry>
</row>
<row>
- <entry>RAID Ϻо</entry>
- <entry>&adaptec; AdvancedRAID <literal>aacd</literal>A
- &mylex; <literal>mlxd</literal> M <literal>mlyd</literal>A
- AMI &megaraid; <literal>amrd</literal>A
- Compaq Smart RAID <literal>idad</literal>A
- &tm.3ware; RAID <literal>twed</literal>C</entry>
+ <entry>RAID 磁碟機</entry>
+ <entry>&adaptec; AdvancedRAID 用<literal>aacd</literal>,
+ &mylex; 用 <literal>mlxd</literal> 和 <literal>mlyd</literal>,
+ AMI &megaraid; 用 <literal>amrd</literal>,
+ Compaq Smart RAID 用 <literal>idad</literal>,
+ &tm.3ware; RAID 用 <literal>twed</literal>。</entry>
</row>
</tbody>
</tgroup>
@@ -134,7 +134,7 @@
</sect1>
<sect1 xml:id="disks-adding">
- <info><title>sWϺ</title>
+ <info><title>新增磁碟</title>
<authorgroup>
<author><personname><firstname>David</firstname><surname>O'Brien</surname></personname><contrib>Originally contributed by </contrib></author>
</authorgroup>
@@ -148,15 +148,15 @@
<secondary>adding</secondary>
</indexterm>
- <para>]ڭ̷QsW SCSI ϺШ@Ou@ϺЪWA
- NqA̻syӪܱNϺиˤWhA
- ԲӪާ@覡аѦһsyӪC</para>
+ <para>假設我們想新增 SCSI 磁碟到一臺原先只有一顆磁碟的機器上,
+ 首先將電腦關機,依製造商的指示將磁碟裝上去,
+ 詳細的操作方式請參考製造商的說明文件。</para>
- <para>w˦nϺЫA <systemitem class="username">root</systemitem> nJtΡA
- ݤ@U <filename>/var/run/dmesg.boot</filename> HT{tάO_sϺСC
- ~~dҡAsWϺз|O <filename>da1</filename>A
- ]ڭ̷QN <filename>/1</filename> oӦm
- (pGzsWO IDE ϺЪܡAХ <filename>ad1</filename>)C</para>
+ <para>安裝好磁碟後,用 <systemitem class="username">root</systemitem> 登入系統,
+ 看一下 <filename>/var/run/dmesg.boot</filename> 以確認系統是否抓到新磁碟。
+ 繼續剛才的範例,新增的磁碟會是 <filename>da1</filename>,
+ 假設我們想將它掛載到 <filename>/1</filename> 這個位置
+ (如果您新增的是 IDE 磁碟的話,請用 <filename>ad1</filename>)。</para>
<indexterm><primary>partitions</primary></indexterm>
<indexterm><primary>slices</primary></indexterm>
@@ -164,179 +164,179 @@
<primary><command>fdisk</command></primary>
</indexterm>
- <para>FreeBSD Fb IBM-PC ۮeqWA
- tX PC BIOS partitionA]MDzΪ BSD partition ܤjPC
- b PC ̺Ϻг̦hiH| BIOS partition T(Y̦hiΦ|
- partition)CpGoӺϺХ FreeBSD ϥΡAi
- <emphasis>dedicated</emphasis> ҦA
- M FreeBSD m䤤@ PC BIOS partition C
- b FreeBSD ̡APC BIOS partition ٬ <emphasis>slice</emphasis>A
- oOFnMDzΪ BSD partition dVFC
- <footnote><para>ĶGۦPzѡA
- {b BSD partition `٬ BSD labelA² labelC</para></footnote>
- ׬O FreeBSD ϥΪϺСA٬OwˤF䥦@~tΪϺСA
- ziHϥ sliceCo˪nBOA䥦D FreeBSD @~tΪ
- <command>fdisk</command> uiHQާ@C</para>
+ <para>FreeBSD 為了在 IBM-PC 相容電腦上執行,
+ 必須配合 PC BIOS partition,因此和傳統的 BSD partition 有很大的不同。
+ 在 PC 裡磁碟最多可以有四筆 BIOS partition 資訊(亦即最多可分割成四個
+ partition)。如果這個磁碟打算全部讓 FreeBSD 使用,可選擇
+ <emphasis>dedicated</emphasis> 模式,
+ 不然的話 FreeBSD 必須置身於其中一個 PC BIOS partition 中。
+ 在 FreeBSD 裡,PC BIOS partition 稱為 <emphasis>slice</emphasis>,
+ 這是為了不要和傳統的 BSD partition 搞混了。
+ <footnote><para>譯註:基於相同的理由,
+ 現在 BSD partition 常稱為 BSD label,或簡稱 label。</para></footnote>
+ 不論是完全由 FreeBSD 使用的磁碟,還是安裝了其它作業系統的磁碟,
+ 您都可以使用 slice。這樣的好處是,其它非 FreeBSD 作業系統的
+ <command>fdisk</command> 工具可以順利操作。</para>
- <para>pGϥ sliceAoӷsWϺз|O
- <filename>/dev/da1s1e</filename>CiHo˨ӸŪGSCSI ϺСB
- unit number 1(ĤG SCSI Ϻ)Bslice 1(Ĥ@ PC BIOS partition)B
- <filename>e</filename> BSD partitionCb dedicated ҦܡA
- sϺЫhO <filename>/dev/da1e</filename>C</para>
+ <para>如果使用 slice,這個新增的磁碟會是
+ <filename>/dev/da1s1e</filename>。可以這樣來解讀它:SCSI 磁碟、
+ unit number 1(第二個 SCSI 磁碟)、slice 1(第一個 PC BIOS partition)、
+ 及 <filename>e</filename> BSD partition。在 dedicated 模式的話,
+ 新磁碟則是 <filename>/dev/da1e</filename>。</para>
- <para>] &man.bsdlabel.8; O 32-bit ƨxs sector(ϰ) ơA
- ]@ӺϺг̤ju঳ 2^32-1 sectorAY 2TB ŶC
- &man.fdisk.8; 榡e\_l sector sWL 2^32-1A
- פ]WL 2^32-1A] partition ̤jŶO 2TBAӺϺг̤jO 4TBC
- &man.sunlabel.8; h partition ̤jO 2TBAϺг̦hi 8
- partitionA]̤jO 16TBC pGnϥΧjϺСAШϥ
- &man.gpt.8;C</para>
+ <para>因為 &man.bsdlabel.8; 是用 32-bit 整數來儲存 sector(磁區) 數,
+ 因此限制一個磁碟最大只能有 2^32-1 個 sector,亦即 2TB 的空間。
+ 而 &man.fdisk.8; 的格式容許起始 sector 編號不超過 2^32-1,
+ 長度也不超過 2^32-1,因此 partition 最大空間是 2TB,而磁碟最大是 4TB。
+ &man.sunlabel.8; 則限制 partition 最大是 2TB,磁碟最多可有 8 個
+ partition,因此最大是 16TB。 如果要使用更大的磁碟,請使用
+ &man.gpt.8;。</para>
<sect2>
- <title>ϥ &man.sysinstall.8;</title>
+ <title>使用 &man.sysinstall.8;</title>
<indexterm>
<primary><application>sysinstall</application></primary>
- <secondary>sWϺ</secondary>
+ <secondary>新增磁碟</secondary>
</indexterm>
<indexterm>
<primary>su</primary>
</indexterm>
<procedure>
<step>
- <title>ާ@ <application>Sysinstall</application></title>
+ <title>操作 <application>Sysinstall</application></title>
- <para>zL <command>sysinstall</command> 椶A
- iHϺФ BIOS partition(slice) M BSD patitionC
- H root ϥ <command>sysinstall</command>A
- n root nJAn <command>su</command> rootC
- <command>sysinstall</command> A
- <literal>Configure</literal>Ab
- <literal>FreeBSD Configuration Menu</literal> ̲
- <literal>Fdisk</literal> ﶵC</para>
+ <para>透過 <command>sysinstall</command> 的選單介面,
+ 可以輕易為磁碟分割 BIOS partition(slice) 和 BSD patition。
+ 必須以 root 身份使用 <command>sysinstall</command>,
+ 要嘛用 root 登入,要嘛用 <command>su</command> 切換到 root。
+ 執行 <command>sysinstall</command> 後,選
+ <literal>Configure</literal>,在
+ <literal>FreeBSD Configuration Menu</literal> 裡移到
+ <literal>Fdisk</literal> 選項。</para>
</step>
<step>
- <title><application>fdisk</application> Partition s边</title>
+ <title><application>fdisk</application> Partition 編輯器</title>
- <para>b <application>fdisk</application> ̡AU
- <userinput>A</userinput> ܾӺϺг FreeBSD ϥΡC
- ۷|ܱzyO_nۮe䥦@~tΡzA^
- <literal>YES</literal>C <userinput>W</userinput>
- |NoǧܥߧYgJϺСAA <userinput>q</userinput> iH}
- FDISK s边C Uӷ|ݱznN <quote>Master Boot Record</quote>
- w˩BAѩ{bOsWϺСAܧ@~tΤwg˦bOϺФWFA
- ҥHiH <literal>None</literal> NFC</para>
+ <para>在 <application>fdisk</application> 裡,按下
+ <userinput>A</userinput> 表示整個磁碟都給 FreeBSD 使用。
+ 接著會提示您『是否要相容其它的作業系統』,回答
+ <literal>YES</literal>。 按 <userinput>W</userinput>
+ 會將這些改變立即寫入磁碟,再按 <userinput>q</userinput> 可以離開
+ FDISK 編輯器。 接下來會問您要將 <quote>Master Boot Record</quote>
+ 安裝於何處,由於現在是新增磁碟,表示作業系統已經裝在別的磁碟上了,
+ 所以可以選 <literal>None</literal> 就行了。</para>
</step>
<step>
- <title>Disk Label Editor(Ϻ Label s边)</title>
+ <title>Disk Label Editor(磁碟 Label 編輯器)</title>
<indexterm><primary>BSD partitions</primary></indexterm>
- <para>۽ <application>sysinstall</application>AA}@C
- ӵۤW@`ܡALo <literal>Label</literal>
- iJ <literal>Disk Label Editor</literal>AbziHsDzΪ
- BSD partitionC @ӺϺ(εۤ@ slice) ̦hi 8
- BSD partitionA̧ǥ <literal>a-h</literal> ӪܡC
- ǦrSONqA<literal>a</literal> partition ܳoO
- root partition(ڤΰϡA<filename>/</filename>)A
- ]uw˨tΪϺ(ҦpΨӶ}Ϻ)
- <literal>a</literal> partitionC <literal>b</literal> partition
- ܳoO swap partitions(洫ΰ)ACӺϺФWiH swapC
- <literal>c</literal> partition ΨӪܾӺϺ(pGϥ dedicated
- mode )ξ sliceC 䥦rhΨӪܴq BSD partition
- C</para>
+ <para>接著請關閉 <application>sysinstall</application>,再重開一次。
+ 照著上一節的指示,不過這次改選 <literal>Label</literal>
+ 進入 <literal>Disk Label Editor</literal>,在此您可以編輯傳統的
+ BSD partition。 一個磁碟(或著一個 slice) 最多可切分成 8 個
+ BSD partition,依序用 <literal>a-h</literal> 來表示。
+ 有些字母有特別的意義,<literal>a</literal> partition 表示這是
+ root partition(根分割區,<filename>/</filename>),
+ 因此只有安裝系統的磁碟(例如用來開機的磁碟) 有
+ <literal>a</literal> partition。 <literal>b</literal> partition
+ 表示這是 swap partitions(交換分割區),每個磁碟上都可以有 swap。
+ <literal>c</literal> partition 用來表示整個磁碟(如果使用 dedicated
+ mode 的話)或整個 slice。 其它的字母則用來表示普通的 BSD partition
+ 。</para>
- <para><application>sysinstall</application>
- Label editor(Ϻ Label s边) n <literal>e</literal>
- ӪܫD rootB]D swap ΰ
+ <para><application>sysinstall</application> 的
+ Label editor(磁碟 Label 編輯器) 偏好用 <literal>e</literal>
+ 來表示非 root、也非 swap 的分割區
<footnote>
- <para>ĶGѹ껡ڬݤoyOHO
+ <para>譯註:老實說我看不懂這句指的是什麼?原文是
<application>sysinstall</application> Label editor
favors the <literal>e</literal> partition for non-root,
non-swap partitions. </para>
- </footnote> b Label editor ̡A <userinput>C</userinput>
- iHsW@ɮרt(BSD label)A|ݱzoO@ FS(file system
- Aɮרt) άO swap(洫ΰ)A <literal>FS</literal>
- ۿJnm(Ҧp <filename>/mnt</filename>)C
- pGtΦw˧~sWϺСA<application>sysinstall</application>
- |zoƥ[J <filename>/etc/fstab</filename>A
- ҥHmӭnC</para>
+ </footnote> 在 Label editor 裡,按 <userinput>C</userinput>
+ 可以新增一個檔案系統(BSD label),它會問您這是一個 FS(file system
+ ,檔案系統) 或是 swap(交換分割區),選擇 <literal>FS</literal>
+ 接著輸入要掛載的位置(例如 <filename>/mnt</filename>)。
+ 如果系統安裝完後才新增磁碟,<application>sysinstall</application>
+ 不會幫您把這筆掛載資料加入 <filename>/etc/fstab</filename>,
+ 所以掛載的位置不太重要。</para>
- <para>zdzƦnNs label gJϺСBإɮרtΡA
- <userinput>W</userinput> YiCpGX{b~A
- <application>sysinstall</application> iLkzoӷsΰϡC
- Label EditorB <application>sysinstall</application>
- NFC</para>
+ <para>當您準備好將新的 label 寫入磁碟、建立檔案系統,按
+ <userinput>W</userinput> 即可。如果出現在什麼錯誤,
+ <application>sysinstall</application> 可能無法幫您掛載這個新分割區。
+ 結束 Label Editor、結束 <application>sysinstall</application>
+ 就行了。</para>
</step>
<step>
- <title></title>
+ <title>完成</title>
- <para>̫nOs <filename>/etc/fstab</filename>A
- [JzsWΰϸTC</para>
+ <para>最後要做的是編輯 <filename>/etc/fstab</filename>,
+ 加入您新增的分割區資訊。</para>
</step>
</procedure>
</sect2>
<sect2>
- <title>ϥΩROCu</title>
+ <title>使用命令列工具</title>
<sect3>
- <title>ϥ Slices(BIOS partitions)</title>
+ <title>使用 Slices(BIOS partitions)</title>
- <para>oؼҦzϺФΰϻP䥦@~tΪ
- <command>fdisk</command> uM@BA]ڭ̫ijzϥ slice ҦC
- pGz@wnϥ <literal>dedicated</literal> ҦA
- zoӦnzѡI
+ <para>這種模式能讓您的磁碟分割區與其它作業系統的
+ <command>fdisk</command> 工具和平共處,因此我們建議您使用 slice 模式。
+ 如果您一定要使用 <literal>dedicated</literal> 模式,
+ 您得有個好理由!
<footnote>
- <para>ĶGpGz۩lܲ׳NoӺϺХΩ FreeBSD
- ~@~tΡAiHOӦnzѡCLNpA
- slice Ҧ]SaBNOF:-)C</para></footnote></para>
+ <para>譯註:如果您自始至終都不打算將這個磁碟用於 FreeBSD
+ 之外的作業系統,那可以算是個好理由。不過就算如此,
+ 用 slice 模式也沒什麼壞處就是了:-)。</para></footnote></para>
<screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/da1 bs=1k count=1</userinput>
-&prompt.root; <userinput>fdisk -BI da1</userinput> # lzϺСC
-&prompt.root; <userinput>bsdlabel -B -w -r da1s1 auto</userinput> # إ bsdlabelC
-&prompt.root; <userinput>bsdlabel -e da1s1</userinput> # s bsdlabel HsW labelC
+&prompt.root; <userinput>fdisk -BI da1</userinput> # 初始您的磁碟。
+&prompt.root; <userinput>bsdlabel -B -w -r da1s1 auto</userinput> # 建立 bsdlabel。
+&prompt.root; <userinput>bsdlabel -e da1s1</userinput> # 編輯 bsdlabel 以新增 label。
&prompt.root; <userinput>mkdir -p /1</userinput>
-&prompt.root; <userinput>newfs /dev/da1s1e</userinput> # pGzsWFh labelAC label гoӨBJC
-&prompt.root; <userinput>mount /dev/da1s1e /1</userinput> # oǷs labelC
-&prompt.root; <userinput>vi /etc/fstab</userinput> # b <filename>/etc/fstab</filename> [JATC</screen>
+&prompt.root; <userinput>newfs /dev/da1s1e</userinput> # 如果您新增了多個 label,對每個 label 重覆這個步驟。
+&prompt.root; <userinput>mount /dev/da1s1e /1</userinput> # 掛載這些新 label。
+&prompt.root; <userinput>vi /etc/fstab</userinput> # 在 <filename>/etc/fstab</filename> 加入適當的資訊。</screen>
- <para>pGzsWO IDE ϺСAN <filename>da</filename>
- 令 <filename>ad</filename> Yi
+ <para>如果您新增的是 IDE 磁碟,將 <filename>da</filename>
+ 改成 <filename>ad</filename> 即可
<footnote>
- <para>ĶGda O direct access (disk) YgF
- ad O ata disk YgC</para></footnote>C</para>
+ <para>譯註:da 是 direct access (disk) 的縮寫;
+ ad 是 ata disk 的縮寫。</para></footnote>。</para>
</sect3>
<sect3>
<title>Dedicated</title>
<indexterm><primary>OS/2</primary></indexterm>
- <para>pGzNsϺХΩ䥦@~tΡA
- ziHϥ <literal>dedicated</literal> ҦC`NG
- Microsoft @~tλ{ooӼҦAL]|h}aF
- M IBM &os2; NSnߤFA|hվҦ{oΰ
+ <para>如果您不打算將新磁碟用於其它的作業系統,
+ 您可以使用 <literal>dedicated</literal> 模式。注意:
+ Microsoft 的作業系統認不得這個模式,不過也不會去破壞它;
+ 然而 IBM 的 &os2; 就沒那麼好心了,它會去調整所有它不認得的分割區
<footnote>
- <para>ĶGڹoyNSHߡAO IBM's &os2; however,
+ <para>譯註:我對這句的意思沒什麼信心,原文是 IBM's &os2; however,
will <quote>appropriate</quote> any partition it finds which it
- does not understand.</para></footnote>C</para>
+ does not understand.</para></footnote>。</para>
<screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/da1 bs=1k count=1</userinput>
&prompt.root; <userinput>bsdlabel -Brw da1 auto</userinput>
-&prompt.root; <userinput>bsdlabel -e da1</userinput> # إ `e' partitionC
+&prompt.root; <userinput>bsdlabel -e da1</userinput> # 建立 `e' partition。
&prompt.root; <userinput>newfs -d0 /dev/da1e</userinput>
&prompt.root; <userinput>mkdir -p /1</userinput>
-&prompt.root; <userinput>vi /etc/fstab</userinput> # sW@ /dev/da1e TC
+&prompt.root; <userinput>vi /etc/fstab</userinput> # 新增一筆 /dev/da1e 的資訊。
&prompt.root; <userinput>mount /1</userinput></screen>
- <para>t@ؤkG</para>
+ <para>另一種方法:</para>
<screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/da1 count=2</userinput>
&prompt.root; <userinput>bsdlabel /dev/da1 | bsdlabel -BrR da1 /dev/stdin</userinput>
&prompt.root; <userinput>newfs /dev/da1e</userinput>
&prompt.root; <userinput>mkdir -p /1</userinput>
-&prompt.root; <userinput>vi /etc/fstab</userinput> # sW@ /dev/da1e TC
+&prompt.root; <userinput>vi /etc/fstab</userinput> # 新增一筆 /dev/da1e 的資訊。
&prompt.root; <userinput>mount /1</userinput></screen>
</sect3>
@@ -347,10 +347,10 @@
<title>RAID</title>
<sect2 xml:id="raid-soft">
- <title>n RAID</title>
+ <title>軟體 RAID</title>
<sect3 xml:id="ccd">
- <info><title>sϺи˸mXʵ{(CCD, Concatenated Disk Driver) ]w</title>
+ <info><title>連接式磁碟裝置驅動程式(CCD, Concatenated Disk Driver) 設定</title>
<authorgroup>
<author><personname><firstname>Christopher</firstname><surname>Shumway</surname></personname><contrib>Original work by </contrib></author>
</authorgroup>
@@ -366,29 +366,29 @@
<primary>RAID</primary><secondary>CCD</secondary>
</indexterm>
- <para>jeqxs]ƦӨA䪺nDOtסBiaʤλC
- MӳoT̩HUGֳtia]Ƴq`ܶQF
- ӭCq`]묹FtשΥiaʡC</para>
+ <para>對大容量儲存設備而言,最關鍵的要素乃是速度、可靠性及價格。
+ 然而這三者往往難以兼顧:快速可靠的設備通常很貴;
+ 而降低成本通常也犧牲了速度或可靠性。</para>
- <para>UӭnЪtΡAO̭nҶqAUӬOtסA
- ̫~OiaʡC ǦpO]ƶǿ骺t׳̲רMA
- ӾޥiaʤQnAo²檺NסG
- NƧƥ CD-R C</para>
+ <para>接下來要介紹的系統,價格是最重要的考量,接下來是速度,
+ 最後才是可靠性。 順序如此是因為資料傳輸的速度最終取決於網路,
+ 而儘管可靠性十分重要,卻有簡單的取代方案:
+ 將資料完整備份於 CD-R 中。</para>
- <para>ܤjeqxs]Ƥ׮ɡAnwqzݨDC
- pGztשΥiaʬƩAUӪЮDzһݡC</para>
+ <para>選擇大容量儲存設備方案時,首先要定義您的需求。
+ 如果您重視速度或可靠性甚於價格,接下來的介紹恐非您所需。</para>
<sect4 xml:id="ccd-installhw">
- <title>w˵w</title>
+ <title>安裝硬體</title>
- <para>FtκϺХ~AUЪ CCD Ϻа}CNϥΨT 30GBB
- 5400 RPM Western Digital IDE ϺСAHѬ 90GB xsŶC
- ̲zQpOCӺϺХѿWߨϥΪƽusWߨϥΪ IDE A
- LFCAQ jumper ]wϺСAϨC IDE is
- @ӥDϺХ[@ӰƺϺСApi[B~ IDE C</para>
+ <para>除了系統磁碟外,下面介紹的 CCD 磁碟陣列將使用到三顆 30GB、
+ 5400 RPM 的 Western Digital IDE 磁碟,以提供約 90GB 的儲存空間。
+ 最理想的情況是每個磁碟由獨立使用的排線連接獨立使用的 IDE 控制器,
+ 不過為了降低成本,利用 jumper 設定磁碟,使每個 IDE 控制器可連接
+ 一個主磁碟加一個副磁碟,如此可不必加裝額外的 IDE 控制器。</para>
- <para>}ABIOS ӳ]wۭϺСC󭫭nO FreeBSD
- n쥦̡G</para>
+ <para>開機後,BIOS 應該設定成自重偵測磁碟。更重要的是 FreeBSD 應該
+ 要偵測到它們:</para>
<programlisting>ad0: 19574MB &lt;WDC WD205BA&gt; [39770/16/63] at ata0-master UDMA33
ad1: 29333MB &lt;WDC WD307AA&gt; [59598/16/63] at ata0-slave UDMA33
@@ -396,59 +396,59 @@ ad2: 29333MB &lt;WDC WD307AA&gt; [59598/16/63] at ata1-master UDMA33
ad3: 29333MB &lt;WDC WD307AA&gt; [59598/16/63] at ata1-slave UDMA33</programlisting>
<note>
- <para>pG FreeBSD SҦϺСAнT{ jumper ]wTC
- \h IDE ϺХiH]w <quote>Cable Select</quote>
- (ھڱƽumMw)Ao<emphasis>ëD</emphasis> master(DϺ)
- slave(ƺϺ)C аѾ\ϺЪHT]w jumper
- C</para></note>
+ <para>如果 FreeBSD 沒有偵測到所有磁碟,請確認 jumper 都設定正確。
+ 許多 IDE 磁碟可以設定成 <quote>Cable Select</quote>
+ (根據排線位置決定),這<emphasis>並非</emphasis> master(主磁碟)
+ 或 slave(副磁碟)。 請參閱磁碟的說明文件以正確設定 jumper
+ 。</para></note>
- <para>UӡAҼ{pNܦɮרtΪ@CziHѦ
- &man.vinum.8;(<xref linkend="vinum-vinum"/>) &man.ccd.4;C
- bڭ̿ &man.ccd.4;C</para>
+ <para>接下來,考慮如何將它們變成檔案系統的一部份。您可以參考
+ &man.vinum.8;(<xref linkend="vinum-vinum"/>) 及 &man.ccd.4;。
+ 在此我們選擇 &man.ccd.4;。</para>
</sect4>
<sect4 xml:id="ccd-setup">
- <title>]w CCD</title>
+ <title>設定 CCD</title>
- <para>&man.ccd.4; iHNhӺϺб_Ӧ@ӤjϺСCnϥ
- &man.ccd.4;Az kernel ݭn䴩 &man.ccd.4;CNo[J
- kernel ]wɡAísBw kernelG</para>
+ <para>&man.ccd.4; 可以將多個磁碟接起來成為一個大磁碟。要使用
+ &man.ccd.4;,您的 kernel 需要支援 &man.ccd.4;。將這行加入到
+ kernel 設定檔,並重編、重安裝 kernel:</para>
<programlisting>device ccd</programlisting>
- <para>]iHJ kernel ʺAҲըӤ䴩 &man.ccd.4;C</para>
+ <para>也可以載入 kernel 動態模組來支援 &man.ccd.4;。</para>
- <para>ϥ &man.ccd.4; Х &man.bsdlabel.8; ӪlϺСG</para>
+ <para>使用 &man.ccd.4; 請先用 &man.bsdlabel.8; 來初始磁碟:</para>
<programlisting>bsdlabel -r -w ad1 auto
bsdlabel -r -w ad2 auto
bsdlabel -r -w ad3 auto</programlisting>
- <para>WzO|إ <filename>ad1c</filename>A
- <filename>ad2c</filename> M <filename>ad3c</filename>A
- o bsdlabel ϥΤFӺϺСC</para>
+ <para>上述指令會建立 <filename>ad1c</filename>,
+ <filename>ad2c</filename> 和 <filename>ad3c</filename>,
+ 這些 bsdlabel 都使用了整個磁碟。</para>
- <para>U@BOק label typeAP˥ &man.bsdlabel.8; ӳBzG</para>
+ <para>下一步是修改 label type,同樣用 &man.bsdlabel.8; 來處理:</para>
<programlisting>bsdlabel -e ad1
bsdlabel -e ad2
bsdlabel -e ad3</programlisting>
- <para>oӫO|}@ӽs边(w]O &man.vi.1;AiH
- <envar>EDITOR</envar> ܼƨӫw䥦s边)AñNثeϺЪ label
- Tܦbӽs边̡C</para>
+ <para>這個指令會打開一個編輯器(預設是 &man.vi.1;,可以用
+ <envar>EDITOR</envar> 環境變數來指定其它編輯器),並將目前磁碟的 label
+ 資訊顯示在該編輯器裡。</para>
- <para>@٥ܰʹLϺ label Tݰ_ӷ|oˡG</para>
+ <para>一個還未變動過的磁碟 label 資訊看起來會像這樣:</para>
<programlisting>8 partitions:
# size offset fstype [fsize bsize bps/cpg]
c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597)</programlisting>
- <para>bڭ̭nsW@ <literal>e</literal> partition
- &man.ccd.4; ϥΡC q`ƻs <literal>c</literal> partition @A
- A <option>fstype</option> @令
- <userinput>4.2BSD</userinput> NiHFC
- 粒ݰ_ӷ|oˡG</para>
+ <para>在此我們要新增一個 <literal>e</literal> partition 給
+ &man.ccd.4; 使用。 通常複製 <literal>c</literal> partition 那一行,
+ 再把 <option>fstype</option> 那一行改成
+ <userinput>4.2BSD</userinput> 就可以了。
+ 改完之後看起來應該會像這樣:</para>
<programlisting>8 partitions:
# size offset fstype [fsize bsize bps/cpg]
@@ -458,44 +458,44 @@ bsdlabel -e ad3</programlisting>
</sect4>
<sect4 xml:id="ccd-buildingfs">
- <title>إɮרt</title>
+ <title>建立檔案系統</title>
- <para>{bҦϺгwgئn bsdlabel FAiH}lإ &man.ccd.4;C
- &man.ccdconfig.8; ӫإ &man.ccd.4;AѦҤUOG</para>
+ <para>現在所有的磁碟都已經建好 bsdlabel 了,可以開始建立 &man.ccd.4;。
+ 用 &man.ccdconfig.8; 來建立 &man.ccd.4;,參考下面的指令:</para>
<programlisting>ccdconfig ccd0<co xml:id="co-ccd-dev"/> 32<co xml:id="co-ccd-interleave"/> 0<co xml:id="co-ccd-flags"/> /dev/ad1e<co xml:id="co-ccd-devs"/> /dev/ad2e /dev/ad3e</programlisting>
- <para>CӰѼƪ@ΦpUG</para>
+ <para>每個參數的作用如下:</para>
<calloutlist>
<callout arearefs="co-ccd-dev">
- <para>Ĥ@ӰѼƬOn]w˸mW١AboӨҤl̬O
- <filename>/dev/ccd0c</filename>C䤤 <filename>/dev/</filename>
- iiLC</para>
+ <para>第一個參數是要設定的裝置名稱,在這個例子裡是
+ <filename>/dev/ccd0c</filename>。其中 <filename>/dev/</filename>
+ 可有可無。</para>
</callout>
<callout arearefs="co-ccd-interleave">
- <para>uinterleavevjpCҿ interleave O@ƺϺа϶
- (disk block)jpAq`H 512 bytes AҥH interleave
- ] 32 Y 16,384 bytesC</para>
+ <para>「interleave」的大小。所謂 interleave 是指一排磁碟區塊
+ (disk block)的大小,通常以 512 bytes 為單位,所以 interleave
+ 設為 32 即為 16,384 bytes。</para>
</callout>
<callout arearefs="co-ccd-flags">
- <para>&man.ccdconfig.8; ]wҦѼơCpGzҥκϺ]
- (drive mirroring)AziHbwѼơCoӨҤlSϥ]A
- ҥH] 0C</para>
+ <para>&man.ccdconfig.8; 設定模式的參數。如果您打算啟用磁碟鏡設
+ (drive mirroring),您可以在此指定參數。這個例子沒有使用鏡設,
+ 所以設成 0。</para>
</callout>
<callout arearefs="co-ccd-devs">
- <para>&man.ccdconfig.8; ̫᪺ѼƬOn[J}CҦϺСC
- ШϥΧ㪺|C</para>
+ <para>&man.ccdconfig.8; 最後的參數是要加入到陣列的所有磁碟。
+ 請使用完整的路徑。</para>
</callout>
</calloutlist>
- <para> &man.ccdconfig.8; A&man.ccd.4;
- w]wiѫإɮרtΡC аѦ &man.newfs.8; οJG</para>
+ <para>執行 &man.ccdconfig.8; 之後,&man.ccd.4;
+ 已設定完成可供建立檔案系統。 請參考 &man.newfs.8; 或輸入:</para>
<programlisting>newfs /dev/ccd0c</programlisting>
@@ -503,28 +503,28 @@ bsdlabel -e ad3</programlisting>
</sect4>
<sect4 xml:id="ccd-auto">
- <title>@۰ʧ</title>
+ <title>讓一切自動完成</title>
- <para>q`z|ƱC}ɳ۰ʱW(mount) &man.ccd.4;C
- ΤUONzثe]wgJ <filename>/etc/ccd.conf</filename>
- G</para>
+ <para>通常您會希望每次開機時都能自動掛上(mount) &man.ccd.4;。
+ 用下面的指令將您目前的設定寫入 <filename>/etc/ccd.conf</filename>
+ :</para>
<programlisting>ccdconfig -g &gt; /etc/ccd.conf</programlisting>
- <para>pG <filename>/etc/ccd.conf</filename> sbAC}
- <command>/etc/rc</command> | <command>ccdconfig -C</command>
- C pKi۰ʳ]w &man.ccd.4; HK᱾W(mount)ɮרtΡC
+ <para>如果 <filename>/etc/ccd.conf</filename> 存在,每次開機時
+ <command>/etc/rc</command> 都會執行 <command>ccdconfig -C</command>
+ 。 如此便可自動設定 &man.ccd.4; 以便之後掛上(mount)檔案系統。
</para>
- <note><para>pGz}ɿܶiJHҦ(single mode)AbW
- (&man.mount.8;) &man.ccd.4; ɮרtΤezo]wOG
+ <note><para>如果您開機時選擇進入單人模式(single mode),在掛上
+ (&man.mount.8;) &man.ccd.4; 的檔案系統之前您得先執行設定的指令:
</para>
<programlisting>ccdconfig -C</programlisting>
</note>
- <para>nbC}ɦ۰ʱW(mount) &man.ccd.4;AЦb
- <filename>/etc/fstab</filename> [J &man.ccd.4;G
+ <para>要在每次開機時自動掛上(mount) &man.ccd.4;,請在
+ <filename>/etc/fstab</filename> 加入 &man.ccd.4;:
</para>
<programlisting>/dev/ccd0c /media ufs rw 2 2</programlisting>
@@ -532,7 +532,7 @@ bsdlabel -e ad3</programlisting>
</sect3>
<sect3 xml:id="vinum">
- <title>Vinum eq޲zt</title>
+ <title>Vinum 容量管理系統</title>
<indexterm><primary>RAID</primary><secondary>software</secondary></indexterm>
<indexterm>
@@ -540,49 +540,49 @@ bsdlabel -e ad3</programlisting>
<secondary>Vinum</secondary>
</indexterm>
- <para>Vinum eq޲zt(HU² Vinum) i@صϺСC
- N϶˸m(block device) Pƪ覡ζ}ӡA_쥻
- slice ϺСAVinum iW[FuʡBįMíw
- <footnote><para>ĶGo̬OΡuMvAnڨϥΤ覡өwC
- Ҧp RAID-0 N|W[íw :)C</para></footnote>
- &man.vinum.8; @F RAID-0BRAID-1 M RAID-5 ҲաA
- ̳iHWϥΡA]iH۷ftϥΡC</para>
+ <para>Vinum 容量管理系統(以下簡稱 Vinum) 可視為一種虛擬磁碟。
+ 它將區塊裝置(block device) 的介面與對應資料的方式切割開來,比起原本
+ slice 劃分的磁碟,Vinum 可增加了彈性、效能和穩定度
+ <footnote><para>譯註:原文這裡是用「和」,但要視實際使用方式而定。
+ 例如用 RAID-0 就不會增加穩定度 :)。</para></footnote>
+ &man.vinum.8; 實作了 RAID-0、RAID-1 和 RAID-5 等模組,
+ 它們都可以單獨使用,也可以互相搭配使用。</para>
- <para>Ш <xref linkend="vinum-vinum"/> HѦҧh
- &man.vinum.8; TC</para>
+ <para>請見 <xref linkend="vinum-vinum"/> 以參考更多關於
+ &man.vinum.8; 的資訊。</para>
</sect3>
</sect2>
<sect2 xml:id="raid-hard">
- <title>w RAID</title>
+ <title>硬體 RAID</title>
<indexterm>
<primary>RAID</primary>
<secondary>hardware</secondary>
</indexterm>
- <para>FreeBSD ]䴩\hw <acronym>RAID</acronym> C
- oDZۦx@Ӥp <acronym>RAID</acronym> tΡA
- ]ݭnSwnӺ޲zC</para>
+ <para>FreeBSD 也支援許多硬體 <acronym>RAID</acronym> 控制器。
+ 這些控制器自行掌控一個小型的 <acronym>RAID</acronym> 系統,
+ 因此不需要特定軟體來管理。</para>
- <para>zLW <acronym>BIOS</acronym> XG౱Ҧާ@C
- UӱN²椶Цp]w Promise <acronym>IDE</acronym>
- <acronym>RAID</acronym> dCT{dwwˡA۶}C
- ӷ|ܤ@ǸT<footnote><para>ĶGҦp F1 iHiJd
- BIOS TC</para></footnote>C̫ܶiJd]weA
- qo̱ziHNw鵲X@ӤjϺСCAFreeBSD
- Nu|ݨoӤjϺСCMz]iHϥΨ䥦
- <acronym>RAID</acronym> ҦC</para>
+ <para>透過控制器上的 <acronym>BIOS</acronym> 幾乎能控制所有的操作。
+ 接下來將簡單介紹如何設定 Promise <acronym>IDE</acronym>
+ <acronym>RAID</acronym> 控制卡。首先確認控制卡已安裝,接著開機。
+ 它應該會提示一些資訊<footnote><para>譯註:例如按 F1 可以進入控制卡
+ BIOS 之類的資訊。</para></footnote>。依指示進入控制卡的設定畫面,
+ 從這裡您可以將全部的硬體結合成一個大磁碟。完成之後,FreeBSD
+ 將只會看到這個大磁碟。當然您也可以使用其它的
+ <acronym>RAID</acronym> 模式。</para>
</sect2>
<sect2>
- <title>(rebuild) ATA RAID1 }C</title>
+ <title>重建(rebuild) ATA RAID1 陣列</title>
- <para>FreeBSD \z޺Ϻа}CaϺСA
- Mb}eNoo{C</para>
+ <para>FreeBSD 允許您熱插拔磁碟陣列裡壞掉的磁碟,
+ 當然在重開機前就得先發現。</para>
- <para>]\z|b <filename>/var/log/messages</filename>( &man.dmesg.8;
- X) ݨUTG</para>
+ <para>也許您會在 <filename>/var/log/messages</filename>(或 &man.dmesg.8;
+ 的輸出) 看到類似下面的訊息:</para>
<programlisting>ad6 on monster1 suffered a hard error.
ad6: READ command timeout tag=0 serv=0 - resetting
@@ -592,7 +592,7 @@ ad6: hard error reading fsbn 1116119 of 0-7 (ad6 bn 1116119; cn 1107 tn 4 sn 11)
status=59 error=40
ar0: WARNING - mirror lost</programlisting>
- <para>Х &man.atacontrol.8; ӱohTG</para>
+ <para>請用 &man.atacontrol.8; 來得到更多資訊:</para>
<screen>&prompt.root; <userinput>atacontrol list</userinput>
ATA channel 0:
@@ -616,18 +616,18 @@ ar0: ATA RAID1 subdisks: ad4 ad6 status: DEGRADED</screen>
<procedure>
<step>
- <para>zoNlaϺЩҦb ata channel (detach)A
- p~waG</para>
+ <para>首先您得將損壞磁碟所在的 ata channel 卸載(detach),
+ 如此才能安全地移除:</para>
<screen>&prompt.root; <userinput>atacontrol detach ata3</userinput></screen>
</step>
<step>
- <para>ΦnϺдUlaC</para>
+ <para>用好的磁碟換下損壞的。</para>
</step>
<step>
- <para>sJ(re-attach) ata channelG</para>
+ <para>重新載入(re-attach) ata channel:</para>
<screen>&prompt.root; <userinput>atacontrol attach ata3</userinput>
Master: ad6 &lt;MAXTOR 6L080J4/A93.0500&gt; ATA/ATAPI rev 5
@@ -635,19 +635,19 @@ Slave: no device present</screen>
</step>
<step>
- <para>NsϺХ[J쥻Ϻа}Cƴ(spare) ϺСG</para>
+ <para>將新的磁碟加入原本的磁碟陣列成為備援(spare) 磁碟:</para>
<screen>&prompt.root; <userinput>atacontrol addspare ar0 ad6</userinput></screen>
</step>
<step>
- <para>غϺа}CG</para>
+ <para>重建磁碟陣列:</para>
<screen>&prompt.root; <userinput>atacontrol rebuild ar0</userinput></screen>
</step>
<step>
- <para>iHΤUwӽT{تiסG</para>
+ <para>可以用下面指定來確認重建的進度:</para>
<screen>&prompt.root; <userinput>dmesg | tail -10</userinput>
[output removed]
@@ -660,14 +660,14 @@ ar0: ATA RAID1 subdisks: ad4 ad6 status: REBUILDING 0% completed</screen>
</step>
<step>
- <para>اNFC</para>
+ <para>等重建完就完成了。</para>
</step>
</procedure>
</sect2>
</sect1>
<sect1 xml:id="usb-disks">
- <info><title>USB xs˸m</title>
+ <info><title>USB 儲存裝置</title>
<authorgroup>
<author><personname><firstname>Marc</firstname><surname>Fonvieille</surname></personname><contrib>Contributed by </contrib></author>
</authorgroup>
@@ -680,15 +680,15 @@ ar0: ATA RAID1 subdisks: ad4 ad6 status: REBUILDING 0% completed</screen>
<secondary>disks</secondary>
</indexterm>
- <para>b{bA\h~xs˸mĥ USB(Universal Serial Bus) A
- ҦpwСBUSB СBCD-R NC &os; ѹoǸ˸m䴩C</para>
+ <para>在現在,有許多外部儲存裝置採用 USB(Universal Serial Bus) 介面,
+ 例如硬碟、USB 拇指碟、CD-R 燒錄機等。 &os; 提供對這些裝置的支援。</para>
<sect2>
- <title>]w</title>
+ <title>設定</title>
- <para>USB mass xs˸mXʵ{(&man.umass.4;) USB xs˸m䴩C
- pGO <filename>GENERIC</filename> kernelANݭn]wܰ
- C YOۭq kernelAнT{ kernel ]wɧtUoXG</para>
+ <para>USB mass 儲存裝置驅動程式(&man.umass.4;)提供 USB 儲存裝置的支援。
+ 但如果是用 <filename>GENERIC</filename> kernel,就不需要做任何設定變動
+ 。 若是自訂 kernel,請確認 kernel 設定檔含有下面這幾行:</para>
<programlisting>device scbus
device da
@@ -698,34 +698,34 @@ device ohci
device usb
device umass</programlisting>
- <para>&man.umass.4; Xʵ{zL SCSI ltΦs USB xs˸mA
- z USB ˸m|QtοѦ SCSI ˸mC ̷ӱzDOW USB A
- zuݭn <literal>device uhci</literal>
- <literal>device ohci</literal> 䤤@ӡC
- MӡAN̳si kernel ]LC unOѤFbק kernel
- ]w᭫ssĶΦw˷s kernel NFC</para>
+ <para>&man.umass.4; 驅動程式透過 SCSI 子系統存取 USB 儲存裝置,
+ 您的 USB 裝置會被系統辨識成 SCSI 裝置。 依照您主機板上 USB 晶片型號,
+ 您只需要 <literal>device uhci</literal> 或
+ <literal>device ohci</literal> 其中一個。
+ 然而,將兩者都編進 kernel 也無妨。 只要別忘了在修改 kernel
+ 設定後重新編譯及安裝新的 kernel 就行了。</para>
<note>
- <para>pGz USB ˸mO CD-R DVD NAh SCSI оXʵ{
- &man.cd.4; gJ kernel ]wɡAoˡG</para>
+ <para>如果您的 USB 裝置是 CD-R 或 DVD 燒錄機,則 SCSI 光碟機驅動程式
+ &man.cd.4; 必須寫入 kernel 設定檔,像這樣:</para>
<programlisting>device cd</programlisting>
- <para>]N|Q SCSI ˸mAҥH &man.atapicam.4;
- Xʵ{ݭnsJ kernelC</para>
+ <para>因為燒錄機會被當成 SCSI 裝置,所以 &man.atapicam.4;
+ 驅動程式不需要編入 kernel。</para>
</note>
- <para>USB 2.0 䴩 &os;; ѡAMӥb kernel
- ]wɼW[UoH USB 2.0 䴩G</para>
+ <para>USB 2.0 控制器的支援由 &os;; 提供,然而必須在 kernel
+ 設定檔增加下面這行以提供 USB 2.0 支援:</para>
<programlisting>device ehci</programlisting>
- <para>`NApGzݭn USB 1.x 䴩AzMݭnN &man.uhci.4;
- &man.ohci.4; Xʵ{sJ kernelC</para>
+ <para>注意,如果您需要 USB 1.x 支援,您仍然需要將 &man.uhci.4; 及
+ &man.ohci.4; 驅動程式編入 kernel。</para>
</sect2>
<sect2>
- <title>ճ]w</title>
+ <title>測試設定</title>
<para>The configuration is ready to be tested: plug in your USB
device, and in the system message buffer (&man.dmesg.8;), the
@@ -2979,118 +2979,118 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on
</sect1>
<sect1 xml:id="quotas">
- <title>ϺЪŶtB(Quota)</title>
+ <title>磁碟空間配額(Quota)</title>
<indexterm>
<primary>accounting</primary>
<secondary>disk space</secondary>
</indexterm>
<indexterm><primary>disk quotas</primary></indexterm>
- <para>ϺаtB(Quota)ݩ@~tΤWΥ\A
- iHΨӭϥΪ̩θsժiΪŶjpAΪɮת`ƦhC
- o\q`ΦbhH@ΪtҤWA
- ]nUϥΪ̩ΦUsթүBΪtθ귽C
- p@ӡANiקKϺЪŶQYϥΪ̩άYsեӺɡC</para>
+ <para>磁碟配額(Quota)屬於作業系統上的選用功能,
+ 可以用來限制使用者或群組的可用空間大小,或者檔案的總數多寡。
+ 這功能通常用在多人共用的系統環境上,
+ 因為要限制各使用者或各群組所能運用的系統資源。
+ 如此一來,就可避免磁碟空間被某使用者或某群組全部耗盡。</para>
<sect2>
- <title>ҥκϺаtB</title>
+ <title>啟用磁碟配額</title>
- <para>bκϺаtBeAХT{ kernel wg@]wA]NO
- kernel ]wɭnUoG</para>
+ <para>在用磁碟配額之前,請先確認 kernel 已經有作相關設定,也就是
+ kernel 設定檔要有下面這行:</para>
<programlisting>options QUOTA</programlisting>
- <para>w] <filename>GENERIC</filename> kernel ä|[WoA
- ҥHYnҥδNݥ[WAíssĶBw kernelC kernel
- ]wiѾ\ <xref linkend="kernelconfig"/> C</para>
+ <para>預設的 <filename>GENERIC</filename> kernel 並不會加上這項,
+ 所以若要啟用就必需加上,並重新編譯、安裝 kernel。 kernel
+ 設定部分可參閱 <xref linkend="kernelconfig"/> 的說明。</para>
- <para>۴NOb <filename>/etc/rc.conf</filename> ]wҰʺϺаtBC
- Х[WUCoG</para>
+ <para>接著就是在 <filename>/etc/rc.conf</filename> 設定啟動磁碟配額。
+ 請加上下列這行:</para>
<programlisting>enable_quotas="YES"</programlisting>
<indexterm>
<primary>disk quotas</primary>
<secondary>checking</secondary>
</indexterm>
- <para>F󧹵޺ϺаtBҰʡA٦@ӳ]wiHΡC q`}ɡA
- &man.quotacheck.8; {|ˬdUɮרtΤWtBC
- &man.quotacheck.8; iHTOtBƮwƻPɮרtΪƦŦXC
- o\]|b}ɡA|Ұʮɶy۷㪺vTC
- YQLoBJAhiHb <filename>/etc/rc.conf</filename> [WG</para>
+ <para>為了能更完善的控管磁碟配額的啟動,還有一個設定可以用。 通常開機時,
+ &man.quotacheck.8; 程式會檢查各檔案系統上的配額。
+ &man.quotacheck.8; 可以確保配額資料庫的資料與實際檔案系統的資料有符合。
+ 但這功能也會在開機時,會對啟動時間造成相當明顯的影響。
+ 若想跳過這步驟,則可以在 <filename>/etc/rc.conf</filename> 加上:</para>
<programlisting>check_quotas="NO"</programlisting>
- <para>̫AnOo <filename>/etc/fstab</filename>
- ӱҥΥHɮרtάHϺаtB\C ]iHҥΰwϥΪ̩θsաA
- Ϊ̨̬ҦϺаtBC</para>
+ <para>最後,要記得改 <filename>/etc/fstab</filename>
+ 來啟用以檔案系統為對象的磁碟配額功能。 也可以啟用針對使用者或群組,
+ 或者兩者皆有之的磁碟配額。</para>
- <para>YnҥΰwϥΪ̪tBAiHb <filename>/etc/fstab</filename>
- n]wɮרtΥ[W <option>userquota</option> ﶵC pG</para>
+ <para>若要啟用針對使用者的配額,可以在 <filename>/etc/fstab</filename>
+ 內要設定的檔案系統加上 <option>userquota</option> 選項。 比如:</para>
<programlisting>/dev/da1s2g /home ufs rw,userquota 1 2</programlisting>
- <para>PzYnҥΰwsժtBAh誺 <option>userquota</option>
- <option>groupquota</option> YiC ӭYn̦PɱҥΡA
- hOG</para>
+ <para>同理若要啟用針對群組的配額,則把剛剛的 <option>userquota</option>
+ 換成 <option>groupquota</option> 即可。 而若要兩者同時啟用,
+ 那麼則是:</para>
<programlisting>/dev/da1s2g /home ufs rw,userquota,groupquota 1 2</programlisting>
- <para>wϥΪ̥HθsժϺаtB]wɡAw]O|bɮרtήڥؿ
- <filename>quota.user</filename> H <filename>quota.group</filename>
- C Ӹ`аѾ\ &man.fstab.5;C
- M &man.fstab.5; iHtB]wɫwLaAäijp@A
- ]UغϺаtB޲zuäooǹw]ȯHuܤơC</para>
+ <para>針對使用者以及群組的磁碟配額設定檔,預設分別會放在該檔案系統根目錄的
+ <filename>quota.user</filename> 以及 <filename>quota.group</filename>
+ 。 細節部分請參閱 &man.fstab.5;。
+ 雖然 &man.fstab.5; 提到可以為配額設定檔指定其他地方,但並不建議如此作,
+ 因為各種磁碟配額管理工具並不見得對這些預設值能隨之彈性變化。</para>
- <para>UӴNiHηs kernel ӭ}C <filename>/etc/rc</filename>
- |۰ʰOH <filename>/etc/fstab</filename>
- ]wtB޲zA@l]wC
- ҥHäݭnv@ʲͬŪtB]wɡC</para>
+ <para>接下來就可以用新 kernel 來重開機。 <filename>/etc/rc</filename>
+ 會自動執行相關指令以對 <filename>/etc/fstab</filename>
+ 有設定配額管理的部分,作初始設定。
+ 所以並不需要逐一手動產生相關空的配額設定檔。</para>
- <para>`ާ@L{Aäݭnʰ &man.quotacheck.8;B&man.quotaon.8;
- B&man.quotaoff.8; oǫOC LAYnxާ@覡ܡA
- γ\iH\Ū manual uWC</para>
+ <para>正常操作過程中,並不需要手動執行 &man.quotacheck.8;、&man.quotaon.8;
+ 、&man.quotaoff.8; 這些指令。 不過,若要更熟悉相關操作方式的話,
+ 或許可以閱讀相關的 manual 線上說明。</para>
</sect2>
<sect2>
- <title>]wtB</title>
+ <title>設定配額限制</title>
<indexterm>
<primary>disk quotas</primary>
<secondary>limits</secondary>
</indexterm>
- <para>@}lҥΰtB޲zAаOoT{O_uҥΡC
- iHUCOӧ@²ˬdG</para>
+ <para>一旦開始啟用配額管理之後,請記得確認是否有真的啟用。
+ 可以打下列指令來作簡單檢查:</para>
<screen>&prompt.root; <userinput>quota -v</userinput></screen>
- <para>ӥiHݨ즳UɮרtΪtBqA
- Hβ{bϥζqKnTC</para>
+ <para>應該可以看到有關各檔案系統的配額限量,
+ 以及現在使用量的摘要訊息。</para>
- <para>{biH}l &man.edquota.8; ӳ]wUϺаtBC</para>
+ <para>現在可以開始用 &man.edquota.8; 來設定各磁碟配額的限制。</para>
- <para>XؿﶵiHΨӭϥΪ̩θsթүBΪϺЪŶA
- HΩүإߪɮ׼ƶqhC iH̺ϺЪŶ(block tB)ɮ׼ƶq
- (inode tB)AΪ̷ft̤@_]wC ӨCح٥iHӤG
- hard(w)WBsoft(u)WC</para>
+ <para>有幾種選項可以用來限制使用者或群組所能運用的磁碟空間,
+ 以及所能建立的檔案數量多寡。 可以依磁碟空間(block 配額)或檔案數量
+ (inode 配額),或者搭配兩者一起設定。 而每種限制還可以細分為兩類:
+ hard(硬性)上限、soft(彈性)上限。</para>
<indexterm><primary>hard limit</primary></indexterm>
- <para>wʤWOWLC @ϥΪ̹FwʤWɡA
- NLkbɮרtΤW~ϥΧhϥΪŶFC
- |ҨӻAYϥΪ̪wʤW 500 KBAӥثeΤF 490 KBA
- LNuAh 10 KB ӤwAYnsWɮצ 11 KB N|ѡC</para>
+ <para>硬性上限是不能超過的。 一旦使用者達到硬性上限時,
+ 就無法在該檔案系統上繼續使用更多的使用空間了。
+ 舉例來說,若有位使用者的硬性上限為 500 KB,而目前用了 490 KB,
+ 那麼他就只能再多用 10 KB 而已,若要新增的檔案有 11 KB 就會失敗。</para>
<indexterm><primary>soft limit</primary></indexterm>
- <para>MӡAuʤWhi\@wɶWBϥΡAoq٬
- grace period(e)Aw]ȬO@gC YϥΪ̫WBϥΨöWX
- grace period ӹOAhuʤWN|ରwʤWA
- Ӥ\ӨϥΪ~sWŶC
- ӨϥΪ̪ŶwgMCuʤWA~|]
- grace periodC</para>
+ <para>然而,彈性上限則可允許一定時間內的超額使用,這段期間稱為
+ grace period(寬限期),預設值是一週。 若使用者持續超額使用並超出
+ grace period 而逾期,則彈性上限就會轉為硬性上限,
+ 而不允許該使用者繼續新增空間。
+ 直到該使用者的空間已經清到低於彈性上限之後,才會重設
+ grace period。</para>
- <para>UhOϥ &man.edquota.8; ҤlC b &man.edquota.8;
- ɡA|iJ]wϺаtBWs边AܩO@ؽs边hz
- <envar>EDITOR</envar> ܼƦөwAYS]w <envar>EDITOR</envar>
- ܡAh| <application>vi</application> s边C</para>
+ <para>下面則是使用 &man.edquota.8; 的例子。 在執行 &man.edquota.8;
+ 時,會進入設定磁碟配額上限的編輯器內,至於是哪一種編輯器則視您的
+ <envar>EDITOR</envar> 環境變數而定,若沒設定 <envar>EDITOR</envar>
+ 的話,則會用 <application>vi</application> 編輯器。</para>
<screen>&prompt.root; <userinput>edquota -u test</userinput></screen>
@@ -3100,49 +3100,49 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on
/usr/var: kbytes in use: 0, limits (soft = 50, hard = 75)
inodes in use: 0, limits (soft = 50, hard = 60)</programlisting>
- <para>@ӻACӱҰʤFϺаtBɮרtγ|]wC
- Ĥ@O block WAӥt@hO inode WC
- YnϺаtBWAuݭnק᭱ƭȧYiC |ҨӻA
- nW[oϥΪ̪ block WGuʤW 50 լ 500A
- wʤWh 75 լ 600 AuݭקUoG</para>
+ <para>一般來說,每個啟動了磁碟配額的檔案系統都會有兩行設定。
+ 第一行是 block 上限,而另一行則是 inode 上限。
+ 若要更改磁碟配額上限,只需要修改後面的數值即可。 舉例來說,
+ 要增加這位使用者的 block 上限部分:把彈性上限 50 調為 500,
+ 硬性上限則由 75 調為 600 ,只需修改下面這行:</para>
<programlisting>/usr: kbytes in use: 65, limits (soft = 50, hard = 75)</programlisting>
- <para>אּUCG</para>
+ <para>改為下列:</para>
<programlisting>/usr: kbytes in use: 65, limits (soft = 500, hard = 600)</programlisting>
- <para>Ms}AstB]wN|ߧYͮġC</para>
+ <para>然後存檔離開後,新的配額設定就會立即生效。</para>
- <para>ɭԷ|Q@jd UID b]wAoɥiH &man.edquota.8;
- <option>-p</option> Ѽƥ\ӧC A
- YӱbլQntBAMiH
- <command>edquota -p protouser startuid-enduid</command> 覡ӧC
- |ҨӻA] <systemitem class="username">test</systemitem> obwg]wntBA
- Mn諸H UID q 10,000 19,999 bA
- NiHUCOӳ]wP˪tBG</para>
+ <para>有時候會想一次改大範圍 UID 的帳號設定,這時可以用 &man.edquota.8;
+ 的 <option>-p</option> 參數功能來完成。 首先,
+ 把某個帳號調為想要的相關配額,然後可以用
+ <command>edquota -p protouser startuid-enduid</command> 之類的方式來改。
+ 舉例來說,假設 <systemitem class="username">test</systemitem> 這帳號已經設定好相關配額,
+ 然後要改的對象為 UID 從 10,000 到 19,999 的帳號,
+ 那麼就可以下列指令來設定同樣的配額:</para>
<screen>&prompt.root; <userinput>edquota -p test 10000-19999</userinput></screen>
- <para>Ӹ`аѾ\ &man.edquota.8;C</para>
+ <para>細節說明請參閱 &man.edquota.8;。</para>
</sect2>
<sect2>
- <title>ˬdϺаtB]wBϺШϥζq</title>
+ <title>檢查磁碟配額設定、磁碟使用量</title>
<indexterm>
<primary>disk quotas</primary>
<secondary>checking</secondary>
</indexterm>
- <para>iH &man.quota.1; &man.repquota.8; ˬdϺаtB]wA
- HκϺШϥζqC &man.quota.1; iΨˬd@ϥΪ̩θsժϺаtBB
- ϺШϥζqC L@budۤvHΦۤvsժϺаtBB
- ϺШϥζqAutκ޲ẕb~ݩҦϥΪ̡B
- sժtB]wPϥζqC &man.repquota.8;
- hiHݨҦwҰʺϺаtBɮרtγ]wBϺШϥζqKnC</para>
+ <para>可以用 &man.quota.1; 或 &man.repquota.8; 來檢查磁碟配額設定,
+ 以及磁碟使用量。 &man.quota.1; 可用來檢查單一使用者或群組的磁碟配額、
+ 磁碟使用量。 不過一般帳號只能查自己的以及自己群組的磁碟配額、
+ 磁碟使用量,只有系統管理者帳號才能察看所有使用者、
+ 群組的配額設定與使用量。 而 &man.repquota.8;
+ 則可以看到所有已啟動磁碟配額的檔案系統設定、磁碟使用量摘要。</para>
- <para>UҤlhObӦtB]wɮרtΤWA
- <command>quota -v</command> ܵGG</para>
+ <para>下面例子則是在兩個有配額設定的檔案系統上,打
+ <command>quota -v</command> 的顯示結果:</para>
<programlisting>Disk quotas for user test (uid 1002):
Filesystem usage quota limit grace files quota limit grace
@@ -3150,32 +3150,32 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on
/usr/var 0 50 75 0 50 60</programlisting>
<indexterm><primary>grace period</primary></indexterm>
- <para>bWoҤAӨϥΪ̦b <filename>/usr</filename> uʰtBO
- 50 KBAڤWwgWBh 15 KBA grace period ٦ 5 ѴNOC
- Ъ`NoӬP <literal>*</literal>
- OܥثeӨϥΪ̤wgWVtBuʤWFC</para>
+ <para>在上面這例中,該使用者在 <filename>/usr</filename> 的彈性配額是
+ 50 KB,實際上已經超額多用 15 KB,而 grace period 還有 5 天就逾期。
+ 請注意這個星號 <literal>*</literal>
+ 是表示目前該使用者已經超越其配額的彈性上限了。</para>
- <para>@ӻAYϥΪ̨èSΨYɮרtΡA
- NɮצҥκϺаtBAb &man.quota.1; ]|ܥXӡC
- <option>-v</option> ѼƫhiHoɮרtγCXӡA
- pWҤ <filename>/usr/var</filename>C</para>
+ <para>一般來說,若使用者並沒有用到某個檔案系統,
+ 那麼就算該檔案有啟用磁碟配額,在 &man.quota.1; 也不會顯示出來。
+ 而 <option>-v</option> 參數則可以把這些檔案系統都全部列出來,
+ 比如上例中的 <filename>/usr/var</filename>。</para>
</sect2>
<sect2>
- <title>zL NFS ϥκϺаtB</title>
+ <title>透過 NFS 使用磁碟配額</title>
<indexterm><primary>NFS</primary></indexterm>
- <para>NFS server ݥiHjH quota subsystem(tBlt)ӥκϺаtBC
- NFS client ݫhiHzL &man.rpc.rquotad.8; daemon &man.quota.1;
- OtBơA]NiH client
- ݪϥΪ̹ݨtBέpơC</para>
+ <para>NFS server 端可以強制以 quota subsystem(配額子系統)來用磁碟配額。
+ 而 NFS client 端則可以透過 &man.rpc.rquotad.8; daemon 來讓 &man.quota.1;
+ 指令抓到相關配額資料,也就可以讓 client
+ 端的使用者察看其配額的統計資料。</para>
- <para>Ynҥ <command>rpc.rquotad</command>AiHb
- <filename>/etc/inetd.conf</filename> [WUC]wG</para>
+ <para>若要啟用 <command>rpc.rquotad</command>,可以在
+ <filename>/etc/inetd.conf</filename> 加上下列類似設定:</para>
<programlisting>rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad</programlisting>
- <para>M᭫ <command>inetd</command> YiG</para>
+ <para>然後重啟 <command>inetd</command> 即可:</para>
<screen>&prompt.root; <userinput>kill -HUP `cat /var/run/inetd.pid`</userinput></screen>
</sect2>
diff --git a/zh_TW.Big5/books/handbook/eresources/Makefile b/zh_TW.UTF-8/books/handbook/eresources/Makefile
index 7099b0c7d2..7099b0c7d2 100644
--- a/zh_TW.Big5/books/handbook/eresources/Makefile
+++ b/zh_TW.UTF-8/books/handbook/eresources/Makefile
diff --git a/zh_TW.Big5/books/handbook/eresources/chapter.xml b/zh_TW.UTF-8/books/handbook/eresources/chapter.xml
index e720c785aa..a55dab922b 100644
--- a/zh_TW.Big5/books/handbook/eresources/chapter.xml
+++ b/zh_TW.UTF-8/books/handbook/eresources/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
@@ -7,499 +7,499 @@
Original revision: 1.175
-->
<appendix xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="eresources">
- <title>ںW귽</title>
+ <title>網際網路上的資源</title>
- <para>ii֪ FreeBSD ϱo{LBC򤣤W̷siסI
- ϦӼƦ쪩귽A]\ɨäO̦nAq`Oߤ@@ӸW̷sii覡C
- ѩ FreeBSD OӦ۩\hӤuVOAҥHsjϥΪ̸s]q`t <quote>IT޳N䴩</quote> C
- unιqllM USENET sDsմNiHܧֳtapôoǪsFC</para>
+ <para>進展飛快的 FreeBSD 使得現有的印刷、平面媒體跟不上它的最新進度!
+ 反而數位版本的資源,也許有時並不是最好,但通常是唯一一個跟上最新進展的方式。
+ 正由於 FreeBSD 是來自於許多志工的努力,所以廣大的使用者群也通常扮演著 <quote>IT技術支援部門</quote> 的角色。
+ 只要善用電子郵件和 USENET 新聞群組就可以很快速地聯繫這些社群了。</para>
- <para>HU²P FreeBSD sfWuDn覡C
- YA٪DLǫSCX귽AЧi &a.doc;AHKڭ̧sC</para>
+ <para>以下簡介與 FreeBSD 社群搭上線的主要方式。
+ 若你還知道其他這裡沒有列出的資源,請告知 &a.doc;,以便我們更新。</para>
<sect1 xml:id="eresources-mail">
- <title>l׾(Mailing Lists)</title>
+ <title>郵遞論壇(Mailing Lists)</title>
- <para>MAj FreeBSD }oH USENET sDsաA
- ڭ̤]Oҧڭ̥ûiHήɱozDC
- רOAYzub
- <literal>comp.unix.bsd.freebsd.*</literal> 䤤sդoݪܡC
- ijzNDoAl׾(mailing list)WAiHP FreeBSD
- }o̩MLݭ̪DAq`]iHo@Ӹn(̰_X|)^C</para>
+ <para>雖然,大部份的 FreeBSD 開發人員都有看 USENET 新聞群組,
+ 我們也不能保證我們永遠可以及時得知您的問題。
+ 尤其是,若您只在
+ <literal>comp.unix.bsd.freebsd.*</literal> 其中群組內發問的話。
+ 建議您將問題發到適當的郵遞論壇(mailing list)上,不但可以同時讓 FreeBSD
+ 開發者和其他看倌們知道,通常也可以得到一個較好的(最起碼會比較快)的回應。</para>
- <para>᭱ЪOUPl׾¡BQ׳Wh(charter)C
- <emphasis>bq\ list eAХ\ŪQ׳WhC</emphasis>
- q\o list H̲{bCѳ|Ʀʫ FreeBSD HC
- ӰQ׳WhqAhU󴣤ɩQ׫~C
- _hAoǰQ FreeBSD list ױNJq}Aӥh쥻NC</para>
+ <para>本文後面介紹的是各式不同的郵遞論壇、討論規則(charter)。
+ <emphasis>在訂閱任何 list 之前,請先閱讀討論規則。</emphasis>
+ 訂閱這些 list 的人們現在每天都會收到數百封 FreeBSD 相關信件。
+ 而討論規則的制訂,則有助於提升彼此討論品質。
+ 否則,這些討論 FreeBSD 的 list 終將陷入溝通不良,而失去其原本美意。</para>
- <para>Ӧb list oıoܺôbɭԡANӬݬ <link xlink:href="&url.articles.freebsd-questions;">mpb FreeBSD-questions mailing list Wo쥿ѡn
- </link> @a</para>
+ <para>對於該在哪個 list 發問覺得很疑惑的時候,就來看看 <link xlink:href="&url.articles.freebsd-questions;">《如何在 FreeBSD-questions mailing list 上得到正解》
+ </link> 一文吧</para>
- <para>boDB^Ш list eAХŪL
+ <para>在發表問題、回覆到 list 之前,請先讀過
<link xlink:href="&url.articles.mailing-list-faq;">
- FreeBSD Mailing Lists `ݵ(FAQ)</link> @HǷ|p󵽥 mailing list
- A~קKOg`ƪgBԤ大Ʊo͡C</para>
+ FreeBSD Mailing Lists 常見問答集(FAQ)</link> 一文以學會如何善用 mailing list
+ ,才能避免像是經常重複的月經文、戰文之類的事情發生。</para>
- <para> mailing lists QװOiHb <link xlink:href="&url.base;/search/index.html">
- FreeBSD WWWD</link> WCѤFܴΪrjM\Aiz`ΰݵ(FAQ)
- CӦb mailing lists WoݤeA]ХjMO_wѵC</para>
+ <para>全部的 mailing lists 討論記錄都可以在 <link xlink:href="&url.base;/search/index.html">
+ FreeBSD WWW主機</link> 上找到。它提供了很棒的關鍵字搜尋功能,可讓您找到常用問答集(FAQ)
+ 。而在 mailing lists 上發問之前,也請先搜尋是否已有解答。</para>
<sect2 xml:id="eresources-summary">
- <title>List @</title>
+ <title>List 一覽表</title>
- <para><emphasis>@׾¡G</emphasis> HU list O@ʽAӥBjaiHۥѦaѻPA
- ڭ̤]yjaq\G</para>
+ <para><emphasis>一般論壇:</emphasis> 以下的 list 都是一般性質,而且大家可以自由地參與,
+ 我們也鼓勵大家訂閱:</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
- <entry>List W</entry>
- <entry>ت</entry>
+ <entry>List 名稱</entry>
+ <entry>目的</entry>
</row>
</thead>
<tbody>
<row>
<entry>&a.cvsall.name;</entry>
- <entry>Ҧ FreeBSD (commit)O</entry>
+ <entry>所有的 FreeBSD 提交(commit)記錄</entry>
</row>
<row>
<entry>&a.advocacy.name;</entry>
- <entry>FreeBSD c]֭qx</entry>
+ <entry>FreeBSD 惡魔福音電台</entry>
</row>
<row>
<entry>&a.announce.name;</entry>
- <entry>nƥBp{O</entry>
+ <entry>公布重要事件、計劃里程碑</entry>
</row>
<row>
<entry>&a.arch.name;</entry>
- <entry>[coQ</entry>
+ <entry>架構研發討論</entry>
</row>
<row>
<entry>&a.bugbusters.name;</entry>
- <entry>FreeBSD D^(PR)Ʈw@ijDPu</entry>
+ <entry>FreeBSD 問題回報(PR)資料庫的維護議題與工具</entry>
</row>
<row>
<entry>&a.bugs.name;</entry>
- <entry>Bug ^</entry>
+ <entry>Bug 回報</entry>
</row>
<row>
<entry>&a.chat.name;</entry>
- <entry>D޳Ny FreeBSD sѰ</entry>
+ <entry>非技術交流的 FreeBSD 社群聊天區</entry>
</row>
<row>
<entry>&a.current.name;</entry>
- <entry>Q &os.current; FreeBSD</entry>
+ <entry>討論 &os.current; 版本的 FreeBSD</entry>
</row>
<row>
<entry>&a.isp.name;</entry>
- <entry>FreeBSD ISP ~̧޳Ny</entry>
+ <entry>FreeBSD 的 ISP 業者技術交流區</entry>
</row>
<row>
<entry>&a.jobs.name;</entry>
- <entry>FreeBSD HOȦ</entry>
+ <entry>FreeBSD 人力銀行</entry>
</row>
<row>
<entry>&a.policy.name;</entry>
- <entry>FreeBSD Core team policy wQװϡCo̤峹hABu core team ~ioC</entry>
+ <entry>FreeBSD Core team 的 policy 方針討論區。這裡文章不多,且只限 core team 才可發言。</entry>
</row>
<row>
<entry>&a.questions.name;</entry>
- <entry>ϥΰDΧ޳N䴩</entry>
+ <entry>使用問題及技術支援</entry>
</row>
<row>
<entry>&a.security-notifications.name;</entry>
- <entry>w|}q</entry>
+ <entry>安全漏洞通知</entry>
</row>
<row>
<entry>&a.stable.name;</entry>
- <entry>Q &os.stable; FreeBSD</entry>
+ <entry>討論 &os.stable; 版本的 FreeBSD</entry>
</row>
<row>
<entry>&a.test.name;</entry>
- <entry>׾·soϡAo̥iHApը</entry>
+ <entry>論壇新手發表區,這裡可以讓你小試身手</entry>
</row>
</tbody>
</tgroup>
</informaltable>
- <para><emphasis>޳N׾¡G</emphasis> HU list DOnHQ޳NDDA
- b[Jq\ΰQפeAаȥJӾ\ŪC list W(charter)A
- ]̪QפeYԪC</para>
+ <para><emphasis>技術論壇:</emphasis> 以下 list 主是要以探討技術問題為主,
+ 在加入訂閱及討論之前,請務必仔細閱讀每個 list 的版規(charter),
+ 因為它們的討論內容都有很嚴謹的限制。</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
- <entry>List W</entry>
- <entry>ت</entry>
+ <entry>List 名稱</entry>
+ <entry>目的</entry>
</row>
</thead>
<tbody>
<row>
<entry>&a.acpi.name;</entry>
- <entry>ACPI HιqO޲zijD</entry>
+ <entry>ACPI 以及電力管理議題</entry>
</row>
<row>
<entry>&a.afs.name;</entry>
- <entry> AFS FreeBSD</entry>
+ <entry>移植 AFS 到 FreeBSD</entry>
</row>
<row>
<entry>&a.aic7xxx.name;</entry>
- <entry>o &adaptec; AIC 7xxx Xʵ{</entry>
+ <entry>研發 &adaptec; AIC 7xxx 的驅動程式</entry>
</row>
<row>
<entry>&a.alpha.name;</entry>
- <entry> FreeBSD Alpha tά[c</entry>
+ <entry>移植 FreeBSD 到 Alpha 系統架構</entry>
</row>
<row>
<entry>&a.amd64.name;</entry>
- <entry> FreeBSD AMD64 tά[c</entry>
+ <entry>移植 FreeBSD 到 AMD64 系統架構</entry>
</row>
<row>
<entry>&a.apache.name;</entry>
- <entry>Q <application>Apache</application> ports ijD</entry>
+ <entry>探討 <application>Apache</application> 相關的 ports 議題</entry>
</row>
<row>
<entry>&a.arm.name;</entry>
- <entry> FreeBSD &arm; CPU [c</entry>
+ <entry>移植 FreeBSD 到 &arm; CPU 架構</entry>
</row>
<row>
<entry>&a.atm.name;</entry>
- <entry>b FreeBSD Wϥ ATM </entry>
+ <entry>在 FreeBSD 上使用 ATM 網路</entry>
</row>
<row>
<entry>&a.audit.name;</entry>
- <entry>Source code ](audit)p</entry>
+ <entry>Source code 的稽核(audit)計劃</entry>
</row>
<row>
<entry>&a.binup.name;</entry>
- <entry>o binary ɯŤ覡</entry>
+ <entry>研發 binary 的升級方式</entry>
</row>
<row>
<entry>&a.bluetooth.name;</entry>
- <entry>b FreeBSD ϥŪ(&bluetooth;)޳N</entry>
+ <entry>在 FreeBSD 中使用藍芽(&bluetooth;)技術</entry>
</row>
<row>
<entry>&a.cluster.name;</entry>
- <entry> FreeBSD bO[c(clustered environment)B</entry>
+ <entry>把 FreeBSD 在叢集架構環境(clustered environment)的運用</entry>
</row>
<row>
<entry>&a.cvsweb.name;</entry>
- <entry>CVSweb @</entry>
+ <entry>CVSweb 的維護</entry>
</row>
<row>
<entry>&a.database.name;</entry>
- <entry>QצUƮwb FreeBSD oBB</entry>
+ <entry>討論各式資料庫在 FreeBSD 的研發、運用</entry>
</row>
<row>
<entry>&a.doc.name;</entry>
- <entry>g FreeBSD </entry>
+ <entry>撰寫 FreeBSD 相關文件</entry>
</row>
<row>
<entry>&a.drivers.name;</entry>
- <entry>g &os; ΪXʵ{</entry>
+ <entry>撰寫 &os; 用的驅動程式</entry>
</row>
<row>
<entry>&a.eclipse.name;</entry>
- <entry>FreeBSD Eclipse IDE uRΪ̥y</entry>
+ <entry>FreeBSD 的 Eclipse IDE 工具愛用者交流</entry>
</row>
<row>
<entry>&a.emulation.name;</entry>
- <entry>b FreeBSD WLtΡApGLinuxB&ms-dos;B&windows;</entry>
+ <entry>在 FreeBSD 上模擬其他系統,如:Linux、&ms-dos;、&windows;</entry>
</row>
<row>
<entry>&a.firewire.name;</entry>
- <entry>FreeBSD &firewire; (iLink, IEEE 1394) 譱޳Ny</entry>
+ <entry>FreeBSD 的 &firewire; (iLink, IEEE 1394) 方面技術交流</entry>
</row>
<row>
<entry>&a.fs.name;</entry>
- <entry>ɮרtΪQBo</entry>
+ <entry>檔案系統的探討、研發</entry>
</row>
<row>
<entry>&a.geom.name;</entry>
- <entry>GEOM ijDQBo</entry>
+ <entry>GEOM 議題的探討、研發</entry>
</row>
<row>
<entry>&a.gnome.name;</entry>
- <entry> <application>GNOME</application> <application>GNOME</application> γn</entry>
+ <entry>移植 <application>GNOME</application> 及 <application>GNOME</application> 相關應用軟體</entry>
</row>
<row>
<entry>&a.hackers.name;</entry>
- <entry>@޳NijDQ</entry>
+ <entry>一般技術議題的探討</entry>
</row>
<row>
<entry>&a.hardware.name;</entry>
- <entry>FreeBSD WUwDy</entry>
+ <entry>FreeBSD 上的各式硬體問題交流</entry>
</row>
<row>
<entry>&a.i18n.name;</entry>
- <entry>FreeBSD hy(Internationalization)</entry>
+ <entry>FreeBSD 的多語化(Internationalization)</entry>
</row>
<row>
<entry>&a.ia32.name;</entry>
- <entry>FreeBSD b IA-32 (&intel; x86) xWϥαQ</entry>
+ <entry>FreeBSD 在 IA-32 (&intel; x86) 平台上的使用探討</entry>
</row>
<row>
<entry>&a.ia64.name;</entry>
- <entry> FreeBSD &intel; IA64 x[c</entry>
+ <entry>移植 FreeBSD 到 &intel; 的未來 IA64 平台架構</entry>
</row>
<row>
<entry>&a.ipfw.name;</entry>
- <entry> ipfw(IP firewall) ޳NQ</entry>
+ <entry>對 ipfw(IP firewall) 的技術探討</entry>
</row>
<row>
<entry>&a.isdn.name;</entry>
- <entry>ISDN o</entry>
+ <entry>ISDN 研發</entry>
</row>
<row>
<entry>&a.java.name;</entry>
- <entry>&java; {}o̥Hβ &jdk;s FreeBSD W</entry>
+ <entry>&java; 程式開發者以及移植 &jdk;s 到 FreeBSD 上</entry>
</row>
<row>
<entry>&a.kde.name;</entry>
- <entry> <application>KDE</application> H <application>KDE</application> ε{</entry>
+ <entry>移植 <application>KDE</application> 以及 <application>KDE</application> 相關應用程式</entry>
</row>
<row>
<entry>&a.lfs.name;</entry>
- <entry> LFS FreeBSD</entry>
+ <entry>移植 LFS 到 FreeBSD</entry>
</row>
<row>
<entry>&a.libh.name;</entry>
- <entry>s@NwˡB]M</entry>
+ <entry>新世代的安裝、打包套件機制</entry>
</row>
<row>
<entry>&a.mips.name;</entry>
- <entry> FreeBSD &mips;</entry>
+ <entry>移植 FreeBSD 到 &mips;</entry>
</row>
<row>
<entry>&a.mobile.name;</entry>
- <entry>U mobile computing(pGOq)Q</entry>
+ <entry>關於各類 mobile computing(比如:筆記型電腦)的研討</entry>
</row>
<row>
<entry>&a.mozilla.name;</entry>
- <entry> <application>Mozilla</application> n鲾Ө FreeBSD</entry>
+ <entry>把 <application>Mozilla</application> 軟體移植到 FreeBSD</entry>
</row>
<row>
<entry>&a.multimedia.name;</entry>
- <entry>UvBΡBn</entry>
+ <entry>各式影音運用、軟體</entry>
</row>
<row>
<entry>&a.newbus.name;</entry>
- <entry>U bus [c޳NQ</entry>
+ <entry>各式 bus 架構的技術探討</entry>
</row>
<row>
<entry>&a.net.name;</entry>
- <entry>BαQP TCP/IP source code</entry>
+ <entry>網路運用探討與 TCP/IP source code</entry>
</row>
<row>
<entry>&a.openoffice.name;</entry>
- <entry> <application>OpenOffice.org</application>
- <application>&staroffice;</application> FreeBSD</entry>
+ <entry>移植 <application>OpenOffice.org</application> 及
+ <application>&staroffice;</application> 到 FreeBSD</entry>
</row>
<row>
<entry>&a.performance.name;</entry>
- <entry>bį/tҤUįծ(tuning)ijD</entry>
+ <entry>在高效能/負荷環境下的效能調校(tuning)議題</entry>
</row>
<row>
<entry>&a.perl.name;</entry>
- <entry>Q Perl ports @</entry>
+ <entry>探討 Perl 相關 ports 的維護</entry>
</row>
<row>
<entry>&a.pf.name;</entry>
- <entry>pf(packet filter) Q</entry>
+ <entry>pf(packet filter) 防火牆機制的探討</entry>
</row>
<row>
<entry>&a.platforms.name;</entry>
- <entry>Q׵ۭ󲾴 port D &intel; [cxijD</entry>
+ <entry>討論著重於移植 port 到非 &intel; 架構平台的議題</entry>
</row>
<row>
<entry>&a.ports.name;</entry>
- <entry> Ports Collection BΡBQ</entry>
+ <entry>關於 Ports Collection 的運用、探討</entry>
</row>
<row>
<entry>&a.ports-bugs.name;</entry>
- <entry>ports bugs/PRs</entry>
+ <entry>ports 相關的 bugs/PRs</entry>
</row>
<row>
<entry>&a.ppc.name;</entry>
- <entry> FreeBSD &powerpc; tά[c</entry>
+ <entry>移植 FreeBSD 到 &powerpc; 系統架構</entry>
</row>
<row>
<entry>&a.proliant.name;</entry>
- <entry>FreeBSD b HP ProLiant DxϥΥy</entry>
+ <entry>FreeBSD 在 HP ProLiant 主機平台的使用交流</entry>
</row>
<row>
<entry>&a.python.name;</entry>
- <entry>Python b FreeBSD WϥΪUijDC</entry>
+ <entry>Python 在 FreeBSD 上使用的各式議題。</entry>
</row>
<row>
<entry>&a.qa.name;</entry>
- <entry>QA(Quality Assurance)QסAq`|MwO_wgFiH release {</entry>
+ <entry>QA(Quality Assurance)討論,通常會決定是否已經到達可以 release 的程度</entry>
</row>
<row>
<entry>&a.rc.name;</entry>
- <entry><filename>rc.d</filename> QסBo</entry>
+ <entry><filename>rc.d</filename> 機制的討論、研發</entry>
</row>
<row>
<entry>&a.realtime.name;</entry>
- <entry>FreeBSD W realtime extensions o</entry>
+ <entry>FreeBSD 上 realtime extensions 的研發</entry>
</row>
<row>
<entry>&a.scsi.name;</entry>
- <entry>SCSI 譱ijD</entry>
+ <entry>SCSI 方面議題</entry>
</row>
<row>
<entry>&a.security.name;</entry>
- <entry>FreeBSD w|}ijD</entry>
+ <entry>FreeBSD 安全漏洞議題</entry>
</row>
<row>
<entry>&a.small.name;</entry>
- <entry>bOJwҪΡBQ</entry>
+ <entry>在嵌入式硬體環境的應用、探討</entry>
</row>
<row>
<entry>&a.smp.name;</entry>
- <entry>CPU ٦huBz(SMP, [A]Symmetric Multiprocessing)ΡBQ</entry>
+ <entry>CPU 對稱多工處理(SMP, [A]Symmetric Multiprocessing)的應用、研討</entry>
</row>
<row>
<entry>&a.sparc.name;</entry>
- <entry> FreeBSD &sparc; x[c</entry>
+ <entry>移植 FreeBSD 到 &sparc; 平台架構</entry>
</row>
<row>
<entry>&a.standards.name;</entry>
- <entry>FreeBSD P C99 &posix;зǪۮeijD</entry>
+ <entry>FreeBSD 與 C99 及 &posix;標準的相容議題</entry>
</row>
<row>
<entry>&a.threads.name;</entry>
- <entry>FreeBSD W Threading BΡBQ</entry>
+ <entry>FreeBSD 上的 Threading 運用、探討</entry>
</row>
<row>
<entry>&a.testing.name;</entry>
- <entry>FreeBSD įPíwʴ</entry>
+ <entry>FreeBSD 的效能與穩定性測試</entry>
</row>
<row>
<entry>&a.tokenring.name;</entry>
- <entry>FreeBSD Token Ring 䴩ΡBQ</entry>
+ <entry>FreeBSD 的 Token Ring 支援的應用、探討</entry>
</row>
<row>
<entry>&a.usb.name;</entry>
- <entry>&os; USB 䴩ΡBQ</entry>
+ <entry>&os; 的 USB 支援的應用、探討</entry>
</row>
<row>
<entry>&a.vuxml.name;</entry>
- <entry>VuXML |}q[cQ</entry>
+ <entry>VuXML 漏洞通報架構的探討</entry>
</row>
<row>
<entry>&a.x11.name;</entry>
- <entry>X11 b FreeBSD B</entry>
+ <entry>X11 在 FreeBSD 的運用</entry>
</row>
</tbody>
</tgroup>
</informaltable>
- <para><emphasis>q\׾¡G</emphasis> HU lists Ow@ǯSwnDŪ̦ӳ]A
- ӥBäAXO@몺}QװϡC
- z̦nbYǧ޳NQװϰѻP@qɶQ׫AAܭq\oǦ׾¡C
- ]p@ӡAziHFѨboǰQװϵoҶ§C</para>
+ <para><emphasis>有訂閱限制的論壇:</emphasis> 以下的 lists 是針對一些特定要求的讀者而設,
+ 而且並不適合當成是一般的公開討論區。
+ 您最好先在某些技術討論區參與一段時間的討論後,再選擇訂閱這些有限制的論壇。
+ 因為如此一來,您可以了解到在這些討論區發言所須的禮儀。</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
- <entry>List W</entry>
- <entry>ت</entry>
+ <entry>List 名稱</entry>
+ <entry>目的</entry>
</row>
</thead>
<tbody>
<row>
<entry>&a.hubs.name;</entry>
- <entry>Mgx(mirror)yQװ</entry>
+ <entry>映射站台(mirror)的交流討論區</entry>
</row>
<row>
<entry>&a.usergroups.name;</entry>
- <entry>s</entry>
+ <entry>社群間的協調</entry>
</row>
<row>
@@ -509,26 +509,26 @@
<row>
<entry>&a.www.name;</entry>
- <entry><link xlink:href="&url.base;/index.html">www.FreeBSD.org</link> ޲z@</entry>
+ <entry><link xlink:href="&url.base;/index.html">www.FreeBSD.org</link> 的管理維護</entry>
</row>
</tbody>
</tgroup>
</informaltable>
- <para><emphasis>׾ªKnG</emphasis> WzU lists Kn(digest)A
- bq\ list ANiHHۤvbnJAMӤHq\ﶵאּKnYiC</para>
+ <para><emphasis>論壇的摘要版:</emphasis> 上述的各 lists 都有摘要版(digest),
+ 在訂閱 list 之後,就可以先以自己帳號登入,然後個人訂閱選項那邊改為摘要版即可。</para>
- <para><emphasis>CVS lists:</emphasis> HU lists OѵQnݦU tree (commit)A
- Ъ`NGL̬O <emphasis>Ū(Read-Only)</emphasis> ʽ誺 list
- AӥBHHoC</para>
+ <para><emphasis>CVS lists:</emphasis> 以下的 lists 是提供給想要看各個 tree 的提交(commit)紀錄,
+ 請注意:他們是 <emphasis>唯讀(Read-Only)</emphasis> 性質的 list
+ ,而且不能寄信給這。</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="3">
<thead>
<row>
- <entry>List W</entry>
- <entry>Source ϰ</entry>
- <entry>² (source for)</entry>
+ <entry>List 名稱</entry>
+ <entry>Source 區域</entry>
+ <entry>本區簡介 (source for)</entry>
</row>
</thead>
@@ -536,31 +536,31 @@
<row>
<entry>&a.cvsall.name;</entry>
<entry><filename>/usr/(CVSROOT|doc|ports|projects|src)</filename></entry>
- <entry>ܧO(]AU CVS commit)</entry>
+ <entry>全部的變更記錄(包括各類 CVS commit)</entry>
</row>
<row>
<entry>&a.cvs-doc.name;</entry>
<entry><filename>/usr/(doc|www)</filename></entry>
- <entry>doc www trees Ҧܧ</entry>
+ <entry>doc 及 www trees 的所有變更紀錄</entry>
</row>
<row>
<entry>&a.cvs-ports.name;</entry>
<entry><filename>/usr/ports</filename></entry>
- <entry>ports tree Ҧܧ</entry>
+ <entry>ports tree 的所有變更紀錄</entry>
</row>
<row>
<entry>&a.cvs-projects.name;</entry>
<entry><filename>/usr/projects</filename></entry>
- <entry>projects tree Ҧܧ</entry>
+ <entry>projects tree 的所有變更紀錄</entry>
</row>
<row>
<entry>&a.cvs-src.name;</entry>
<entry><filename>/usr/src</filename></entry>
- <entry>src tree Ҧܧ</entry>
+ <entry>src tree 的所有變更紀錄</entry>
</row>
</tbody>
</tgroup>
@@ -568,11 +568,11 @@
</sect2>
<sect2 xml:id="eresources-subscribe">
- <title>npq\</title>
+ <title>要如何訂閱</title>
- <para>nq\ list ܡAХHƹUWz list W١A
- άO &a.mailman.lists.link; MYiD靈쪺 list ӭq\FA
- Ӻ|ܧApiq\BJC</para>
+ <para>要訂閱 list 的話,請以滑鼠按下上述 list 名稱,
+ 或是到 &a.mailman.lists.link; 然後即可挑選有興趣的 list 來訂閱了,
+ 該網頁會指示你如何進行訂閱的步驟。</para>
<para>To actually post to a given list you simply send mail to
<email><replaceable>listname</replaceable>@FreeBSD.org</email>. It will then
diff --git a/zh_TW.Big5/books/handbook/firewalls/Makefile b/zh_TW.UTF-8/books/handbook/firewalls/Makefile
index 9320a51f68..9320a51f68 100644
--- a/zh_TW.Big5/books/handbook/firewalls/Makefile
+++ b/zh_TW.UTF-8/books/handbook/firewalls/Makefile
diff --git a/zh_TW.Big5/books/handbook/firewalls/chapter.xml b/zh_TW.UTF-8/books/handbook/firewalls/chapter.xml
index b4b5cc7596..159372890f 100644
--- a/zh_TW.Big5/books/handbook/firewalls/chapter.xml
+++ b/zh_TW.UTF-8/books/handbook/firewalls/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
@@ -6,7 +6,7 @@
Original revision: 1.66
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="firewalls">
- <info><title></title>
+ <info><title>防火牆</title>
<authorgroup>
<author><personname><firstname>Joseph J.</firstname><surname>Barbish</surname></personname><contrib>Contributed by </contrib></author>
</authorgroup>
@@ -17,282 +17,282 @@
- <indexterm><primary></primary></indexterm>
+ <indexterm><primary>防火牆</primary></indexterm>
<indexterm>
- <primary>w</primary>
+ <primary>安全</primary>
- <secondary></secondary>
+ <secondary>防火牆</secondary>
</indexterm>
<sect1 xml:id="firewalls-intro">
- <title>z</title>
+ <title>概述</title>
- <para>LoAtΤiXyqC
- ]ǥѳ]m@ΦhաuWh(rules)v
- ˬdAsiXʥ](network packets)A
- åBह\ΪרqLC
- oǨ𪺳WhiHˬdʥ]SxA
- oǯSx[\AYdzqTwBD}ӷΥتA
- Hγs(port)ӷΥتC</para>
+ <para>防火牆能夠過濾你的系統中進出的流量。
+ 防火牆也能藉由設置一或多組「規則(rules)」
+ 來檢查你的網路連結中進出的網路封包(network packets),
+ 並且能允許或阻擋其通過。
+ 這些防火牆的規則可以檢查封包中的特徵,
+ 這些特徵涵蓋,但不限於某些通訊協定類型、主機位址的來源或目的,
+ 以及連接埠(port)的來源及目的。</para>
- <para>jTaWjDάOwʡC
- ]ΨӰUCƶG</para>
+ <para>防火牆能夠大幅地增強主機或是網路的安全性。
+ 它也能夠用來執行下列事項:</para>
<itemizedlist>
<listitem>
- <para>O@ιjAε{BAȥHξA
- KQӦ Internet AQnǿҼvT</para>
+ <para>保護或隔離你內部網路的應用程式、服務以及機器,
+ 免於被來自 Internet 中你不想要的傳輸所影響</para>
</listitem>
<listitem>
- <para>θT Internet sA</para>
+ <para>限制或禁止內部網路對 Internet 的存取服務</para>
</listitem>
<listitem>
- <para>䴩u}ഫv(network address translation
- , <acronym>NAT</acronym>)AiH\Aϥ private
- <acronym>IP</acronym> }åiH@Pɤ@ӳ@suںW
- (iPɥγ@<acronym>IP</acronym>}άO@դ@})</para>
+ <para>支援「網路位址轉換」(network address translation
+ , <acronym>NAT</acronym>),它可以允許你的內部網路使用 private
+ <acronym>IP</acronym> 位址並可以共同分享一個單一連線到網際網路上
+ (可同時用單一<acronym>IP</acronym>位址或是一組公共網址)</para>
</listitem>
</itemizedlist>
- <para>ŪoAAN|DG</para>
+ <para>讀完這章之後,你將會知道:</para>
<itemizedlist>
<listitem>
- <para>pAaqXʥ]LoWhC</para>
+ <para>如何適當地訂出封包過濾的規則。</para>
</listitem>
<listitem>
- <para>&os; ت𤧶tC</para>
+ <para>&os; 中內建的防火牆之間的差異。</para>
</listitem>
<listitem>
- <para>pϥΤγ]w OpenBSD
- <application>PF</application> C</para>
+ <para>如何使用及設定 OpenBSD 的
+ <application>PF</application> 防火牆。</para>
</listitem>
<listitem>
- <para>pϥΤγ]w
- <application>IPFILTER</application>C</para>
+ <para>如何使用及設定
+ <application>IPFILTER</application>。</para>
</listitem>
<listitem>
- <para>pϥΤγ]w
- <application>IPFW</application>C</para>
+ <para>如何使用及設定
+ <application>IPFW</application>。</para>
</listitem>
</itemizedlist>
- <para>b\ŪoeAAG</para>
+ <para>在閱讀這章之前,你必須:</para>
<itemizedlist>
<listitem>
- <para>FѰ򥻪 &os; M Internet [</para>
+ <para>了解基本的 &os; 和 Internet 觀念</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="firewalls-concepts">
- <title>Lͨ𷧩</title>
+ <title>淺談防火牆概念</title>
<indexterm>
- <primary></primary>
+ <primary>防火牆</primary>
- <secondary>Wh</secondary>
+ <secondary>規則</secondary>
</indexterm>
- <para>򥻤WWhiثAAOGuexclusivevH
- uinclusivevC
- <!-- inclusive/exclusive Ѧ Mattlinuxer N
- ] exclusive Oe\Ҧʥ]qLAAzLWh
- QqLʥ]C inclusive hOɱҦAӦAe\
- ŦXWhʥ]qLC
+ <para>基本上防火牆規則可分為兩種型態,分別為:「exclusive」以及
+ 「inclusive」。
+ <!-- inclusive/exclusive 參考 Mattlinuxer 的意見
+ 因為 exclusive 防火牆是先容許所有封包通過,再透過規則阻擋
+ 不想讓其通過的封包。而 inclusive 則是檔掉所有,後來再容許
+ 符合規則的封包通過。
-->
- uexclusivevu¦WvA\Ҧʥ]qLA
- MHϳWhʥ]hTqLC
- ۤϪAuinclusivevuզWvAצҦʥ]qLA
- Mu\ŦXWh~iqLC</para>
+ 「exclusive」類似「黑名單」,它先允許所有封包通過,
+ 然後違反規則的封包則禁止通過防火牆。
+ 相反的,「inclusive」類似「白名單」,它先擋住所有封包通過,
+ 然後只允許有符合規則的才可通過防火牆。</para>
- <para>ӻAuinclusivev|uexclusivevwǡC
- ]uinclusivev㭰CFnIC</para>
+ <para>整體來說,「inclusive」式防火牆會比「exclusive」式防火牆安全些。
+ 因為「inclusive」明顯降低了不必要的風險。</para>
- <para>~AϥΡustateful firewallviwʧYKC
- |OqL}񪺳suA
- åBu\ŦX{sζ}ҷssu~qLC
- A𪺯IOpGbD`֪tפU}ҳ\hssuA
- Ni|Aȧ(<acronym>DoS</acronym>, Denial of Service)C
- bjhƪפA]iHeBΡustateful vΡunon-statefulv
- 𪺲զXAӺF̨ΤơC</para>
+ <para>此外,使用「stateful firewall」可讓安全性更嚴密。
+ 它會持續記錄通過防火牆開放的連線,
+ 並且只允許符合現存或開啟新的連線才能通過防火牆。
+ 狀態防火牆的缺點是如果在非常快的速度下開啟許多新連線,
+ 就可能會受到阻絕式服務攻擊(<acronym>DoS</acronym>, Denial of Service)。
+ 在大多數的防火牆方案中,也可以交叉運用「stateful 」及「non-stateful」
+ 防火牆的組合,讓該網站的防火牆達到最佳化。</para>
</sect1>
<sect1 xml:id="firewalls-apps">
- <title>n</title>
+ <title>防火牆相關軟體</title>
- <para>b &os; 򥻨tΤئTؤPnMC
- ̤OO <emphasis>IPFILTER</emphasis>
- (]NO <acronym>IPF</acronym>)B
- <emphasis>IPFIREWALL</emphasis> (]NO <acronym>IPFW</acronym>)A
- H<emphasis> OpenBSD PacketFilter</emphasis> (YW
- <acronym>PF</acronym>)C
- &os; ]ӤتyqޮM(򥻤WOWeϥ)G
- &man.altq.4; H &man.dummynet.4;C
- q`ڭ̲ߺD Dummynet P <acronym>IPFW</acronym> @ֹBΡA
- <acronym>ALTQ</acronym> hOft
- <acronym>IPF</acronym>/<acronym>PF</acronym> @PϥΡC
- M IPFBIPFW H PF OϥΤP갵覡γWhykA
- O̳ϥγWhӱO_\ƫʥ]iXAtΡC</para>
+ <para>在 &os; 基本系統中內建有三種不同的防火牆軟體套件。
+ 它們分別是 <emphasis>IPFILTER</emphasis>
+ (也就是 <acronym>IPF</acronym>)、
+ <emphasis>IPFIREWALL</emphasis> (也就是 <acronym>IPFW</acronym>),
+ 以及<emphasis> OpenBSD 的 PacketFilter</emphasis> (即有名的
+ <acronym>PF</acronym>)。
+ &os; 也有兩個內建的流量控管套件(基本上是控制頻寬的使用):
+ &man.altq.4; 以及 &man.dummynet.4;。
+ 通常我們習慣把 Dummynet 與 <acronym>IPFW</acronym> 一併運用,
+ 而 <acronym>ALTQ</acronym> 則是搭配
+ <acronym>IPF</acronym>/<acronym>PF</acronym> 一同使用。
+ 雖然 IPF、IPFW 以及 PF 是使用不同的實做方式及規則語法,
+ 但是它們都使用規則來控制是否允許資料封包進出你的系統。</para>
- <para>&os; |س\hPnMAoO]PH|PݨD
- BnA@ӨnMO̦nC</para>
+ <para>&os; 為何會內建許多不同的防火牆軟體套件,這是因為不同人會有不同的需求
+ 、偏好,很難說哪一個防火牆軟體套件是最好的。</para>
- <para>ӵ̰n IPFILTER ]AO]BΦb <acronym>NAT</acronym>
- ҪɭԡAAWhO۹²\hC
- ӥBت FTP NzA]²ƤFp]ww~ FTP AȳWhC</para>
+ <para>而筆者偏好 IPFILTER 的原因,是因為運用在 <acronym>NAT</acronym>
+ 環境的時候,它的狀態規則是相對簡單許多的。
+ 而且它內建的 FTP 代理,也簡化了如何設定安全的對外 FTP 服務規則。</para>
- <!-- psilotum: 20060309: oqb½IǡAѦ zh_CN ½Ķ -->
- <para>ѩҦ𳣬OHuˬdBҿwʥ]v@AҥHA
- wWhHN󥲶F <acronym>TCP</acronym>/IP pB@A
- HΦp󱱨ʥ]b` session Uا@ΡC
- ԺɪAаѾ\G
- <uri xlink:href="http://www.ipprimer.com/overview.cfm">http://www.ipprimer.com/overview.cfm</uri>C</para>
+ <!-- psilotum: 20060309: 這段實在翻的有點怪,參考 zh_CN 翻譯 -->
+ <para>正由於所有的防火牆都是以「檢查、控制所選定之封包」的實作,所以,
+ 制定防火牆規則的人就更必須了解 <acronym>TCP</acronym>/IP 如何運作,
+ 以及如何控制封包在正常 session 的各種作用。
+ 更詳盡的說明,請參閱:
+ <uri xlink:href="http://www.ipprimer.com/overview.cfm">http://www.ipprimer.com/overview.cfm</uri>。</para>
</sect1>
<sect1 xml:id="firewalls-pf">
- <title>OpenBSD ʥ]Lo (Packet Filter, PF)
+ <title>OpenBSD 封包過濾器 (Packet Filter, PF)及
<acronym>ALTQ</acronym></title>
<indexterm>
- <primary></primary>
+ <primary>防火牆</primary>
<secondary>PF</secondary>
</indexterm>
- <para>b 2003 ~ 6 AOpenBSD n <acronym>PF</acronym>
- QӨ &os; AåB Ports Collection C
- 2004 ~ 11 ҵo檺 &os;&nbsp;5.3 ]OĤ@N
- <acronym>PF</acronym> X¦tΪ@C
- <acronym>PF</acronym>OӧơB\઺A
- åB㦳ܩ <acronym>ALTQ</acronym>(CAAlternate Queuing)
- <!--psilotum: 20060309 alternative queuing Ѧ zh_CN ½Ķ -->
- \C
- <acronym>ALTQ</acronym>ѤFu<acronym>QoS</acronym>v
- (Quality of Service)Weި\A
- iHιLoWh覡ӫO٦UؤPAȪWeC
- t~AOpenBSD pwg PF ϥΫnѤFԺɪѻA
- ]boUڭ̤|@ƪحzAӥuзnC</para>
- <!--20060309 psilotumG½ĶıoIǡAҥH̫@yg-->
+ <para>在 2003 年 6 月份,OpenBSD 的防火牆軟體 <acronym>PF</acronym>
+ 被移植到 &os; 中,並且收錄於 Ports Collection 內。
+ 而 2004 年 11 月份所發行的 &os;&nbsp;5.3 版也是第一次將
+ <acronym>PF</acronym> 整合為基礎系統的一部分。
+ <acronym>PF</acronym>是個完備、全功能的防火牆,
+ 並且具有選擇性 <acronym>ALTQ</acronym>(交錯佇列,Alternate Queuing)
+ <!--psilotum: 20060309 alternative queuing 參考 zh_CN 的翻譯 -->
+ 的功能。
+ <acronym>ALTQ</acronym>提供了「<acronym>QoS</acronym>」
+ (Quality of Service)頻寬管制功能,
+ 它可以用過濾規則的方式來保障各種不同服務的頻寬。
+ 另外,OpenBSD 計劃中已經對 PF 的使用指南提供了詳盡的解說,
+ 因此在這本手冊中我們不會作重複的贅述,而只介紹概要。</para>
+ <!--20060309 psilotum:怎麼翻譯都覺得有點怪,所以最後一句重寫-->
- <para>h PF TiUC}dߡG<uri xlink:href="http://pf4freebsd.love2party.net/">http://pf4freebsd.love2party.net/</uri>.</para>
+ <para>更多關於 PF 的資訊可於下列網址查詢:<uri xlink:href="http://pf4freebsd.love2party.net/">http://pf4freebsd.love2party.net/</uri>.</para>
<sect2>
- <title>ҥ PF</title>
+ <title>啟用 PF</title>
- <para>PF b &os; 5.3 ᪺tΤANiHPϥ kernel ʺAҲըӸJC
- b rc.conf [J <literal>pf_enable="YES"</literal> A
- tδN|J PF kernel ʺAҲաCoҲշ|bإ߮ɤ]ҥ &man.pflog.4;
- O\C</para>
+ <para>PF 在 &os; 5.3 之後的系統中,就可以輕鬆使用 kernel 動態模組來載入。
+ 在 rc.conf 中加入 <literal>pf_enable="YES"</literal> 後,
+ 系統就會載入 PF 的 kernel 動態模組。這模組會在建立時也啟用 &man.pflog.4;
+ 記錄功能。</para>
<note>
- <para>oӼҲշ|] kernel w <literal>options INET</literal> M
- <literal>device bpf</literal>C
- DsĶ kernel ɤwbO &man.make.conf.5; ]wɤ[J
+ <para>這個模組會假設 kernel 內已有 <literal>options INET</literal> 和
+ <literal>device bpf</literal>。
+ 除非編譯 kernel 時已在像是 &man.make.conf.5; 設定檔中加入
<literal>NOINET6</literal>(
- &os; 6.0 H᪺hO <literal>NO_INET6</literal>)
- oˤ~|קK} IPv6 䴩A
- _h pf ҲզPɤ]ݭn <literal>options INET6</literal>A]NO IPv6
- 䴩C</para>
+ &os; 6.0 以後的版本則是 <literal>NO_INET6</literal>)
+ 這樣才會避免不打開 IPv6 支援,
+ 否則 pf 模組同時也需要 <literal>options INET6</literal>,也就是 IPv6
+ 支援。</para>
</note>
- <para>@J PF kernel ҲթάORAsĶJ kernel A
- NiHϥ <command>pfctl</command> ӱҰʩ
- <application>pf</application>C</para>
+ <para>一旦載入 PF 的 kernel 模組或是靜態編譯入 kernel 內,
+ 就可以使用 <command>pfctl</command> 來啟動或關閉
+ <application>pf</application>。</para>
- <para>UoӨҤlܽdpҰ <application>pf</application>G</para>
+ <para>下面這個例子示範如何啟動 <application>pf</application>:</para>
<screen>&prompt.root; <userinput>pfctl -e</userinput></screen>
- <para><command>pfctl</command> Oϥ <application>pf</application>
- 𪺫OC YnFѧԺɪ <command>pfctl</command> BΡAЬd\
- &man.pfctl.8; uWUC</para>
+ <para><command>pfctl</command> 是使用 <application>pf</application>
+ 防火牆的指令。 若要了解更詳盡的 <command>pfctl</command> 運用,請查閱
+ &man.pfctl.8; 線上手冊。</para>
</sect2>
<sect2>
- <title>kernel ﶵ</title>
+ <title>kernel 選項</title>
<indexterm>
- <primary>kernel ﶵ</primary>
+ <primary>kernel 選項</primary>
<secondary>device pf</secondary>
</indexterm>
<indexterm>
- <primary>kernel ﶵ</primary>
+ <primary>kernel 選項</primary>
<secondary>device pflog</secondary>
</indexterm>
<indexterm>
- <primary>kernel ﶵ</primary>
+ <primary>kernel 選項</primary>
<secondary>device pfsync</secondary>
</indexterm>
- <para>bsĶ &os; kernel ɡAä[JUCﶵӱҥ PFC
- bo̥uOnCXAѦҪ@ǸTӤwC
- N PF sĶJ kernel A|ɭPLkϥ kernel ʺAJҲաC</para>
+ <para>在編譯 &os; kernel 時,並不必完全加入下列的選項來啟用 PF。
+ 在這裡只是要列出給你參考的一些資訊而已。
+ 將 PF 編譯入 kernel 中,會導致無法使用 kernel 的動態載入模組。</para>
- <para>]w PF kernel ﶵdҦb kernel lX
- <filename>/usr/src/sys/conf/NOTES</filename>AKepUG</para>
+ <para>設定 PF 的 kernel 選項範例在 kernel 原始碼中的
+ <filename>/usr/src/sys/conf/NOTES</filename>,轉貼內容如下:</para>
<programlisting>device pf
device pflog
device pfsync</programlisting>
- <para><literal>device pf</literal> OΨӱҰʡupacket filter(ʥ]Lo)v
- 䴩C</para>
+ <para><literal>device pf</literal> 是用來啟動「packet filter(封包過濾)」
+ 的防火牆支援。</para>
- <para> <literal>device pflog</literal>A\nˤˬҥiA|Ұ
- &man.pflog.4;AH &man.bpf.4; 榡ӰOyqC
- &man.pflogd.8; daemon hOΨӬoǰTAæsbwФWC</para>
- <!-- psilotum:20060311 Ѧ zh_CN ½Ķ -->
+ <para>而 <literal>device pflog</literal>,此功能要裝不裝皆可,它會啟動
+ &man.pflog.4;,以 &man.bpf.4; 格式來記錄網路流量。
+ &man.pflogd.8; daemon 則是用來紀錄這些訊息,並存在硬碟上。</para>
+ <!-- psilotum:20060311 參考 zh_CN 翻譯 -->
- <para><literal>device pfsync</literal>A\nˤˬҥiA|Ұ
- &man.pfsync.4;AiHΨӺʱuAܡvC Ъ`NG
- <literal>device pfsync</literal>äO kernel ʺAҲաAnϥΪܡA
- nsJۭq kernel ~C</para>
+ <para><literal>device pfsync</literal>,此功能要裝不裝皆可,它會啟動
+ &man.pfsync.4;,可以用來監控「狀態的改變」。 請注意:
+ <literal>device pfsync</literal>並不是 kernel 動態模組,要使用的話,
+ 必須要編入自訂的 kernel 中才行。</para>
- <para>odz]wN|bAsĶΦw˦ns kernel ~|ͮġC</para>
+ <para>這些設定將會在你編譯及安裝好新 kernel 後才會生效。</para>
</sect2>
<sect2>
- <title>rc.conf Lﶵ</title>
+ <title>rc.conf 其他相關的選項</title>
- <para>Aݭnb <filename>/etc/rc.conf</filename>
- [JUC]wAHKbtαҰʮɱҥ PFG</para>
+ <para>你需要在 <filename>/etc/rc.conf</filename>
+ 中加入下列的設定,以便在系統啟動時啟用 PF:</para>
- <programlisting>pf_enable="YES" # ҥ PF (pGݭnܸJҲ)
-pf_rules="/etc/pf.conf" # PF Wh]w
-pf_flags="" # pfctl Ұʮɪ[ﶵ
-pflog_enable="YES" # Ұ pflogd(8)
-pflog_logfile="/var/log/pflog" # pflogd xsOɮתa
-pflog_flags="" # pflogd Ұʮɪ[ﶵ</programlisting>
+ <programlisting>pf_enable="YES" # 啟用 PF (如果需要的話載入模組)
+pf_rules="/etc/pf.conf" # PF 防火牆規則設定檔
+pf_flags="" # pfctl 啟動時的附加選項
+pflog_enable="YES" # 啟動 pflogd(8)
+pflog_logfile="/var/log/pflog" # pflogd 儲存記錄檔案的地方
+pflog_flags="" # pflogd 啟動時附加的選項</programlisting>
- <para>pGz᭱ LAN(ϰ)AínzLeʥ]A
- Nn]wUCﶵG</para>
+ <para>如果您的防火牆後面有個 LAN(區域網路),並要透過它來轉送封包,
+ 就必須要設定下列選項:</para>
- <programlisting>gateway_enable="YES" # ҥ LAN Gateway</programlisting>
+ <programlisting>gateway_enable="YES" # 啟用 LAN Gateway</programlisting>
</sect2>
<sect2>
- <title>ҥ <acronym>ALTQ</acronym></title>
+ <title>啟用 <acronym>ALTQ</acronym></title>
- <para><acronym>ALTQ</acronym> ubsJ &os; kernel ~ͮġC
- OҦdXʵ{䴩 <acronym>ALTQ</acronym>C
- Ь &man.altq.4; uWUӤFѧAϥΪ &os; 䴩Xʵ{MC
- UҦCN|ҥ <acronym>ALTQ</acronym> ΨL[\G</para>
+ <para><acronym>ALTQ</acronym> 只有在編入 &os; kernel 中才能生效。
+ 不是所有的網路卡驅動程式都支援 <acronym>ALTQ</acronym>。
+ 請看 &man.altq.4; 線上手冊來了解你使用的 &os; 版本中支援驅動程式的清單。
+ 下面所列的將會啟用 <acronym>ALTQ</acronym> 及其他附加功能:</para>
<programlisting>options ALTQ
options ALTQ_CBQ # Class Bases Queuing (CBQ)
@@ -302,11 +302,11 @@ options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC)
options ALTQ_PRIQ # Priority Queuing (PRIQ)
options ALTQ_NOPCC # Required for SMP build</programlisting>
- <para><literal>options ALTQ</literal> Oҥ <acronym>ALTQ</acronym> D[cC</para>
+ <para><literal>options ALTQ</literal> 是啟用 <acronym>ALTQ</acronym> 主架構。</para>
- <para><literal>options ALTQ_CBQ</literal> |ҥΡu<acronym>CBQ</acronym>v
- (Class Based Queuing)䴩C
- <acronym>CBQ</acronym> \A
+ <para><literal>options ALTQ_CBQ</literal> 會啟用「<acronym>CBQ</acronym>」
+ (Class Based Queuing)支援。
+ <acronym>CBQ</acronym> 允許你
divide a connection's bandwidth into different
classes or queues to prioritize traffic based on filter
rules.</para>
@@ -370,22 +370,22 @@ options ALTQ_NOPCC # Required for SMP build</programlisting>
</sect1>
<sect1 xml:id="firewalls-ipf">
- <title>IPFILTER (IPF) </title>
+ <title>IPFILTER (IPF) 防火牆</title>
<indexterm>
- <primary></primary>
+ <primary>防火牆</primary>
<secondary>IPFILTER</secondary>
</indexterm>
<note>
- <para>@`ebɥRBsAҥH`eiåŦX{pC</para>
+ <para>此一節的內容仍在陸續補充、更新,所以本節內容可能並未完全符合現況。</para>
</note>
- <para>IPFILTER @̬ Darren ReedCIPFILTER ëDojYSw@~tΤ~G
- OӸ OS x open source ε{ABwQӨ
- &os;BNetBSDBOpenBSDB&sunos;BHP/UX H
- &solaris; oǧ@~tΤWC~AIPFILTER 䴩B@]۷nA]wXsC</para>
+ <para>IPFILTER 的作者為 Darren Reed。IPFILTER 並非得綁某特定作業系統才行:
+ 它是個跨 OS 平台的 open source 應用程式,且已被移植到
+ &os;、NetBSD、OpenBSD、&sunos;、HP/UX 以及
+ &solaris; 這些作業系統上。此外,IPFILTER 的支援、維護也相當積極,也有定期釋出的更新版。</para>
<para>IPFILTER is based on a kernel-side firewall and
<acronym>NAT</acronym> mechanism that can be controlled and
@@ -398,10 +398,10 @@ options ALTQ_NOPCC # Required for SMP build</programlisting>
files.</para>
<para>IPF was originally written using a rule processing logic of
- uthe last matching rule winsv and used only
+ 「the last matching rule wins」 and used only
stateless type of rules. Over time IPF has been enhanced to
- include a uquickv option and a stateful ukeep
- statev option which drastically modernized the rules
+ include a 「quick」 option and a stateful 「keep
+ state」 option which drastically modernized the rules
processing logic. IPF's official documentation covers the legacy
rule coding parameters and the legacy rule file processing
logic. The modernized functions are only included as additional
@@ -409,8 +409,8 @@ options ALTQ_NOPCC # Required for SMP build</programlisting>
far superior secure firewall.</para>
<para>The instructions contained in this section are based on
- using rules that contain the uquickv option and the
- stateful ukeep statev option. This is the basic
+ using rules that contain the 「quick」 option and the
+ stateful 「keep state」 option. This is the basic
framework for coding an inclusive firewall rule set.</para>
<!-- XXX: something like this already in
@@ -430,15 +430,15 @@ options ALTQ_NOPCC # Required for SMP build</programlisting>
method see: <uri xlink:href="http://www.obfuscation.org/ipf/ipf-howto.html#TOC_1">http://www.obfuscation.org/ipf/ipf-howto.html#TOC_1</uri>
and <uri xlink:href="http://coombs.anu.edu.au/~avalon/ip-filter.html">http://coombs.anu.edu.au/~avalon/ip-filter.html</uri>.</para>
- <para>IPF FAQ <uri xlink:href="http://www.phildev.net/ipf/index.html">http://www.phildev.net/ipf/index.html</uri>.</para>
+ <para>IPF 的 FAQ 位於 <uri xlink:href="http://www.phildev.net/ipf/index.html">http://www.phildev.net/ipf/index.html</uri>.</para>
<sect2>
- <title>ҥ IPF</title>
+ <title>啟用 IPF</title>
<indexterm>
<primary>IPFILTER</primary>
- <secondary>ҥ</secondary>
+ <secondary>啟用</secondary>
</indexterm>
<para>IPF is included in the basic &os; install as a separate run
@@ -453,7 +453,7 @@ options ALTQ_NOPCC # Required for SMP build</programlisting>
</sect2>
<sect2>
- <title>kernel ﶵ</title>
+ <title>kernel 選項</title>
<indexterm>
<primary>kernel options</primary>
@@ -479,9 +479,9 @@ options ALTQ_NOPCC # Required for SMP build</programlisting>
<secondary>kernel options</secondary>
</indexterm>
- <para>bsĶ &os; kernel ɡAä[JUCﶵӱҥ IPFC
- bo̥uOnCXAѦҪ@ǸTӤwC
- N IPF sĶJ kernel A|ɭPLkϥ kernel ʺAJҲաC</para>
+ <para>在編譯 &os; kernel 時,並不必完全加入下列的選項來啟用 IPF。
+ 在這裡只是要列出給你參考的一些資訊而已。
+ 將 IPF 編譯入 kernel 中,會導致無法使用 kernel 的動態載入模組。</para>
<para>Sample kernel config IPF option statements are in the
<filename>/usr/src/sys/conf/NOTES</filename> kernel source
@@ -493,7 +493,7 @@ options IPFILTER_LOG
options IPFILTER_DEFAULT_BLOCK</programlisting>
<para><literal>options IPFILTER</literal> enables support for the
- uIPFILTERv firewall.</para>
+ 「IPFILTER」 firewall.</para>
<para><literal>options IPFILTER_LOG</literal> enables the option
to have IPF log traffic by writing to the
@@ -510,24 +510,24 @@ options IPFILTER_DEFAULT_BLOCK</programlisting>
</sect2>
<sect2>
- <title>iΪ rc.conf ﶵ</title>
+ <title>可用的 rc.conf 選項</title>
- <para>b <filename>/etc/rc.conf</filename> [JUCeAHKb}ɴN|ҥ IPFG</para>
+ <para>須在 <filename>/etc/rc.conf</filename> 內加入下列內容,以便在開機時就會啟用 IPF:</para>
<programlisting>ipfilter_enable="YES" # Start ipf firewall
-ipfilter_rules="/etc/ipf.rules" # IPF Wh]w
-ipmon_enable="YES" # ҥ IP ʱO
-ipmon_flags="-Ds" # D = ϥΪAȵ{ (daemon) Ұ
- # s = ϥ syslog O
- # v = O tcp window, ack, seq
- # n = N IP port ܦW٤</programlisting>
+ipfilter_rules="/etc/ipf.rules" # IPF 防火牆規則設定檔
+ipmon_enable="YES" # 啟用 IP 監控記錄
+ipmon_flags="-Ds" # D = 使用服務程序 (daemon) 啟動
+ # s = 使用 syslog 記錄
+ # v = 記錄於 tcp window, ack, seq
+ # n = 將 IP 及 port 對應至名稱中</programlisting>
<para>If you have a LAN behind this firewall that uses the
reserved private IP address ranges, then you need to add the
following to enable <acronym>NAT</acronym>
functionality:</para>
- <programlisting>gateway_enable="YES" # ҥ LAN Gateway
+ <programlisting>gateway_enable="YES" # 啟用 LAN Gateway
ipnat_enable="YES" # Start ipnat function
ipnat_rules="/etc/ipnat.rules" # rules definition file for ipnat</programlisting>
</sect2>
@@ -708,9 +708,9 @@ ipnat_rules="/etc/ipnat.rules" # rules definition file for ipnat</programlist
<para><application>Syslogd</application> uses its own special
method for segregation of log data. It uses special groupings
- called ufacilityv and <quote>level</quote>. IPMON
+ called 「facility」 and <quote>level</quote>. IPMON
in <option>-Ds</option> mode uses <literal>security</literal>
- (<literal>local0</literal> in 4.X) as the ufacilityv
+ (<literal>local0</literal> in 4.X) as the 「facility」
name. All IPMON logged data goes to <literal>security</literal>
(<literal>local0</literal> in 4.X). The following levels can be
used to further segregate the logged data if desired:</para>
@@ -826,7 +826,7 @@ LOG_ERR - packets which have been logged and which can be considered short</scre
flags.</para>
<para>If the packet is an ICMP packet, there will be two fields
- at the end, the first always being uICMPv, and the
+ at the end, the first always being 「ICMP」, and the
next being the ICMP message and sub-message type, separated by
a slash, e.g. ICMP 3/3 for a port unreachable message.</para>
</sect2>
@@ -858,11 +858,11 @@ LOG_ERR - packets which have been logged and which can be considered short</scre
<para>Start your rule file with something like this:</para>
- <programlisting>############# IPF WhROZ}l ########################
+ <programlisting>############# IPF 規則命令稿的開始 ########################
-oif="dc0" # ~˸mW
-odns="192.0.2.11" # ISP DNS A IP }
-myip="192.0.2.7" # qڪ ISP ѪRA IP
+oif="dc0" # 對外網路裝置的名稱
+odns="192.0.2.11" # ISP 的 DNS 伺服器 IP 位址
+myip="192.0.2.7" # 從我的 ISP 提供的靜態 IP
ks="keep state"
fks="flags S keep state"
@@ -935,11 +935,11 @@ sh /etc/ipf.rules.script</programlisting>
</listitem>
</itemizedlist>
- <para>q{b_Atζ}ɴN|JAҳ] IPF WhC</para>
+ <para>從現在起,當系統開機時就會載入你所設的 IPF 規則。</para>
</sect2>
<sect2>
- <title>IPF Wh</title>
+ <title>IPF 規則</title>
<!-- XXX: looks incorrect (and duplicated 2 times in this chapter):
1. Packet can be processed two times depend of firewall
@@ -968,15 +968,15 @@ sh /etc/ipf.rules.script</programlisting>
</indexterm>
<para>IPF was originally written using a rules processing logic
- of uthe last matching rule winsv and used only
+ of 「the last matching rule wins」 and used only
stateless rules. Over time IPF has been enhanced to include a
- uquickv option and a stateful ukeep
- statev option which drastically modernized the rule
+ 「quick」 option and a stateful 「keep
+ state」 option which drastically modernized the rule
processing logic.</para>
<para>The instructions contained in this section are based on
- using rules that contain the uquickv option and
- the stateful ukeep statev option. This is the
+ using rules that contain the 「quick」 option and
+ the stateful 「keep state」 option. This is the
basic framework for coding an inclusive firewall rule
set.</para>
@@ -1014,8 +1014,8 @@ sh /etc/ipf.rules.script</programlisting>
</indexterm>
<para>The rule syntax presented here has been simplified to only
- address the modern stateful rule context and ufirst
- matching rule winsv logic. For the complete legacy rule
+ address the modern stateful rule context and 「first
+ matching rule wins」 logic. For the complete legacy rule
syntax description see the &man.ipf.8; manual page.</para>
<para>A <literal>#</literal> character is used to mark the start
@@ -1115,7 +1115,7 @@ sh /etc/ipf.rules.script</programlisting>
<para><literal>quick</literal> indicates that if the selection
parameters match the packet, this rule will be the last rule
- checked, allowing a ushort-circuitv path to avoid processing
+ checked, allowing a 「short-circuit」 path to avoid processing
any following rules for this packet. This option is a
mandatory requirement for the modernized rules processing
logic.</para>
@@ -1138,11 +1138,11 @@ sh /etc/ipf.rules.script</programlisting>
headers.</para>
<para><literal>first</literal> If the <literal>log</literal>
- keyword is being used in conjunction with a ukeep
- statev option, it is recommended that this option is
+ keyword is being used in conjunction with a 「keep
+ state」 option, it is recommended that this option is
also applied so that only the triggering packet is logged and
- not every packet which thereafter matches the ukeep
- statev information.</para>
+ not every packet which thereafter matches the 「keep
+ state」 information.</para>
</sect3>
<sect3>
@@ -1179,17 +1179,17 @@ sh /etc/ipf.rules.script</programlisting>
<title>SRC_ADDR/DST_ADDR</title>
<para>The <literal>all</literal> keyword is essentially a
- synonym for ufrom any to anyv with no other
+ synonym for 「from any to any」 with no other
match parameters.</para>
<para><literal>from src to dst</literal>: the from and to
keywords are used to match against IP addresses. Rules must
specify BOTH source and destination parameters.
<literal>any</literal> is a special keyword that matches any
- IP address. Examples of use: ufrom any to anyv
- or ufrom 0.0.0.0/0 to anyv or <quote>from any to
- 0.0.0.0/0v or ufrom 0.0.0.0 to any</quote> or
- ufrom any to 0.0.0.0v.</para>
+ IP address. Examples of use: 「from any to any」
+ or 「from 0.0.0.0/0 to any」 or <quote>from any to
+ 0.0.0.0/0」 or 「from 0.0.0.0 to any</quote> or
+ 「from any to 0.0.0.0」.</para>
<!-- XXX: Needs rewording -->
@@ -1216,7 +1216,7 @@ sh /etc/ipf.rules.script</programlisting>
number. The use of the port option with the
<literal>to</literal> object is a mandatory requirement for
the modernized rules processing logic. Example of use:
- ufrom any to any port = 80v</para>
+ 「from any to any port = 80」</para>
<!-- XXX: Needs rewriting -->
@@ -2012,7 +2012,7 @@ pass in quick on rl0 proto tcp from any to any port = 20 flags S keep state</pro
</indexterm>
<note>
- <para>@`ebɥRBsAҥH`eiåŦX{pC.</para>
+ <para>此一節的內容仍在陸續補充、更新,所以本節內容可能並未完全符合現況。.</para>
</note>
<para>The IPFIREWALL (IPFW) is a &os; sponsored firewall software
@@ -2300,7 +2300,7 @@ options IPV6FIREWALL_DEFAULT_TO_ACCEPT</programlisting>
sequence order. When the packet matches a rule selection
parameters, the rules action field value is executed and the
search of the rule set terminates for that packet. This is
- referred to as uthe first match winsv search
+ referred to as 「the first match wins」 search
method. If the packet does not match any of the rules, it gets
caught by the mandatory ipfw default rule, number 65535 which
denies all packets and discards them without any reply back to
@@ -3202,18 +3202,18 @@ pif="rl0" # public interface name of NIC
&dollar;cmd 307 deny all from 204.152.64.0/23 to any in via &dollar;pif #Sun cluster
&dollar;cmd 308 deny all from 224.0.0.0/3 to any in via &dollar;pif #Class D &amp; E multicast
-# ڵ ident
+# 拒絕 ident
&dollar;cmd 315 deny tcp from any to any 113 in via &dollar;pif
-# ڵҦ Netbios A. 137=name, 138=datagram, 139=session
-# Netbios O MS/Windows ɪA
-# שҦ MS/Windows DW٦Ahosts2 name server requests 81
+# 拒絕所有的 Netbios 服務. 137=name, 138=datagram, 139=session
+# Netbios 是 MS/Windows 網路分享服務
+# 阻擋所有的 MS/Windows 主機名稱伺服器hosts2 name server requests 81
&dollar;cmd 320 deny tcp from any to any 137 in via &dollar;pif
&dollar;cmd 321 deny tcp from any to any 138 in via &dollar;pif
&dollar;cmd 322 deny tcp from any to any 139 in via &dollar;pif
&dollar;cmd 323 deny tcp from any to any 81 in via &dollar;pif
-# ڵ󪺩Fʥ]
+# 拒絕任何的延遲到達之封包
&dollar;cmd 330 deny all from any to any frag in via &dollar;pif
# Deny ACK packets that did not match the dynamic rule table
diff --git a/zh_TW.Big5/books/handbook/geom/Makefile b/zh_TW.UTF-8/books/handbook/geom/Makefile
index f574c00011..f574c00011 100644
--- a/zh_TW.Big5/books/handbook/geom/Makefile
+++ b/zh_TW.UTF-8/books/handbook/geom/Makefile
diff --git a/zh_TW.UTF-8/books/handbook/geom/chapter.xml b/zh_TW.UTF-8/books/handbook/geom/chapter.xml
new file mode 100644
index 0000000000..b8a44254ca
--- /dev/null
+++ b/zh_TW.UTF-8/books/handbook/geom/chapter.xml
@@ -0,0 +1,356 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ The FreeBSD Documentation Project
+ $FreeBSD$
+ Original revision: 1.21
+
+-->
+<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="GEOM">
+ <info><title>GEOM: Modular Disk Transformation Framework</title>
+ <authorgroup>
+ <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Written by </contrib></author>
+ </authorgroup>
+ </info>
+
+
+
+ <sect1 xml:id="GEOM-synopsis">
+ <title>概述</title>
+
+ <indexterm>
+ <primary>GEOM</primary>
+ </indexterm>
+ <indexterm>
+ <primary>GEOM Disk Framework</primary>
+ <see>GEOM</see>
+ </indexterm>
+
+ <para>本章涵蓋如何在 &os; 的 GEOM 架構下使用磁碟,
+ 包含用來設定幾種常用的 <acronym role="Redundant Array of Inexpensive Disks,磁碟陣列系統">RAID</acronym>
+ 的控制工具。本章不會深入探討 GEOM 如何處理底層的 I/O,這類資訊請參考
+ &man.geom.4; 及相關的 SEE ALSO 部份。本章也非 <acronym>RAID</acronym>
+ 設定指南,在這裡只會討論目前 GEOM 支援的 <acronym>RAID</acronym> 模式。
+ </para>
+
+ <para>讀完這章,您將了解︰</para>
+ <itemizedlist>
+ <listitem>
+ <para>透過 GEOM 可支援哪些模式的 <acronym>RAID</acronym>。</para>
+ </listitem>
+
+ <listitem>
+ <para>如何使用基本工具來配置、操作、維護不同模式的
+ <acronym>RAID</acronym>。</para>
+ </listitem>
+
+ <listitem>
+ <para>如何透過 GEOM 來完成鏡射(mirror)、分散連結(stripe)、加密(encrypt)
+ 、遠端連接磁碟等。</para>
+ </listitem>
+
+ <listitem>
+ <para>當 GEOM 架構下的磁碟發生問題,如何排除。</para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>在開始閱讀這章之前,您需要︰</para>
+
+
+ <itemizedlist>
+ <listitem>
+ <para>了解 &os; 如何看待磁碟(<xref linkend="disks"/>) 。</para>
+ </listitem>
+
+ <listitem>
+ <para>知道如何設定、安裝新的 &os; 核心
+ (<xref linkend="kernelconfig"/>) 。</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 xml:id="GEOM-intro">
+ <title>GEOM 導論</title>
+
+ <para>GEOM 透過 privoder(即 <filename>/dev/</filename>
+ 下的特殊裝置檔案) 來操控 classes(如 Master Boot Records、
+ <acronym>BSD</acronym> labels 等) 。GEOM 支援多種軟體
+ <acronym>RAID</acronym> 配置,透過 GEOM 存取時,
+ 作業系統和應用程式不會意識到 GEOM 存在。</para>
+ </sect1>
+
+ <sect1 xml:id="GEOM-striping">
+ <info><title>RAID0 - 分散連結(striping)</title>
+ <authorgroup>
+ <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Written by </contrib></author>
+ <author><personname><firstname>Murray</firstname><surname>Stokely</surname></personname></author>
+ </authorgroup>
+ </info>
+
+
+
+ <indexterm>
+ <primary>GEOM</primary>
+ </indexterm>
+ <indexterm>
+ <primary>分散連結(Striping)</primary>
+ </indexterm>
+
+ <para>分散連結(striping) 可用來連結多個磁碟成為一大塊空間。
+ 很多時候硬體控制器可以完成這件事,不過 GEOM 也提供了軟體版本的
+ <acronym>RAID</acronym>0,也就是分散連結(striping)。</para>
+
+ <para>在 <acronym>RAID</acronym>0 裡,資料會被切分成很多塊,
+ 再分散寫入全部的磁碟。例如要寫入 256k 的資料到單一磁碟,在
+ 四個磁碟的 <acronym>RAID</acronym>0 中可同時寫入 64k 到四個磁碟裡,
+ 因此可大幅提升 I/O 效能。如果使用更多的磁碟控制器,
+ I/O 效能可再提升。</para>
+
+ <para>由於讀或寫時會同步交錯對許多磁碟進行 I/O 處理,因此
+ <acronym>RAID</acronym>0 的每個磁碟必須大小一樣。</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="geom/striping" align="center"/>
+ </imageobject>
+
+ <textobject>
+ <phrase>Disk Striping Illustration</phrase>
+ </textobject>
+ </mediaobject>
+
+ <procedure>
+ <title>用未格式化的 ATA 磁碟來建立分散連結(striping)</title>
+
+ <step><para>載入 <filename>geom_stripe</filename>
+ kernel module:</para>
+
+ <screen>&prompt.root; <userinput>kldload geom_stripe.ko</userinput></screen>
+ </step>
+
+ <step><para>確定掛載點(mount point)存在。
+ 如果想用分散連結(striping)的空間做為根目錄(root partition,即 <filename>/</filename> ),
+ 則先用個暫時的掛載點,如
+ <filename>/mnt</filename>:</para>
+
+ <screen>&prompt.root; <userinput>mkdir /mnt</userinput></screen>
+ </step>
+
+
+<step><para>確認要用來分散連結(striping)的裝置名稱,接著建立新的分散連結(striping)。
+ 例如下面的指令會分散連結(striping)兩個未使用、尚未分割區的 <acronym>ATA</acronym>
+ 磁碟(<filename>/dev/ad2</filename> 和
+ <filename>/dev/ad3</filename>) :</para>
+ <screen>&prompt.root; <userinput>
+ gstripe label -v st0 /dev/ad2 /dev/ad3</userinput></screen>
+
+ <screen>&prompt.root; <userinput>gstripe label -v st0 /dev/ad2 /dev/ad3</userinput></screen>
+
+<!--
+ <para>A message should be returned explaining that meta data has
+ been stored on the devices.
+XXX: What message? Put it inside the screen output above.
+-->
+ </step>
+
+ <step><para>用下面的指令來建立分割區表(partition table):</para>
+
+ <screen>&prompt.root; <userinput>bsdlabel -wB /dev/stripe/st0</userinput></screen>
+
+ </step>
+
+ <step><para>除了先前建立的 <filename>st0</filename> ,這個步驟還會在
+ <filename>/dev/stripe</filename> 下新增兩個裝置:
+ <filename>st0a</filename> 和 <filename>st0c</filename>。
+ 利用 <command>newfs</command> 指令可以在
+ <filename>st0a</filename> 建立檔案系統:</para>
+
+ <screen>&prompt.root; <userinput>newfs -U /dev/stripe/st0a</userinput></screen>
+
+ <para>螢幕上會有一堆數字傾瀉而過,幾秒鐘後就會完成。此時空間已建立,
+ 可用來掛載使用了。</para>
+ </step>
+ </procedure>
+
+ <para>下面指令可用來手動掛載分散連結(striping)空間:</para>
+
+ <screen>&prompt.root; <userinput>mount /dev/stripe/st0a /mnt</userinput></screen>
+
+ <para>如果要在開機時自動掛載,在 <filename>/etc/fstab</filename>
+ 加入這塊空間的資訊:</para>
+
+ <screen>&prompt.root; <userinput>echo "/dev/stripe/st0a /mnt ufs rw 2 2" \</userinput>
+ <userinput>&gt;&gt; /etc/fstab</userinput></screen>
+
+ <para>而 <filename>geom</filename> kernel module 必須在系統初始化時自動載入,
+ 因此在 <filename>/boot/lodaer.conf</filename> 加入一行:</para>
+
+ <screen>&prompt.root; <userinput>echo 'geom_stripe_load="YES"' &gt;&gt; /boot/loader.conf</userinput></screen>
+
+ </sect1>
+
+ <sect1 xml:id="GEOM-mirror">
+ <title>RAID1 - 鏡射(Mirroring)</title>
+
+ <indexterm>
+ <primary>GEOM</primary>
+ </indexterm>
+ <indexterm>
+ <primary>磁碟鏡射(Disk Mirroring)</primary>
+ </indexterm>
+
+ <para>許多企業或個人用戶用鏡射(mirroring) 來不中斷系統進行備份。
+ 鏡射簡單來說就是在 B 磁碟上重覆一份 A 磁碟的資料,
+ 或者 C+D 磁碟重覆 A+B 磁碟的資料。不論設定如何,
+ 最重要的是所有磁碟或分割區(partition) 上的資料都會被複製,
+ 之後可在不中斷服務的情況下復原、備份資料,使儲存的資料更安全。</para>
+
+ <para>開始之前,請先確定系統上有兩個容量相同的磁碟,
+ 後面的範例假設這兩顆磁碟是 direct access(&man.da.4;)
+ <acronym>SCSI</acronym> 磁碟。</para>
+
+ <para>首先我們假設 &os; 安裝在第一個磁碟上,且只有兩個分割區(partition)。
+ 其中一個是交換分割區(swap partition,大小為 <acronym>RAM</acronym>
+ 的兩倍),而剩下的全用於根目錄(即 <filename>/</filename>,
+ root file system)。當然要在不同掛載點(mount point) 切出更多分割區
+ (partition) 也可以,不過難度會大幅提升,因為必須手動操作 &man.bsdlabel.8;
+ 和 &man.fdisk.8; 工具。</para>
+
+ <para>重開機並等到系統完全初始化完畢,用 <systemitem class="username">root</systemitem>
+ 登入。</para>
+
+ <para>建立 <filename>/dev/mirror/gm</filename> 裝置並以
+ <filename>/dev/da1</filename> 連結:</para>
+
+ <screen>&prompt.root; <userinput>gmirror label -vnb round-robin gm0 /dev/da1</userinput></screen>
+
+ <para>這時系統應該會回應:</para>
+ <screen>
+Metadata value stored on /dev/da1.
+Done.</screen>
+
+ <para>初始化 GEOM,這動作會自動載入
+ <filename>/boot/kernel/geom_mirror.ko</filename> kernel module:</para>
+
+ <screen>&prompt.root; <userinput>gmirror load</userinput></screen>
+
+ <note>
+ <para>這動作應該會在 <filename>/dev/mirror</filename>
+ 下建立 <filename>gm0</filename> 裝置結點(device node)。</para>
+ </note>
+
+ <para>在這個新建的 <filename>gm0</filename> 裝置上安置一般的
+ <command>fdisk</command> label 和開機磁區:</para>
+
+ <screen>&prompt.root; <userinput>fdisk -vBI /dev/mirror/gm0</userinput></screen>
+
+ <para>接著安置 <command>bsdlabel</command> 資訊:</para>
+
+ <screen>&prompt.root; <userinput>bsdlabel -wB /dev/mirror/gm0s1</userinput></screen>
+
+ <note>
+ <para>如果存在多個 slice 和分割區(partition),
+ 記得修改上兩指令的參數,且另一個磁碟上的 slice 和分割區(partition)
+ 大小必須相同。</para>
+ </note>
+
+ <para>用 &man.newfs.8; 工具在 <filename>gm0s1a</filename>
+ 裝置結點建立預設的檔案系統:</para>
+
+ <screen>&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1a</userinput></screen>
+
+ <para>系統會印出許多資訊和一大堆數字,這是正常的。
+ 確認是否有認何錯誤,接著就可以將這個裝置掛載到
+ <filename>/mnt</filename> 掛載點(mount mount):</para>
+
+ <screen>&prompt.root; <userinput>mount /dev/mirror/gm0s1a /mnt</userinput></screen>
+
+ <para>接著將原本開機磁碟的資料搬移到新的檔案系統
+ (<filename>/mnt</filename>)。範例是用
+ &man.dump.8; 和 &man.restore.8; ,不過用 &man.dd.1; 也可以。</para>
+
+ <screen>&prompt.root; <userinput>dump -L -0 -f- / |(cd /mnt &amp;&amp; restore -r -v -f-)</userinput></screen>
+
+ <para>執行上述指令時,只要將恰當的檔案系統掛在正確的位置,應該就能成功。
+ </para>
+
+ <para>接著編輯 <filename>/mnt/etc/fstab</filename>
+ 檔將 swap file 那行移除或註解起來。
+ <footnote>
+ <para>請注意,將 <filename>fstab</filename> 的 swap file
+ 那行註解起來,通常表示:您得用別的方法來重建 swap。詳情請參考
+ <xref linkend="adding-swap-space"/>。</para>
+ </footnote>請參考下面範例,並根據新磁碟修改其它的檔案系統資訊:</para>
+
+ <programlisting># Device Mountpoint FStype Options Dump Pass#
+#/dev/da0s2b none swap sw 0 0
+/dev/mirror/gm0s1a / ufs rw 1 1</programlisting>
+
+ <para>在目前的根目錄及新的根目錄建立 <filename>boot.conf</filename> 檔案,
+ 這個檔案可以『幫助』系統 <acronym>BIOS</acronym> 開機:</para>
+
+ <screen>&prompt.root; <userinput>echo "1:da(1,a)/boot/loader" &gt; /boot.config</userinput></screen>
+
+ <screen>&prompt.root; <userinput>echo "1:da(1,a)/boot/loader" &gt; /mnt/boot.config</userinput></screen>
+
+ <note>
+ <para>在兩個根目錄上都新增檔案是為了安全起見,
+ 如果因為某些原因新的根目錄無法開機,至少還可用原本的根目錄。</para>
+ </note>
+
+ <para>接著在 <filename>/boot/loader.conf</filename> 新增兩行:</para>
+
+ <screen>&prompt.root; <userinput>echo 'geom_mirror_load="YES"' &gt;&gt; /mnt/boot/loader.conf</userinput></screen>
+
+ <para>這會指示 &man.loader.8; 在開機時載入
+ <filename>geom_mirror.ko</filename> kernel module。</para>
+
+ <para>重開機:</para>
+
+ <screen>&prompt.root; <userinput>shutdown -r now</userinput></screen>
+
+ <para>如果一切順利,系統應該會從 <filename>gm0s1a</filename> 裝置開機,
+ 接下來出現 <command>login</command> 提示畫面。如果出錯了,
+ 請參閱下面 Troubleshooting 那一節。 現在可以將
+ <filename>da0</filename> 磁碟加入 <filename>gm0</filename>
+ 裝置:</para>
+
+ <screen>&prompt.root; <userinput>gmirror configure -a gm0</userinput>
+&prompt.root; <userinput>gmirror insert gm0 /dev/da0</userinput></screen>
+
+ <para>其中 <option>-a</option> 旗標告訴 &man.gmirror.8;
+ 使用「自動同步(automatic synchronization)」,例如自動同步寫入磁碟的動作。
+ manual 說明了如何重建、取代磁碟等,不過 manual 裡的範例是用
+ <filename>data</filename> 而不是 <filename>gm0</filename>。</para>
+
+ <sect2>
+ <title>Troubleshooting</title>
+
+ <sect3>
+ <title>系統無法開機</title>
+
+ <para>如果開機提示類似這樣:</para>
+
+ <programlisting>ffs_mountroot: can't find rootvp
+Root mount failed: 6
+mountroot&gt;</programlisting>
+
+ <para>請用機器面板上的 Power 按鈕或 reset 按鈕來重開機,並在開機選單選 (6),
+ 這樣子,系統就會進入 &man.loader.8;
+ 交談模式。這時候,請照下面指令來手動載入所需的 kernel module
+ ,也就是 <filename>geom_mirror.ko</filename>:</para>
+
+ <screen>OK? <userinput>load geom_mirror.ko</userinput>
+OK? <userinput>boot</userinput></screen>
+
+ <para>如果這樣成功了的話,表示因為某些原因無法自動載入 kernel module。
+ 請將:</para>
+
+ <programlisting>options GEOM_MIRROR</programlisting>
+
+ <para>加入到核心設定檔(kernel configuration file),重編並安裝核心。
+ 這應該能解決這個問題。</para>
+ </sect3>
+ </sect2>
+ </sect1>
+</chapter>
diff --git a/zh_TW.Big5/books/handbook/install/Makefile b/zh_TW.UTF-8/books/handbook/install/Makefile
index 9ca79617b2..9ca79617b2 100644
--- a/zh_TW.Big5/books/handbook/install/Makefile
+++ b/zh_TW.UTF-8/books/handbook/install/Makefile
diff --git a/zh_TW.Big5/books/handbook/install/chapter.xml b/zh_TW.UTF-8/books/handbook/install/chapter.xml
index 4b2722096b..400158415e 100644
--- a/zh_TW.Big5/books/handbook/install/chapter.xml
+++ b/zh_TW.UTF-8/books/handbook/install/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
@@ -6,7 +6,7 @@
Original revision: 1.381
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="install">
- <info><title>w FreeBSD</title>
+ <info><title>安裝 FreeBSD</title>
<authorgroup>
<author><personname><firstname>Jim</firstname><surname>Mock</surname></personname><contrib>Restructured, reorganized, and parts
rewritten by </contrib></author>
@@ -22,174 +22,174 @@
<sect1 xml:id="install-synopsis">
- <title>z</title>
+ <title>概述</title>
<indexterm><primary>installation</primary></indexterm>
- <para>FreeBSD Ѥ@²nΪrw˵{As
- <application>sysinstall</application>C oO FreeBSD w]ϥΪw˵{
- COtӭYN@ܡA]iHΦۤvw˵{C
- Npϥ <application>sysinstall</application> Ӧw
- FreeBSDC</para>
+ <para>FreeBSD 提供一個簡單好用的文字介面安裝程式,叫做
+ <application>sysinstall</application>。 這是 FreeBSD 預設使用的安裝程式
+ 。協力廠商若有意願的話,也可以改用自己的安裝程式。
+ 本章將說明如何使用 <application>sysinstall</application> 來安裝
+ FreeBSD。</para>
- <para>ŪoAzNFѡJ</para>
+ <para>讀完這章,您將了解︰</para>
<itemizedlist>
<listitem>
- <para>ps@ FreeBSD wˤ</para>
+ <para>如何製作 FreeBSD 安裝片</para>
</listitem>
<listitem>
- <para>FreeBSD wЪϥΤΰtmC</para>
+ <para>FreeBSD 對硬碟的使用及配置。</para>
</listitem>
<listitem>
- <para>pҰ <application>sysinstall</application> {C</para>
+ <para>如何啟動 <application>sysinstall</application> 程式。</para>
</listitem>
<listitem>
- <para>b <application>sysinstall</application>
- ɷ|ݪDǡBoǰDN䬰BHθӦp^C</para>
+ <para>在執行 <application>sysinstall</application>
+ 時會問的相關問題有哪些、這些問題的意思為何、以及該如何回答。</para>
</listitem>
</itemizedlist>
- <para>b}l\ŪoeAzݭnJ</para>
+ <para>在開始閱讀這章之前,您需要︰</para>
<itemizedlist>
<listitem>
- <para>\Ūnw˪ FreeBSD Ҫw䴩A
- HTwzw馳SQ䴩C</para>
+ <para>閱讀要安裝的 FreeBSD 版本所附之硬體支援表,
+ 以確定您的硬體有沒有被支援。</para>
</listitem>
</itemizedlist>
<note>
- <para>@ӻAw˻Ow &i386; (ۮe PC )
- [cqC pGL[c(p Alpha)w˻Aڭ̷|@֦CXC
- M|``sAiPzw˪WҪ󦳨dz\XJC
- bAڭ̫ijz⥻峹@@몺w˰ѦҭhNnC</para>
+ <para>一般來說,此安裝說明是針對 &i386; (相容的 PC 機種)
+ 架構的電腦。 如果有其他架構(比如 Alpha)的安裝說明,我們會一併列出。
+ 雖然本文件會常常更新,但有可能與您安裝版本上所附的說明文件有些許出入。
+ 在此,我們建議您把本說明文章當作一般的安裝參考原則就好。</para>
</note>
</sect1>
<sect1 xml:id="install-hardware">
- <title>wݨD</title>
+ <title>硬體需求</title>
<sect2 xml:id="install-hardware-minimal">
- <title>̧CݨD</title>
+ <title>最低需求</title>
- <para>w &os; w譱̧CݨDA̦U &os;
- Pw[ctOӦҤPC</para>
+ <para>安裝 &os; 的硬體方面最低需求,依各 &os;
+ 版本與硬體架構差別而有所不同。</para>
- <para>w˩һݪ̧CݨDAib &os; <link xlink:href="http://www.FreeBSD.org/releases/index.html">Release
- Information</link> Installation Notes C
- UӪ`|zC
- ھڦw &os; 覡PAi|ݭnnоΥоA
- άYDZphOndC odz|b <xref linkend="install-floppies"/> СC</para>
+ <para>關於安裝所需的最低需求,可在 &os; 網站的 <link xlink:href="http://www.FreeBSD.org/releases/index.html">Release
+ Information</link> 找相關的 Installation Notes 說明。
+ 接下來的章節會有相關說明整理。
+ 根據安裝 &os; 的方式不同,可能會需要軟碟機或光碟機,
+ 或某些情況則是要網路卡。 這些部份會在 <xref linkend="install-floppies"/> 有介紹。</para>
<sect3>
- <title>&os;/&arch.i386; &os;/&arch.pc98; [c</title>
+ <title>&os;/&arch.i386; 及 &os;/&arch.pc98; 架構</title>
- <para>&os;/&arch.i386; &os;/&arch.pc98; ت 486 ΧnBzA
- HΦܤ 24&nbsp;MB RAMBܤ 150&nbsp;MB wЪŶA
- ~i̤pwˡC</para>
+ <para>&os;/&arch.i386; 及 &os;/&arch.pc98; 兩種版本均須 486 或更好的處理器,
+ 以及至少 24&nbsp;MB 的 RAM、至少 150&nbsp;MB 的硬碟空間,
+ 才能進行最小安裝。</para>
<note>
- <para>µwӨAbjp˧h RAM
- PjwЪŶA|ϥΧ֪ CPU 󦳥ΡC</para>
+ <para>對老舊硬體而言,在大部份情況裝更多的 RAM
+ 與更大的硬碟空間,會比使用更快的 CPU 更有用。</para>
</note>
</sect3>
<sect3>
- <title>&os;/&arch.alpha; [c</title>
+ <title>&os;/&arch.alpha; 架構</title>
- <para>Yn &os;/&arch.alpha;AhݽT{ӾO_䴩
- (аѾ\ <xref linkend="install-hardware-supported"/>)
- BwЬҵ &os; ϥΡC
- ثeLkPɻPL@~tΦ@sC owж SRM
- 馳䴩 SCSI controller WAΪ IDE w
- (Ӿ SRM 䴩iq IDE wж})C</para>
+ <para>若要裝 &os;/&arch.alpha;,則需確認該機型是否有支援
+ (請參閱 <xref linkend="install-hardware-supported"/>)
+ 且必須整顆硬碟皆給 &os; 使用。
+ 目前無法同時與其他作業系統共存。 這硬碟須接到 SRM
+ 韌體有支援的 SCSI controller 上,或者 IDE 硬碟
+ (該機型的 SRM 有支援可從 IDE 硬碟開機)。</para>
- <para>~AٻݸӾ SRM console firmwareC
- ǾiH AlphaBIOS (or ARC) firmware SRM ӥΡC
- YSܡAhݱqwtӪhUsC</para>
+ <para>此外,還需該機型的 SRM console firmware。
+ 有些機型可以選擇 AlphaBIOS (or ARC) firmware 或 SRM 來用。
+ 若沒有的話,則需從硬體廠商的網站去下載新的韌體。</para>
<note>
- <para>q &os;&nbsp;7.0 NA䴩 AlphaC
- &os;&nbsp;6.<replaceable>X</replaceable> tChO[c̫䴩
- C</para>
+ <para>從 &os;&nbsp;7.0 就不再支援 Alpha。
+ &os;&nbsp;6.<replaceable>X</replaceable> 系列則是此架構的最後支援
+ 。</para>
</note>
</sect3>
<sect3>
- <title>&os;/&arch.amd64; [c</title>
+ <title>&os;/&arch.amd64; 架構</title>
- <para> CPU ] &os;/&arch.amd64;C Ĥ@جO]A &amd.athlon;64
- B&amd.athlon;64-FXB&amd.opteron; Χn CPUC</para>
+ <para>有兩種 CPU 能跑 &os;/&arch.amd64;。 第一種是包括 &amd.athlon;64
+ 、&amd.athlon;64-FX、&amd.opteron; 或更好的 CPU。</para>
- <para>ĤGثhO &intel; EM64T [c CPUAoǤ]iH
- &os;/&arch.amd64;C o CPU ]AF &intel;&nbsp;&core;&nbsp;2 Duo
- BQuadBExtreme tCH &intel;&nbsp;&xeon; 3000B5000B7000
- tC CPUC</para>
+ <para>第二種則是 &intel; EM64T 架構的 CPU,這些也可以用
+ &os;/&arch.amd64;。 這些 CPU 包括了 &intel;&nbsp;&core;&nbsp;2 Duo
+ 、Quad、Extreme 系列以及 &intel;&nbsp;&xeon; 3000、5000、7000
+ 相關系列的 CPU。</para>
- <para>YDOլ nVidia nForce3 Pro-150Ah
- <emphasis></emphasis> վ BIOS ]wAN IO APIC Τ~C
- Y䤣oﶵAiNO ACPI ΡC
- ] Pro-150 զ bugAثeڭ̩|LѤDC</para>
+ <para>若主機板晶片組為 nVidia nForce3 Pro-150,則
+ <emphasis>必須</emphasis> 調整 BIOS 設定,將 IO APIC 停用才行。
+ 若找不到這選項,那可能就是找 ACPI 停用。
+ 因為 Pro-150 晶片組有個 bug,目前我們尚無找到堪解之道。</para>
</sect3>
<sect3>
- <title>&os;/&arch.sparc64; [c</title>
+ <title>&os;/&arch.sparc64; 架構</title>
- <para>Yn &os;/&arch.sparc64;AhݽT{ӾO_䴩
- (аѾ\ <xref linkend="install-hardware-supported"/>)C</para>
+ <para>若要裝 &os;/&arch.sparc64;,則需確認該機型是否有支援
+ (請參閱 <xref linkend="install-hardware-supported"/>)。</para>
- <para>&os;/&arch.sparc64; ϥξwСA
- ]LkPɻPL@~tΦ@sC</para>
+ <para>&os;/&arch.sparc64; 必須使用整顆硬碟,
+ 因為無法同時與其他作業系統共存。</para>
</sect3>
</sect2>
<sect2 xml:id="install-hardware-supported">
- <title>䴩w</title>
+ <title>有支援的硬體</title>
- <para>&os; C release ɳ|W &os; Hardware Notes
- ӻ䴩wCC
- q`oibЩ FTP ̤WhؿA]NOW
- <filename>HARDWARE.TXT</filename> ɮסC
- ~Ab <application>sysinstall</application> documentation
- ﶵ]iHݨC
- C &os; release ɸӦC|̦UP[cA
- ӦCXw䴩wC b &os; <link xlink:href="http://www.FreeBSD.org/releases/index.html">Release
- Information</link> iHUP release
- PU[cWw䴩CC</para>
+ <para>&os; 每次 release 時都會有附上 &os; Hardware Notes
+ 來說明有支援的硬體列表。
+ 通常這份文件可在光碟或 FTP 的最上層目錄找到,也就是名為
+ <filename>HARDWARE.TXT</filename> 的檔案。
+ 此外,在 <application>sysinstall</application> 的 documentation
+ 選項內也可以看到。
+ 每次 &os; release 時該列表會依各不同架構,
+ 而列出相關已知有支援的硬體。 在 &os; 網站的 <link xlink:href="http://www.FreeBSD.org/releases/index.html">Release
+ Information</link> 頁可以找到各不同 release
+ 版本與各架構上的硬體支援列表。</para>
</sect2>
</sect1>
<sect1 xml:id="install-pre">
- <title>w˫edzƤu@</title>
+ <title>安裝前的準備工作</title>
<sect2 xml:id="install-inventory">
- <title>CXzqwM</title>
+ <title>列出您電腦的硬體清單</title>
- <para>bw FreeBSD eAzӸյ۱NzqwMCXӡC
- FreeBSD w˵{|Noǵw(wСBdBо)
- HλsytӦCXӡC
- FreeBSD ]|լoǵwX̾A IRQ IO port ]wC
- O] PC wbӹLAoӨBJ@wOҵ令\C
- oɡAzNiݭnʧ靈D]wȭC</para>
+ <para>在安裝 FreeBSD 之前,您應該試著將您電腦中的硬體清單列出來。
+ FreeBSD 安裝程式會將這些硬體(硬碟、網路卡、光碟機等等)
+ 以型號及製造廠商列出來。
+ FreeBSD 也會嘗試為這些硬體找出最適當的 IRQ 及 IO port 的設定。
+ 但是因為 PC 的硬體種類實在太過複雜,這個步驟不一定保證絕對成功。
+ 這時,您就可能需要手動更改有問題的設定值哩。</para>
- <para>pGzwˤF䥦@~tΡApG
- &windows; LinuxAiѳoǨtΩҴѪuA
- Ӭdݳoǵw]wȬO]wC
- YuSkTwYǥdΤ]wȡA
- iHˬdݬݥdWҼХܪFAw]wwХܦbdWC
- `Ϊ IRQ X 3B5 H 7F IO 𪺭ȳq`H 16 iܡA
- Ҧp 0x330C</para>
+ <para>如果您已裝了其它的作業系統,如:
+ &windows; 或 Linux,那麼可先由這些系統所提供的工具,
+ 來查看這些硬體設定值是怎麼設定的。
+ 若真的沒辦法確定某些卡用什麼設定值,
+ 那麼可以檢查看看卡上面所標示的東西,說不定它的設定已有標示在卡上。
+ 常用的 IRQ 號碼為 3、5 以及 7;而 IO 埠的值通常以 16 進位表示,
+ 例如 0x330。</para>
- <para>ijzbw FreeBSD eAoǸƦCLΧۿUӰA
- ]\|γAҦpG</para>
+ <para>建議您在安裝 FreeBSD 之前,把這些資料列印或抄錄下來做成表格,
+ 也許會較有用喔,例如:</para>
<table pgwide="1" frame="none">
- <title>wM(|)</title>
+ <title>硬體清單(舉例)</title>
<tgroup cols="4">
<colspec colwidth="2*"/>
@@ -198,25 +198,25 @@
<colspec colwidth="4*"/>
<thead>
<row>
- <entry>wW</entry>
+ <entry>硬體名稱</entry>
<entry>IRQ</entry>
<entry>IO port(s)</entry>
- <entry>Ƶ</entry>
+ <entry>備註</entry>
</row>
</thead>
<tbody>
<row>
- <entry>Ĥ@ IDE w</entry>
+ <entry>第一顆 IDE 硬碟</entry>
<entry>N/A</entry>
<entry>N/A</entry>
- <entry>40&nbsp;GBASeagate syAbĤ@ IDE ƽu master
+ <entry>40&nbsp;GB,Seagate 製造,接在第一條 IDE 排線的 master
</entry>
</row>
@@ -227,21 +227,21 @@
<entry>N/A</entry>
- <entry>bĤ@ IDE ƽu slave</entry>
+ <entry>接在第一條 IDE 排線的 slave</entry>
</row>
<row>
- <entry>ĤGw</entry>
+ <entry>第二顆硬碟</entry>
<entry>N/A</entry>
<entry>N/A</entry>
- <entry>20&nbsp;GBAIBM syAbĤG IDE ƽu master</entry>
+ <entry>20&nbsp;GB,IBM 製造,接在第二條 IDE 排線的 master</entry>
</row>
<row>
- <entry>Ĥ@ IDE controller</entry>
+ <entry>第一個 IDE controller</entry>
<entry>14</entry>
@@ -251,7 +251,7 @@
</row>
<row>
- <entry>d</entry>
+ <entry>網路卡</entry>
<entry>N/A</entry>
@@ -261,13 +261,13 @@
</row>
<row>
- <entry>ƾھ</entry>
+ <entry>數據機</entry>
<entry>N/A</entry>
<entry>N/A</entry>
- <entry>&tm.3com; 56K faxmodemAb COM1</entry>
+ <entry>&tm.3com; 56K faxmodem,接在 COM1</entry>
</row>
<row>
@@ -277,138 +277,138 @@
</tgroup>
</table>
- <para>wM槹ANݰwAҭn˪ &os; wݨDA
- ˬdO_䴩C</para>
+ <para>硬體清單完成之後,就需針對你所要裝的 &os; 版本之硬體需求,
+ 來檢查是否有支援。</para>
</sect2>
<sect2>
- <title>ƥz</title>
+ <title>備份您的資料</title>
- <para>pGn˪qWsnơAbw FreeBSD eA
- нTwzwgNoǸƳƥFAåBչLodzƥɬO_SDC
- FreeBSD w˵{bngJƨzwЫeA|zT{A
- @zTwngJA򤧫NA]SϮ|oC</para>
+ <para>如果要裝的電腦上面存有重要資料,那麼在安裝 FreeBSD 前,
+ 請確定您已經將這些資料備份了,並且先測試過這些備份檔是否沒有問題。
+ FreeBSD 安裝程式在要寫入任何資料到您的硬碟前,都會先提醒您確認,
+ 一旦您確定要寫入,那麼之後就再也沒有反悔的機會囉。</para>
</sect2>
<sect2 xml:id="install-where">
- <title>MwnN FreeBSD w˨</title>
+ <title>決定要將 FreeBSD 安裝到哪裡</title>
- <para>pGzQ FreeBSD ϥξwСAЪU@`C</para>
+ <para>如果您想讓 FreeBSD 直接使用整顆硬碟,那麼請直接跳到下一節。</para>
- <para>MӡApGzQn FreeBSD JtΨæsAA
- zwЪƤG覡`JFѡAHΨҳyvTC</para>
+ <para>然而,如果您想要 FreeBSD 跟既有的系統並存,那麼,
+ 您必須對硬碟的資料分佈方式有深入的了解,以及其所造成的影響。</para>
<sect3 xml:id="install-where-i386">
- <title>&os;/&arch.i386; [cwаtmҦ</title>
+ <title>&os;/&arch.i386; 架構的硬碟配置模式</title>
- <para>PC WwХiHQӤ\h(chunk)Coǰϰs
- <firstterm>ΰ(Partitions)</firstterm>C
- ѩ &os; ] partitionAW٥iܮeyVcA
- ]q`b &os; o|٩IoǺϺФϬ disk slices ²
- slicesC |ҨӻAFreeBSD <command>fdisk</command>
- HOw PC wЪ slice ӫD partitionC ]
- PC ѳ]pACӵwг̦hiH 4 ӤΰϡAӳoǤΥs
- <firstterm>Dnΰ(Primary Partitions)</firstterm>C
- F}oӭAHKϥΧhΰϡANFsΰAs@G
- <firstterm>ΰ(Extended Partition)</firstterm>C
- CӵwдNu঳@өΰϡC
- MӡAbΰϸ̭iHإ߳\hӯSΰϡAs@
- <firstterm>޿ΰ(Logical Partitions)</firstterm>C</para>
+ <para>PC 上的硬碟可以被細分為許多分散區(chunk)。這些區域叫做
+ <firstterm>分割區(Partitions)</firstterm>。
+ 由於 &os; 內部也有 partition,名稱可能很容易造成混淆,
+ 因此通常在 &os; 這邊會稱呼這些磁碟分散區為 disk slices 或簡稱
+ slices。 舉例來說,FreeBSD 的 <command>fdisk</command>
+ 的對象是針對 PC 硬碟的 slice 而非 partition。 因為
+ PC 本身先天設計,每個硬碟最多可以有 4 個分割區,而這些分割叫做
+ <firstterm>主要分割區(Primary Partitions)</firstterm>。
+ 為了突破這個限制,以便能使用更多的分割區,就有了新的分割區類型,叫作:
+ <firstterm>延伸分割區(Extended Partition)</firstterm>。
+ 每個硬碟就只能有一個延伸分割區。
+ 然而,在延伸分割區裡面可以建立許多個特殊分割區,叫作
+ <firstterm>邏輯分割區(Logical Partitions)</firstterm>。</para>
- <para>Cؤΰϳ <firstterm>ΰϥN(Partition ID)</firstterm>
- ΥHϧOCؤΰϪC
- FreeBSD ΰϥNO <literal>165</literal>C</para>
+ <para>每種分割區都有其 <firstterm>分割區代號(Partition ID)</firstterm>
+ 用以區別每種分割區的資料類型。
+ 而 FreeBSD 分割區代號是 <literal>165</literal>。</para>
- <para>@ACا@~tγ|ۤvWS覡ӰϧOΰϡC
- |ҡG DOS Ψ䤧᪺@~tΡAp &windows;
- |tCӥDnΰϤ޿ΰ 1
- <firstterm>ϺХN(drive letter)</firstterm>Aq
- <filename>C:</filename> }lC</para>
+ <para>一般來講,每種作業系統都會有自己獨特的方式來區別分割區。
+ 舉例: DOS 及其之後的作業系統,比如 &windows;
+ 會分配給每個主要分割區及邏輯分割區 1 個
+ <firstterm>磁碟代號(drive letter)</firstterm>,從
+ <filename>C:</filename> 開始。</para>
- <para>FreeBSD w˦bDnΰϡC
- FreeBSD iHboӤΰϤWsƩάOzإߪɮסC
- MӡApGzܦhwСA]iHbo(γ)wЫإ FreeBSD ΰϡC
- w FreeBSD ɭԡAܤ֭n 1 Ӥΰϵ FreeBSD ϥΡA
- oӤΰϥiHO|ϥΪΰϡAάO{sΰ
- (WƤ~ϥ)C</para>
+ <para>FreeBSD 必須安裝在主要分割區。
+ FreeBSD 可以在這個分割區上面存放資料或是您建立的任何檔案。
+ 然而,如果您有很多顆硬碟,也可以在這些(或部份)硬碟建立 FreeBSD 分割區。
+ 安裝 FreeBSD 的時候,必須至少要有 1 個分割區給 FreeBSD 使用,
+ 這個分割區可以是尚未使用的分割區,或是現存的分割區
+ (但上面的資料不打算繼續使用)。</para>
- <para>pGwgΧFϺФWҦΰϡA
- zϥΨL@~tΩҴѪu
- (O DOS or &windows; W <command>fdisk</command>)
- ˥X@Ӥΰϵ FreeBSD ΡC</para>
+ <para>如果已經用完了磁碟上所有的分割區,
+ 那麼您必須使用其他作業系統所提供的工具
+ (像是 DOS or &windows; 上的 <command>fdisk</command>)
+ 來騰出一個分割區給 FreeBSD 用。</para>
- <para>pGhlΰϡA]iHϥΥC
- ϥΫeAziݭnz@UoǤΰϡC</para>
+ <para>如果有多餘的分割區,也可以使用它。
+ 但使用前,您可能需要先整理一下這些分割區。</para>
- <para>FreeBSD̤pw˻ݭn 100&nbsp;MB ŶAOouOy̤pwˡzA
- XGSѤUh֪ŶӦszۤvɮסC
- zQ(tϧΤ)̤pwˬO
- 250&nbsp;MBAΪ̬O 350&nbsp;MB k(]tϧΤ)C
- ٻݭnw˨LMnANݭnhwЪŶC</para>
+ <para>FreeBSD最小安裝需要約 100&nbsp;MB 的空間,但是這只是『最小安裝』,
+ 幾乎沒剩下多少空間來存放您自己的檔案。
+ 較理想的(不含圖形介面)最小安裝是約
+ 250&nbsp;MB,或者是 350&nbsp;MB 左右(包含圖形介面)。
+ 還需要安裝其他的套件軟體,那麼將需要更多的硬碟空間。</para>
- <para>ziHϥΰӷ~n鹳O
- <application>&partitionmagic;</application> ΧKOۥѤu㹳O
- <application>GParted</application> ӭsվΰϪŶA
- ӵ FreeBSD ΪŶCFreeBSD СBFTP W
- <filename>tools</filename> ؿ]tӧKOuA
- ]iHFoӤu@As@G<application>FIPS</application>
- <application>PResizer</application>C
- oǤu㪺iHbPӥؿC
- <application>FIPS</application>B
- <application>PResizer</application> M
- <application>&partitionmagic;</application> iHsվb &ms-dos;
- &windows; ME ҨϥΪ <acronym>FAT16</acronym>
- <acronym>FAT32</acronym> ΰϤjpC ثewi
- <acronym>NTFS</acronym> ΰϪ
- <application>&partitionmagic;</application>
- <application>GParted</application> oؤu{C
- <application>GParted</application>b\h Linux distributions Live CD
- ѡAO <link xlink:href="http://www.sysresccd.org/">SystemRescueCD</link>C</para>
+ <para>您可以使用商業軟體像是
+ <application>&partitionmagic;</application> 或免費自由工具像是
+ <application>GParted</application> 來重新調整分割區空間,
+ 來給 FreeBSD 用的空間。FreeBSD 光碟、FTP 上面的
+ <filename>tools</filename> 目錄包含兩個免費的工具,
+ 也可以達成這個工作,叫作:<application>FIPS</application> 及
+ <application>PResizer</application>。
+ 這些工具的說明文件可以在同個目錄內找到。
+ <application>FIPS</application>、
+ <application>PResizer</application> 和
+ <application>&partitionmagic;</application> 可以重新調整在 &ms-dos; 到
+ &windows; ME 所使用的 <acronym>FAT16</acronym> 及
+ <acronym>FAT32</acronym> 分割區大小。 目前已知可更改
+ <acronym>NTFS</acronym> 分割區的有
+ <application>&partitionmagic;</application> 及
+ <application>GParted</application> 這兩種工具程式。
+ <application>GParted</application>在許多 Linux distributions 的 Live CD
+ 都有提供,像是 <link xlink:href="http://www.sysresccd.org/">SystemRescueCD</link>。</para>
- <para>ثew &microsoft; Vista ΰϪsվjp|DC
- bWzʧ@ɡAаOon Vista w˥ХHKU@C
- ~AjPijϺк@AHβ{ƳƥC</para>
+ <para>目前已知 &microsoft; Vista 分割區的重新調整大小會有問題。
+ 在做上述類似動作時,請記得手邊要有 Vista 安裝光碟以免萬一。
+ 此外,強烈建議先做磁碟維護,以及現有資料備份。</para>
<warning>
- <para>ϥγoǤuAi|RҦwФWơC
- bϥγoǤueAнTwzwƥnơC</para>
+ <para>不當的使用這些工具,可能會刪除所有硬碟上的資料。
+ 在使用這些工具前,請確定您已有先備份好資料。</para>
</warning>
<example>
- <title>ϥβ{ΰ</title>
+ <title>使用現有的分割區</title>
- <para>]zu@ 4&nbsp;GB wСAӥBwgˤF &windows;
- AMNowФӺϺХNG<filename>C:</filename>
- <filename>D:</filename>ACӤjp 2&nbsp;GB C
- <filename>C:</filename> ѤWF 1&nbsp;GB ơA
- <filename>D:</filename> ѤWF 0.5&nbsp;GB ơC</para>
+ <para>假設您只有一個 4&nbsp;GB 的硬碟,而且已經裝了 &windows;
+ ,然後將這顆硬碟分成兩個磁碟代號:<filename>C:</filename> 及
+ <filename>D:</filename>,每個大小為 2&nbsp;GB 。
+ <filename>C:</filename> 槽上放了 1&nbsp;GB 的資料,
+ 而 <filename>D:</filename> 槽上放了 0.5&nbsp;GB 的資料。</para>
- <para>oܵwФWӤΰϡACӺϺХNѳOΰϡC
- ziHҦb <filename>D:</filename> ơAʨ
- <filename>C:</filename>Ao˴NťXFĤGӤΰϥiH
- FreeBSD ϥΡC</para>
+ <para>這表示硬碟上有兩個分割區,每個磁碟代號槽都是分割區。
+ 您可以把所有放在 <filename>D:</filename> 的資料,都移動到
+ <filename>C:</filename>,這樣就空出了第二個分割區可以給
+ FreeBSD 使用。</para>
</example>
<example>
- <title>Y{ΰ</title>
+ <title>縮減現有的分割區</title>
- <para>]zu@ 4&nbsp;GB wСAӥBwgˤF &windows;C
- bw &windows; ɧ 4&nbsp;GB <filename>C:</filename>
- ѡAåB{bwgΤF 1.5&nbsp;GB ŶAӧAQNѤUŶ
- 2&nbsp;GB FreeBSD ϥΡC</para>
+ <para>假設您只有一個 4&nbsp;GB 硬碟,而且已經裝了 &windows;。
+ 在安裝 &windows; 時把 4&nbsp;GB 都給 <filename>C:</filename>
+ 槽,並且現在已經用了 1.5&nbsp;GB 空間,而你想將剩下空間的
+ 2&nbsp;GB 給 FreeBSD 使用。</para>
- <para>p@ӡAF FreeBSDAAbHUؤ覡G@G</para>
+ <para>如此一來,為了裝 FreeBSD,你必須在以下兩種方式二選一:</para>
<orderedlist>
<listitem>
- <para>ƥ &windows; ơAM᭫ &windows;A
- æbw &windows; ɵ 2&nbsp;GB ΪŶC</para>
+ <para>備份 &windows; 資料,然後重裝 &windows;,
+ 並在安裝 &windows; 時給 2&nbsp;GB 的分割空間。</para>
</listitem>
<listitem>
- <para>ϥΤWzuAO
- <application>&partitionmagic;</application>Aӭsվ &windows;
- ҥΪΰϤjpC</para>
+ <para>使用上述的工具,像是
+ <application>&partitionmagic;</application>,來重新調整 &windows;
+ 所用的分割區大小。</para>
</listitem>
</orderedlist>
</example>
@@ -416,18 +416,18 @@
</sect3>
<sect3>
- <title>Alpha [cϺаtmҦ</title>
+ <title>Alpha 架構的磁碟配置模式</title>
- <para>b Alpha WAzϥΤ@wе FreeBSDA
- SkbPwФWL@~tΦ@sC ̤P Alpha
- AzwХiHO SCSI IDE wСA
- unziHqoǵwж}NiHC</para>
+ <para>在 Alpha 上,您必須使用一整顆硬碟給 FreeBSD,
+ 沒有辦法在同顆硬碟上跟其他作業系統共存。 依不同型號的 Alpha
+ 機器,您的硬碟可以是 SCSI 或 IDE 硬碟,
+ 只要您的機器可以從這些硬碟開機就可以。</para>
- <para> Digital / Compaq ϥΤUsƭA
- Ҧ SRM JΤjgܡC `NGSRM jpgOC</para>
+ <para>按照 Digital / Compaq 使用手冊的編排風格,
+ 所有 SRM 輸入的部分都用大寫表示。 注意:SRM 大小寫有別。</para>
- <para>nozϺЪW٥HΫAiHb SRM console ܤUϥ
- <literal>SHOW DEVICE</literal> ROG</para>
+ <para>要得知您磁碟的名稱以及型號,可以在 SRM console 提示下使用
+ <literal>SHOW DEVICE</literal> 命令:</para>
<screen>&gt;&gt;&gt;<userinput>SHOW DEVICE</userinput>
dka0.0.0.4.0 DKA0 TOSHIBA CD-ROM XM-57 3476
@@ -439,57 +439,57 @@ pkc0.7.0.1009.0 PKC0 SCSI Bus ID 7 5.27
pqa0.0.0.4.0 PQA0 PCI EIDE
pqb0.0.1.4.0 PQB0 PCI EIDE</screen>
- <para>Ҥl Digital Personal Workstation 433auA
- åBܥXsTӺϺоC Ĥ@ӬO CDROMAs
- <filename>DKA0</filename> Ft~ӬOϺоA OsG
- <filename>DKC0</filename> <filename>DKC100</filename>C
+ <para>例子中機器為 Digital Personal Workstation 433au,
+ 並且顯示出此機器有連接三個磁碟機。 第一個是 CDROM,叫做
+ <filename>DKA0</filename> ;另外兩個是磁碟機, 分別叫做:
+ <filename>DKC0</filename> 及 <filename>DKC100</filename>。
</para>
- <para>ϺоW٤ <filename>DKx</filename>
- r˪O SCSI wСCҦpG <filename>DKA100</filename>
- ܬO SCSI wСA SCSI ID 1A bĤ@ SCSI ׬y(A)F
- <filename>DKC300</filename> ܬO SCSI wСA
- SCSI ID 3AĤT SCSI ׬y(C)C
- ˸mW <filename>PKx</filename> h SCSI dC
- ѤWz <literal>SHOW DEVICE</literal> GݨӡA
- SCSI о]QO SCSI wЪ@ءC</para>
+ <para>磁碟機的名稱中有 <filename>DKx</filename>
+ 字樣的是 SCSI 硬碟。例如: <filename>DKA100</filename>
+ 表示是 SCSI 硬碟,其 SCSI ID 為 1, 位在第一個 SCSI 匯流排(A);
+ 而 <filename>DKC300</filename> 表示是 SCSI 硬碟,
+ 其 SCSI ID 為 3,位於第三個 SCSI 匯流排(C)。
+ 裝置名稱 <filename>PKx</filename> 則為 SCSI 控制卡。
+ 由上述 <literal>SHOW DEVICE</literal> 的結果看來,
+ SCSI 光碟機也被視為是 SCSI 硬碟的一種。</para>
- <para>Y IDE wЪܡAWٷ| <filename>DQx</filename> rˡA
- <filename>PQx</filename> hܬ۹ IDE ϺбC
+ <para>若為 IDE 硬碟的話,名稱會有 <filename>DQx</filename> 字樣,
+ 而 <filename>PQx</filename> 則表示相對應的 IDE 磁碟控制器。
</para>
</sect3>
</sect2>
<sect2>
- <title>zA]w</title>
+ <title>整理你的網路設定資料</title>
- <para>pGQzL( FTP NFS)w FreeBSDA
- NDz]wC
- bw FreeBSD L{N|ܱzJoǸTAHQw˹L{C
+ <para>如果想透過網路( FTP 站或 NFS)安裝 FreeBSD,
+ 那麼就必須知道您的網路設定。
+ 在安裝 FreeBSD 的過程中將會提示您輸入這些資訊,以順利完成安裝過程。
</para>
<sect3>
- <title>ϥΤAӺ(Ethernet) Cable/DSL ƾھW</title>
+ <title>使用乙太網路(Ethernet)或 Cable/DSL 數據機上網</title>
- <para>YϥΤAӺAάOnzL Cable/DSL ƾھWA
- zdzƤUTG</para>
+ <para>若使用乙太網路,或是要透過 Cable/DSL 數據機上網,
+ 那麼您必須準備下面的資訊:</para>
<orderedlist>
<listitem>
- <para>IP }</para>
+ <para>IP 位址</para>
</listitem>
<listitem>
- <para>w] Gateway(hD) IP }</para>
+ <para>預設 Gateway(閘道) 的 IP 位址</para>
</listitem>
<listitem>
- <para>Hostname(W)</para>
+ <para>Hostname(機器名稱)</para>
</listitem>
<listitem>
- <para>DNS A IP }</para>
+ <para>DNS 伺服器的 IP 位址</para>
</listitem>
<listitem>
@@ -497,72 +497,72 @@ pqb0.0.1.4.0 PQB0 PCI EIDE</screen>
</listitem>
</orderedlist>
- <para>YDoǸTAziH߰ݨtκ޲z̩άOz ISP ~̡C
- L̥i|oǸT| <firstterm>DHCP</firstterm> ۰ʫF
- pGOo˪ܡAаOo@INiHFC</para>
+ <para>若不知道這些資訊,您可以詢問系統管理者或是您的 ISP 業者。
+ 他們可能會說這些資訊會由 <firstterm>DHCP</firstterm> 自動指派;
+ 如果是這樣的話,請記住這一點就可以了。</para>
</sect3>
<sect3>
- <title>ϥμƾھW</title>
+ <title>使用數據機上網</title>
- <para>YѤ@몺ƾھWAzMiHw FreeBSDA
- uO|ݭnܪɶC</para>
+ <para>若由一般的數據機撥接上網,您仍然可以安裝 FreeBSD,
+ 只是會需要很長的時間。</para>
- <para>zDG</para>
+ <para>您必須知道:</para>
<orderedlist>
<listitem>
- <para> ISP qܸXC</para>
+ <para>撥接到 ISP 的電話號碼。</para>
</listitem>
<listitem>
- <para>zƾھOs COM C</para>
+ <para>您的數據機是連到哪個 COM 埠。</para>
</listitem>
<listitem>
- <para>z ISP ҥΪbKXC</para>
+ <para>您撥接到 ISP 所用的帳號跟密碼。</para>
</listitem>
</orderedlist>
</sect3>
</sect2>
<sect2>
- <title>d\ FreeBSD ɻ~(Errata)</title>
+ <title>查閱 FreeBSD 勘誤表(Errata)</title>
- <para>Mڭ̺ɤOϱoC FreeBSD o檩íwA
- OL{MKɷ|oͿ~C
- bYǫܨuΤUAoǿ~|vTw˪L{C
- o{oǿ~BץA|N̦Cb
+ <para>雖然我們盡力使得每個 FreeBSD 發行版本都很穩定,
+ 但是過程中仍然不免有時會發生錯誤。
+ 在某些很罕見的情形下,這些錯誤會影響到安裝的過程。
+ 當發現這些錯誤且修正後,會將它們列在
<link xlink:href="http://www.FreeBSD.org/releases/&rel.current;R/errata.html">
- FreeBSD ɻ~(Errata)</link> C bzw FreeBSD
- eAӥݬݰɻ~SD|vTzwˡC</para>
+ FreeBSD 勘誤表(Errata)</link> 中。 在您安裝 FreeBSD
+ 前,應該先看看勘誤表中有沒有什麼問題會影響到您的安裝。</para>
- <para>Ҧo檩T(]Aɻ~)AiHb <link xlink:href="&url.base;/index.html">FreeBSD </link>
- <link xlink:href="&url.base;/releases/index.html">o污(release information)
- </link> C</para>
+ <para>關於所有發行版本的資訊(包括勘誤表),可以在 <link xlink:href="&url.base;/index.html">FreeBSD 網站</link> 的
+ <link xlink:href="&url.base;/releases/index.html">發行情報(release information)
+ </link> 找到。</para>
</sect2>
<sect2>
- <title>dzƦn FreeBSD wɮ</title>
+ <title>準備好 FreeBSD 安裝檔案</title>
- <para>FreeBSD iHzLU@ئw˨ӷiwˡJ</para>
+ <para>FreeBSD 可以透過下面任何一種安裝來源進行安裝︰</para>
<itemizedlist>
<title>Local Media</title>
<listitem>
- <para>CDROM DVD</para>
+ <para>CDROM 或 DVD</para>
</listitem>
<listitem>
- <para>{ DOS ΰ</para>
+ <para>現有的 DOS 分割區</para>
</listitem>
<listitem>
- <para>SCSI QIC ϱaC</para>
+ <para>SCSI 或 QIC 磁帶。</para>
</listitem>
<listitem>
- <para>nкϤ</para>
+ <para>軟碟磁片</para>
</listitem>
</itemizedlist>
@@ -570,143 +570,143 @@ pqb0.0.1.4.0 PQB0 PCI EIDE</screen>
<title>Network</title>
<listitem>
- <para>FTP B䴩 Passvie Ҧ FTP (Yzb NAT )
- BƦ HTTP proxy iHC</para>
+ <para>FTP 站、支援 Passvie 模式的 FTP 站(若您機器在 NAT 內)
+ 、甚至 HTTP proxy 都可以。</para>
</listitem>
<listitem>
- <para>NFS A</para>
+ <para>NFS 伺服器</para>
</listitem>
<listitem>
- <para>M(dedicated) parallel serial su</para>
+ <para>專用(dedicated)的 parallel 或 serial 連線</para>
</listitem>
</itemizedlist>
- <para>Ywg FreeBSD CD DVDA䴩qж}ܡA
- ЪiU@` (<xref linkend="install-floppies"/>)C</para>
+ <para>若已經有 FreeBSD 的 CD 或 DVD,但機器不支援從光碟開機的話,
+ 那麼請直接進下一節 (<xref linkend="install-floppies"/>)。</para>
- <para>YS FreeBSD wˤܡAХ <xref linkend="install-diff-media"/> o̷|ЦpdzƩһݭnwˤA
- ӸӸ`BJ˦nANiH~U@B <xref linkend="install-start"/>C
+ <para>若沒有 FreeBSD 安裝片的話,那麼請先看 <xref linkend="install-diff-media"/> 這裡會介紹如何準備所需要的安裝片,
+ 照該節步驟弄好後,就可以繼續下一步 <xref linkend="install-start"/>。
</para>
</sect2>
<sect2 xml:id="install-floppies">
- <title>dzƦn}Ϥ</title>
+ <title>準備好開機磁片</title>
- <para>FreeBSD wˬy{Onqq}AiJ FreeBSD w˵e XX
- ӤObL@~tΤW{C
- @AqOθ˦bwФW@~tΨӶ}A
- ]iHζ}ϤӶ}F
- ~A{bjhƹqiHqж}C</para>
+ <para>FreeBSD 安裝流程是要從電腦開機後,進入 FreeBSD 安裝畫面 ——
+ 而不是在其他作業系統上執行程式。
+ 一般來講,電腦都是用裝在硬碟上的作業系統來開機,
+ 也可以用開機磁片來開機;
+ 此外,現在大多數電腦都可以從光碟開機。</para>
<tip>
- <para>pGz FreeBSD CDROM DVD(L׬OζR{άOۤvN)A
- Bzqi䴩ѥж}A(q`b BIOS |
- <quote>Boot Order</quote> ﶵ)AzNiHLp`C
- ] FreeBSD CDROM DVD iHΨӶ}C</para>
+ <para>如果您有 FreeBSD 的 CDROM 或 DVD(無論是用買現成的或是自己燒錄的),
+ 且您的電腦可支援由光碟開機,(通常在 BIOS 中會有
+ <quote>Boot Order</quote> 或類似選項),那麼您就可以跳過此小節。
+ 因為 FreeBSD CDROM 或 DVD 都可以用來開機。</para>
</tip>
- <para>ЫӤUBJAHs@}G</para>
+ <para>請按照下面步驟,以製作開機片:</para>
<procedure>
<step>
- <title>o}M(images)</title>
+ <title>取得開機片的映像檔(images)</title>
- <para>}ϤΪM(images)q`|bФW
- <filename>floppies/</filename> ؿA
- t~]iHqOU FTP floppies ؿUG
+ <para>開機磁片用的映像檔(images)通常會放在光碟片上的
+ <filename>floppies/</filename> 目錄內,
+ 另外也可以從像是下面 FTP 站的 floppies 目錄下載:
<literal>ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/&lt;arch&gt;/&lt;version&gt;-RELEASE/floppies/</literal>
- CбNyarchzByversionzw˪q[cBOS C
- ҦpGQ˪O &os;/&arch.i386;&nbsp;&rel.current;-RELEASE
- AiH <uri xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/floppies/">ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/floppies/</uri> UC</para>
+ 。請將『arch』、『version』替換為打算安裝的電腦架構、OS 版本。
+ 例如:想裝的是 &os;/&arch.i386;&nbsp;&rel.current;-RELEASE
+ ,那麼可以到 <uri xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/floppies/">ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/floppies/</uri> 下載。</para>
- <para>M(images)ɦWO <filename>.flp</filename>C
- <filename>floppies/</filename> ؿ]t@ǤPγ~M
- (images)AoMzn˪ FreeBSD BݨDBwtƬC
- q`n 4 ӬMɡA]NOG <filename>boot.flp</filename>B
- <filename>kern1.flp</filename>B<filename>kern2.flp</filename>B
- <filename>kern3.flp</filename>C YðݪܡA½\P@ؿU
- <filename>README.TXT</filename> ɡAHAѬ̷s`NƶC
+ <para>映像檔(images)的附檔名都是 <filename>.flp</filename>。而
+ <filename>floppies/</filename> 目錄內包含一些不同用途的映像檔
+ (images),這取決於您要裝的 FreeBSD 版本、需求、硬體配備為何。
+ 通常要 4 個映像檔,也就是: <filename>boot.flp</filename>、
+ <filename>kern1.flp</filename>、<filename>kern2.flp</filename>、
+ <filename>kern3.flp</filename>。 若有疑問的話,請翻閱同一目錄下的
+ <filename>README.TXT</filename> 文件檔,以瞭解相關最新注意事項。
</para>
<important>
- <para>bϥ FTP UɡAϥ <emphasis>binary Ҧ</emphasis>
- iǿC sw]OH <emphasis>text</emphasis> (
- <emphasis>ASCII</emphasis>) ҦӶǿơA
- ҥHoǿ~ǿҦUMɩҰϤA|LkϥΡC</para>
+ <para>在使用 FTP 下載時,必須使用 <emphasis>binary 模式</emphasis>
+ 進行傳輸。 有些瀏覽器預設是以 <emphasis>text</emphasis> (或
+ <emphasis>ASCII</emphasis>) 模式來傳輸資料,
+ 所以這些錯誤傳輸模式下載的映像檔所做成的磁片,會無法使用。</para>
</important>
</step>
<step>
- <title>dzƶ}Ϥ</title>
+ <title>準備開機磁片</title>
- <para>CӬMɳݭn@iϤAåBקKϥΨaϤC
- ²檺˴覡NOۤvoǺϤAs榡(format)
- Ӥn۫Hҿתw榡ƪϤA&windows; format
- b榡ƮɡAä|iDAO_ayA
- ӥu|N̼ХayӤϥayӤwC
- ~AijĥΥsϤӻs@wˤOIC</para>
+ <para>每個映像檔都需要一張磁片,並且請避免使用到壞的磁片。
+ 最簡單的檢測方式就是自己先把這些磁片再重新格式化(format)
+ 而不要相信所謂的已格式化的磁片,&windows; 內的 format
+ 在格式化時,並不會告訴你是否有壞軌,
+ 而只會直接將它們標示壞軌而不使用壞軌部分而已。
+ 此外,建議採用全新的磁片來製作安裝片比較保險。</para>
<important>
- <para>Ybw FreeBSD L{oͷB
- eᵲάOLDz{HAnhêNO}ϤO_aC
- ХΨLϤs@MɦAոլݡC</para>
+ <para>若在安裝 FreeBSD 的過程中發生當機、
+ 畫面凍結或是其他怪異的現象,首先要懷疑的就是開機磁片是否壞掉。
+ 請用其他的磁片製作映像檔再試試看。</para>
</important>
</step>
<step>
- <title>NM(images)gJϤ</title>
+ <title>將映像檔(images)寫入到磁片內</title>
- <para><filename>.flp</filename> ɨëD@ɮסA
- ઽ⥦ƻsϤWC
- ƹWO]tiϤҦeM(image)C
- ]NOAºƻsɮרϤWA
- ӥϥίSOu{AӱNMɪgϤWC</para>
+ <para><filename>.flp</filename> 檔並非一般檔案,
+ 不能直接把它複製到磁片上。
+ 事實上它是包含整張磁片所有內容的映像檔(image)。
+ 也就是說,不能純粹複製檔案到磁片上,
+ 而必須使用特別的工具程式,來將映像檔直接寫到磁片上。</para>
<indexterm><primary>DOS</primary></indexterm>
- <para>Yn &ms-dos;/&windows; ӧ@wˤܡAiH
- <command>fdimage</command> u{ӱNMɡAgϤWC</para>
+ <para>若要用 &ms-dos;/&windows; 來作安裝片的話,那麼可以用
+ <command>fdimage</command> 工具程式來將映像檔,寫到磁片上。</para>
- <para>YzΪO FreeBSD Ъ(]оN
- <filename>E:</filename> AаUOG</para>
+ <para>若您用的是 FreeBSD 光碟的話(假設光碟機代號為
+ <filename>E:</filename> ,那麼請執行類似下面的指令:</para>
<screen><prompt>E:\&gt;</prompt> <userinput>tools\fdimage floppies\boot.flp A:</userinput></screen>
- <para>аwCӻݭnΨ쪺 <filename>.flp</filename> MɡA
- ƤWzO(OoɦW)ACMɧA
- ݭnt~@Ӹ˷sMɡF аOoG
- b@nϤWOϥέӬMɧ@C
- Y <filename>.flp</filename> MɩbPaA
- ЦۦקWzOCYS FreeBSD ЪܡA
- iH FTP W <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/tools/"><filename>tools</filename>
- ؿ</link> U <command>fdimage</command> ϥΡC</para>
+ <para>請針對每個需要用到的 <filename>.flp</filename> 映像檔,
+ 重複上述的指令(記得更改相關檔名),每次的映像檔完成後,
+ 都需要換另外一片來裝新的映像檔; 請記得:
+ 在作好的磁片上註明是使用哪個映像檔作的。
+ 若 <filename>.flp</filename> 映像檔放在不同地方,
+ 請自行修改上述指令。若沒有 FreeBSD 光碟的話,
+ 可以到 FTP 上面的 <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/tools/"><filename>tools</filename>
+ 目錄</link> 下載 <command>fdimage</command> 使用。</para>
- <para>pGn &unix; t(pLx FreeBSD )
- ӻs@}ܡAiH &man.dd.1; OӧMɪgJϤWC
- b FreeBSDWܡAiHUOG</para>
+ <para>如果要用 &unix; 系統(比如其他台 FreeBSD 機器)
+ 來製作開機片的話,可以用 &man.dd.1; 指令來把映像檔直接寫入到磁片上。
+ 在 FreeBSD上的話,可以打類似下面的指令:</para>
<screen>&prompt.root; <userinput>dd if=boot.flp of=/dev/fd0</userinput></screen>
- <para>b FreeBSD A<filename>/dev/fd0</filename>
- NOĤ@xnо(Y@ &ms-dos;/&windows;
- W <filename>A:</filename> Ϻо)F
- <filename>/dev/fd1</filename> <filename>B:</filename>
- ϺоAl̦C LL &unix;
- tΥi|ΤPW١AoɴNnd\ӨtΪFC</para>
+ <para>在 FreeBSD 中,<filename>/dev/fd0</filename>
+ 就是指第一台軟碟機(即一般 &ms-dos;/&windows;
+ 上的 <filename>A:</filename> 磁碟機);
+ 而 <filename>/dev/fd1</filename> 指 <filename>B:</filename>
+ 磁碟機,其餘的依此類推。 不過其他的 &unix;
+ 系統可能會用不同的名稱,這時就要查閱該系統的說明文件了。</para>
</step>
</procedure>
- <para>{b_Aڭ̥iH}lw FreeBSD oI</para>
+ <para>現在起,我們可以開始安裝 FreeBSD 囉!</para>
</sect2>
</sect1>
<sect1 xml:id="install-start">
- <title>}lw</title>
+ <title>開始安裝</title>
<important>
- <para>w]pUAw˹L{ä|ܱzϺоơA
- DzݨUTG</para>
+ <para>預設的情況下,安裝過程並不會改變您磁碟機中的任何資料,
+ 除非您看到下面的訊息:</para>
<literallayout class="monospaced">Last Chance: Are you SURE you want continue the installation?
@@ -715,79 +715,79 @@ STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding!
We can take no responsibility for lost disk contents!</literallayout>
- <para>bݨo̫᪺ĵiTeA
- ziHH}w˵{Ӥ|ܧzwСC
- pGzo{]w~A
- oɱziHNqӤ|yˮ`C</para>
+ <para>在看到這最後的警告訊息前,
+ 您都可以隨時離開安裝程式而不會變更您的硬碟。
+ 如果您發現有任何設定錯誤,
+ 這時您可以直接將電源關掉而不會造成任何傷害。</para>
</important>
<sect2 xml:id="install-starting">
- <title>}Ұʬy{g</title>
+ <title>開機啟動流程篇</title>
<sect3 xml:id="install-starting-i386">
- <title>&i386; x}y{</title>
+ <title>&i386; 平台的開機流程</title>
<procedure>
<step>
- <para>b@}lAqq}OC</para>
+ <para>在一開始,電腦電源開關是關閉的。</para>
</step>
<step>
- <para>}qq}C}lɭԡA
- ӷ|ܶiJtγ]w BIOS nA
- `G <keycap>F2</keycap>, <keycap>F10</keycap>,
- <keycap>Del</keycap> <keycombo action="simul">
+ <para>打開電腦電源開關。剛開始的時候,
+ 它應該會顯示進入系統設定選單或 BIOS 要按哪個鍵,
+ 常見的有: <keycap>F2</keycap>, <keycap>F10</keycap>,
+ <keycap>Del</keycap> 或 <keycombo action="simul">
<keycap>Alt</keycap> <keycap>S</keycap>
- </keycombo>C(Ш̾ڹڱpMw) ׬OnA
- ЫiJ BIOS ]weC
- ɱzqi|ܤ@ӹϧεeA
- q`kO <keycap>Esc</keycap> N}oӹϧεeA
- Hϱzݨ쥲n]wTC</para>
+ </keycombo>。(按鍵請依據實際情況決定) 不論是要按哪個鍵,
+ 請按它進入 BIOS 設定畫面。
+ 有時您的電腦可能會顯示一個圖形畫面,
+ 通常做法是按 <keycap>Esc</keycap> 鍵將離開這個圖形畫面,
+ 以使您能夠看到必要的設定訊息。</para>
</step>
<step>
- <para>XiH]wy}(Boot Order)zﶵA
- q`ӿﶵ|CX@dz]zܡAҦpJ
+ <para>找出可以設定『開機順序(Boot Order)』的選項,
+ 通常該選項會列出一些設備讓您選擇,例如︰
<literal>Floppy</literal>, <literal>CDROM</literal>,
- <literal>First Hard Disk</literal> C</para>
+ <literal>First Hard Disk</literal> 等等。</para>
- <para>pGnγnЦwˡAнTw floppy disk nC}ǪĤ@ӡF
- YnΥЦwˡAOo CDROM nC}ǪĤ@ӡC
- FקKnôbAаѦҾBDOUC</para>
+ <para>如果要用軟碟安裝,請確定 floppy disk 要列為開機順序的第一個;
+ 若要用光碟安裝,記得 CDROM 要列為開機順序的第一個。
+ 為了避免不必要的疑惑,請參考機器、主機板說明手冊。</para>
- <para>xs]w}Atӷ|sҰʡC</para>
+ <para>儲存設定並離開,系統應該會重新啟動。</para>
</step>
<step>
- <para>YnκϤwˡAЧb
- <xref linkend="install-floppies"/>@`s@n
- <filename>boot.flp</filename> iw˺ϤĤ@xnоC
+ <para>若要用磁片安裝,請把在
+ <xref linkend="install-floppies"/>一節中製作好的
+ <filename>boot.flp</filename> 那張安裝磁片放到第一台軟碟機中。
</para>
- <para>pGOqЦwˡA}бN FreeBSD ЩJоC
+ <para>如果是從光碟安裝,那麼開機後請將 FreeBSD 光碟放入光碟機中。
</para>
- <para>pGA}p`@˦ӨSqnЩΥж}AˬdJ</para>
+ <para>如果,開機後如往常一樣而沒有從軟碟或光碟開機,請檢查︰</para>
<orderedlist>
<listitem>
- <para>OOϤΥФӱߩJӿ}ɶC
- pGOAбN̩JAM᭫s}C</para>
+ <para>是不是磁片或光碟太晚放入而錯失開機時間。
+ 如果是,請將它們放入,然後重新開機。</para>
</listitem>
<listitem>
- <para>BIOS ]wΧѤFxs]wAЭsˬd BIOS ]wC</para>
+ <para>BIOS 設定不對或忘了儲存設定,請重新檢查 BIOS 的設定。</para>
</listitem>
<listitem>
- <para>zq BIOS 䴩qж}C</para>
+ <para>您的電腦 BIOS 不支援從光碟開機。</para>
</listitem>
</orderedlist>
</step>
<step>
- <para>ɡAFreeBSD N}lҰʤFC
- pGOqж}A|Ue(ٲ)G</para>
+ <para>此時,FreeBSD 就開始啟動了。
+ 如果是從光碟開機,會見到類似下面的畫面(版本部分省略):</para>
<screen>Booting from CD-Rom...
CD Loader 1.2
@@ -810,7 +810,7 @@ Loading /boot/defaults/loader.conf
/boot/kernel/kernel text=0x64daa0 data=0xa4e80+0xa9e40 syms=[0x4+0x6cac0+0x4+0x88e9d]
\</screen>
- <para>pGzqnж}A|ݨUe(ٲ)G</para>
+ <para>如果您從軟碟開機,會看到類似下面的畫面(版本部分省略):</para>
<screen>Booting from Floppy...
Uncompressing ... done
@@ -828,19 +828,19 @@ Loading /boot/defaults/loader.conf
Insert disk labelled "Kernel floppy 1" and press any key...</screen>
- <para>ЮھڴܱN <filename>boot.flp</filename> ϤXA
- éJ <filename>kern1.flp</filename> oiϤA
- M <keycap>Enter</keycap> C
- `AzuݱqĤ@iϤҰʡAMھڴܡAAJϤYiC
+ <para>請根據提示將 <filename>boot.flp</filename> 磁片取出,
+ 並放入 <filename>kern1.flp</filename> 這張磁片,
+ 然後按 <keycap>Enter</keycap> 鍵。
+ 總之,您只需從第一張磁片啟動,然後根據提示,再放入相關磁片即可。
</para>
</step>
<step>
- <para>LױqnЩΥж}AUӷ|iJ &os; boot loader
- eG</para>
+ <para>無論從軟碟或光碟開機,接下來會進入 &os; boot loader
+ 選單畫面:</para>
<figure xml:id="boot-loader-menu">
- <title>&os; Boot Loader </title>
+ <title>&os; Boot Loader 選單</title>
<mediaobject>
<imageobject>
@@ -850,103 +850,103 @@ Insert disk labelled "Kernel floppy 1" and press any key...</screen>
</figure>
- <para>ziH 10 AάO <keycap>Enter</keycap> C</para>
+ <para>您可以等待 10 秒,或是按 <keycap>Enter</keycap> 鍵。</para>
</step>
</procedure>
</sect3>
<sect3>
- <title>Alpha x}y{</title>
+ <title>Alpha 平台的開機流程</title>
<indexterm><primary>Alpha</primary></indexterm>
<procedure>
<step>
- <para>b@}lAqq}OC</para>
+ <para>在一開始,電腦電源開關是關閉的。</para>
</step>
<step>
- <para>}qq}AMᵥ}eX{C</para>
+ <para>打開電腦電源開關,然後等開機畫面出現。</para>
</step>
<step>
- <para>YnκϤwˡAЧb
- <xref linkend="install-floppies"/>@`s@n
- <filename>boot.flp</filename> iw˺ϤĤ@xnоC
- MAUCOӱqϤ}
- (ЧUCnоNאּAqnоN)G</para>
+ <para>若要用磁片安裝,請把在
+ <xref linkend="install-floppies"/>一節中製作好的
+ <filename>boot.flp</filename> 那張安裝磁片放到第一台軟碟機中。
+ 然後,打下列指令來從磁片開機
+ (請把下列軟碟機代號改為你電腦的軟碟機代號):</para>
<screen>&gt;&gt;&gt;<userinput>BOOT DVA0 -FLAGS '' -FILE ''</userinput></screen>
- <para>YnΥЦwˡAЧⰵnwˤJоA
- MᥴUCOӱqж}
- (ЧUCоNאּAqоN)G</para>
+ <para>若要用光碟安裝,請把做好的安裝片放入光碟機,
+ 然後打下列指令來從光碟開機
+ (請把下列光碟機代號改為你電腦的光碟機代號):</para>
<screen>&gt;&gt;&gt;<userinput>BOOT DKA0 -FLAGS '' -FILE ''</userinput></screen>
</step>
<step>
- <para> FreeBSD }N|}lFCYOѳnж}ܡA
- oɷ|ݨHUTG</para>
+ <para>接著 FreeBSD 開機片就會開始了。若是由軟碟開機的話,
+ 這時會看到以下訊息:</para>
<screen>Insert disk labelled "Kernel floppy 1" and press any key...</screen>
- <para>зӫܡA <filename>boot.flp</filename> A
- <filename>kern1.flp</filename> A
- M <keycap>Enter</keycap>C</para>
+ <para>請照指示,拿走 <filename>boot.flp</filename> 片,改放
+ <filename>kern1.flp</filename> 片,
+ 然後按 <keycap>Enter</keycap>。</para>
</step>
<step>
- <para>LױqnЩΥж}Az|ݨUoqTG</para>
+ <para>無論從軟碟或光碟開機,您都會看到下面這段訊息:</para>
<screen>Hit [Enter] to boot immediately, or any other key for command prompt.
Booting [kernel] in 9 seconds... _</screen>
- <para>ziH 10 AάO <keycap>Enter</keycap> C
- UӴN|iJkernel configuration C</para>
+ <para>您可以等待 10 秒,或是按 <keycap>Enter</keycap> 鍵。
+ 接下來就會進入kernel configuration 選單。</para>
</step>
</procedure>
</sect3>
<sect3>
- <title>&sparc64; x}y{</title>
+ <title>&sparc64; 平台的開機流程</title>
- <para>jhƪ &sparc64; w]|۰ʱqwж}C ]n &os;
- ܡAhݭniJ PROM(OpenFirmware) ]wѺΥж}~iC</para>
+ <para>大多數的 &sparc64; 機器預設會自動從硬碟開機。 因此要裝 &os;
+ 的話,則需要進入 PROM(OpenFirmware) 設定由網路或光碟開機才可。</para>
- <para>Х}AMᵥݪ}TX{C oi|HP
- AӦҮtAj|X{UCoˡG</para>
+ <para>請先重開機,然後等待直到開機訊息出現。 這部分可能會隨機器型號不同
+ ,而有所差異,但大概會出現像下列這樣:</para>
<screen>Sun Blade 100 (UltraSPARC-IIe), Keyboard Present
Copyright 1998-2001 Sun Microsystems, Inc. All rights reserved.
OpenBoot 4.2, 128 MB memory installed, Serial #51090132.
Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.</screen>
- <para>Yzɷ|ѵwж}Aݭn
+ <para>若您機器此時會先由硬碟開機,那麼需要按
<keycombo action="simul"><keycap>L1</keycap><keycap>A</keycap></keycombo>
-
+ 或
<keycombo action="simul"><keycap>Stop</keycap><keycap>A</keycap></keycombo>
- Ϊ̬OzL serial console (ΪkаѾ\ &man.tip.1; &man.cu.1;
- <command>~#</command> ) eX <command>BREAK</command>
- OӶiJ PROM promptC j|UG</para>
+ 或者是透過 serial console (用法請參閱 &man.tip.1; 或 &man.cu.1;
+ 內有關 <command>~#</command> 的說明) 送出 <command>BREAK</command>
+ 指令來進入 PROM prompt。 大概會像下面:</para>
<screen><prompt>ok </prompt><co xml:id="prompt-single"/>
<prompt>ok {0} </prompt><co xml:id="prompt-smp"/></screen>
<calloutlist>
<callout arearefs="prompt-single">
- <para>oOAΩu@ CPU C</para>
+ <para>這是適用於只有單一 CPU 的機器。</para>
</callout>
<callout arearefs="prompt-smp">
- <para>oOAΩ SMP AƦrOثebϥΤ CPU
- sC</para>
+ <para>這是適用於 SMP 機器,數字部分是指目前在使用中的 CPU
+ 編號。</para>
</callout>
</calloutlist>
- <para>ɽЧw˥ЩJоAMb PROM prompt
- <command>boot cdrom</command> YiC</para>
+ <para>此時請把安裝光碟放入光碟機內,然後在 PROM prompt 打
+ <command>boot cdrom</command> 即可。</para>
</sect3>
@@ -954,23 +954,23 @@ Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.</screen>
<sect2 xml:id="view-probe">
- <title>nh½\w骺GOH</title>
+ <title>那要怎麼去翻閱偵測硬體的結果呢?</title>
- <para>ebùWܪ̫XʦrA|sbȦs(buffer)
- HKz½\C</para>
+ <para>先前在螢幕上所顯示的最後幾百行字,會存在暫存區(buffer)
+ 以便您翻閱。</para>
- <para>Yn½\ȦsϡAЫ <keycap>Scroll Lock</keycap> A
- o|}ұʵe\C
- MNiHϥΤVAάO <keycap>PageUp</keycap>B
- <keycap>PageDown</keycap> ӤWU½\C
- A@ <keycap>Scroll Lock</keycap> AN|eʡC</para>
+ <para>若要翻閱暫存區,請按 <keycap>Scroll Lock</keycap> 鍵,
+ 這會開啟捲動畫面功能。
+ 然後就可以使用方向鍵,或是 <keycap>PageUp</keycap>、
+ <keycap>PageDown</keycap> 鍵來上下翻閱。
+ 再按一次 <keycap>Scroll Lock</keycap> 鍵,就會停止畫面捲動。</para>
- <para>{bNиոլݡA½\@Uw骺eaA
- Aӷ|ݨ <xref linkend="install-dev-probe"/> eA
- ue|̧Aq]ƦӦҤPC</para>
+ <para>現在就請試試看,翻閱一下偵測硬體的畫面吧,
+ 你應該會看到類似 <xref linkend="install-dev-probe"/> 的畫面,
+ 真正畫面會依你的電腦設備而有所不同。</para>
<figure xml:id="install-dev-probe">
- <title>w骺Ҥl</title>
+ <title>偵測硬體的例子</title>
<screen>avail memory = 253050880 (247120K bytes)
Preloaded elf kernel "kernel" at 0xc0817000.
@@ -1035,18 +1035,18 @@ Mounting root from ufs:/dev/md0c
/stand/sysinstall running as init on vty0</screen>
</figure>
- <para>ХJˬdC˴GAHTw FreeBSD TCwC
- YSw骺ܡAeN|CXӤFC <link linkend="kernelconfig">ۭq kernel</link> iHz[W쥻w]
- <filename>GENERIC</filename> kernel Ҥ䴩wAOĥdC
+ <para>請仔細檢查每項檢測結果,以確定 FreeBSD 有正確偵測到每項硬體。
+ 若沒偵測到硬體的話,那畫面就不會列出來了。 <link linkend="kernelconfig">自訂 kernel</link> 可以讓您加上原本預設的
+ <filename>GENERIC</filename> kernel 所不支援的硬體,像是音效卡之類。
</para>
- <para> &os;&nbsp;6.2 _Abw|ݨ <xref linkend="config-country"/>AХΤVܧAOBaϩθsաC
- M <keycap>Enter</keycap> N|A]wOBLC
- ~An}B <application>sysinstall</application>
- {A]²C</para>
+ <para>而 &os;&nbsp;6.2 起的版本,在偵測硬體後會看到 <xref linkend="config-country"/>,請用方向鍵選擇你的國別、地區或群組。
+ 然後按 <keycap>Enter</keycap> 鍵就會幫你設定相關國別、鍵盤對應。
+ 此外,要離開、重啟 <application>sysinstall</application>
+ 程式,也很簡單。</para>
<figure xml:id="config-country">
- <title>ܰO</title>
+ <title>選擇國別</title>
<mediaobject>
<imageobject>
@@ -1056,7 +1056,7 @@ Mounting root from ufs:/dev/md0c
</figure>
<figure xml:id="sysinstall-exit">
- <title>} Sysinstall {</title>
+ <title>離開 Sysinstall 程式</title>
<mediaobject>
<imageobject>
@@ -1065,8 +1065,8 @@ Mounting root from ufs:/dev/md0c
</mediaobject>
</figure>
- <para>bDe <guimenuitem>Exit Install</guimenuitem>A
- Uӷ|X{HUTG</para>
+ <para>在主畫面選擇 <guimenuitem>Exit Install</guimenuitem>,
+ 接下來應該會出現以下訊息:</para>
<screen> User Confirmation Requested
@@ -1075,36 +1075,36 @@ Mounting root from ufs:/dev/md0c
[ Yes ] No</screen>
- <para>YU &gui.yes; AoѤFаhXӪܡA
- 򵥤U}S|AҰʦw˵{FC</para>
+ <para>若按下 &gui.yes; 之後,卻忘了把光碟退出來的話,
+ 那麼等下重開機後又會再次啟動安裝程式了。</para>
- <para>YAOκϤ}ܡA򭫶}eAаOohX
- <filename>boot.flp</filename> aC</para>
+ <para>若你是用磁片開機的話,那麼重開機之前,請記得先退出
+ <filename>boot.flp</filename> 片吧。</para>
</sect2>
</sect1>
<sect1 xml:id="using-sysinstall">
- <title> Sysinstall</title>
+ <title>介紹 Sysinstall</title>
<para><application>sysinstall</application>
- O FreeBSD pҴѪw˵{C
- OHrҦާ@覡DAXhBeAHziwˡC</para>
+ 是 FreeBSD 計劃所提供的安裝程式。
+ 它是以文字模式操作方式為主,分為幾層選單、畫面,以讓您進行安裝。</para>
- <para><application>sysinstall</application> DnѤVB
- <keycap>Enter</keycap>B<keycap>Tab</keycap>B<keycap>Space</keycap>
- HΨLӶiާ@A
- b <application>sysinstall</application> De Usage
- oLާ@WC</para>
+ <para><application>sysinstall</application> 選單主要由方向鍵、
+ <keycap>Enter</keycap>、<keycap>Tab</keycap>、<keycap>Space</keycap>
+ 以及其他按鍵來進行操作,
+ 在 <application>sysinstall</application> 主畫面的 Usage
+ 內有這些鍵盤操作上的說明。</para>
- <para>nd\oǻAбNв
- <guimenuitem>Usage</guimenuitem>AM
- <guibutton>[Select]</guibutton> AoɧAeӷ| <xref linkend="sysinstall-main3"/>A۽Ы <keycap>Enter</keycap> C</para>
+ <para>要查閱這些說明,請將游標移到
+ <guimenuitem>Usage</guimenuitem>,然後選
+ <guibutton>[Select]</guibutton> ,這時你畫面應該會長像 <xref linkend="sysinstall-main3"/>,接著請按 <keycap>Enter</keycap> 鍵。</para>
- <para>UӡA|X{w˪ϥλA\ŪЫ
- <keycap>Enter</keycap> H^DeC</para>
+ <para>接下來,會出現安裝的使用說明,閱讀完畢請按
+ <keycap>Enter</keycap> 以跳回主畫面。</para>
<figure xml:id="sysinstall-main3">
- <title> Sysinstall DeyUsage(ֳt)z</title>
+ <title>選擇 Sysinstall 主畫面的『Usage(快速說明)』</title>
<mediaobject>
<imageobject>
@@ -1114,13 +1114,13 @@ Mounting root from ufs:/dev/md0c
</figure>
<sect2 xml:id="select-doc">
- <title>ܡy Documentation()z</title>
+ <title>選擇『 Documentation(說明文件)』選單</title>
- <para>bDeΤV <guimenuitem>Doc</guimenuitem>AM
- <keycap>Enter</keycap> C</para>
+ <para>在主畫面用方向鍵選擇 <guimenuitem>Doc</guimenuitem>,然後按
+ <keycap>Enter</keycap> 鍵。</para>
<figure xml:id="main-doc">
- <title>ܡyDocumentation()z</title>
+ <title>選擇『Documentation(說明文件)』選單</title>
<mediaobject>
<imageobject>
@@ -1129,10 +1129,10 @@ Mounting root from ufs:/dev/md0c
</mediaobject>
</figure>
- <para>oɷ|X{󪺿C</para>
+ <para>這時會出現說明文件的選單。</para>
<figure xml:id="docmenu1">
- <title>Sysinstall (Documentation)</title>
+ <title>Sysinstall 的說明文件(Documentation)選單</title>
<mediaobject>
<imageobject>
@@ -1141,27 +1141,27 @@ Mounting root from ufs:/dev/md0c
</mediaobject>
</figure>
- <para>\ŪoǻܭnC</para>
+ <para>閱讀這些說明文件很重要。</para>
- <para>n\Ū󪺸ܡAХΤVn\ŪM
- <keycap>Enter</keycap> CŪAA@
- <keycap>Enter</keycap> N|^컡eFC</para>
+ <para>要閱讀文件的話,請用方向鍵選取要閱讀的文件然後按
+ <keycap>Enter</keycap> 鍵。讀完後,再按一次
+ <keycap>Enter</keycap> 鍵就會回到說明文件畫面了。</para>
- <para>Yn^DeAΤV
- <guimenuitem>Exit</guimenuitem> MU
- <keycap>Enter</keycap> YiC</para>
+ <para>若要回到主畫面,用方向鍵選擇
+ <guimenuitem>Exit</guimenuitem> 然後按下
+ <keycap>Enter</keycap> 鍵即可。</para>
</sect2>
<sect2 xml:id="keymap">
- <title>ܡyLz</title>
+ <title>選擇『鍵盤對應』選單</title>
- <para>pGnL䪺ҦAЦbD
- <guimenuitem>Keymap</guimenuitem> M
- <keycap>Enter</keycap> YiC @뱡pUOΥhA
- DAΪLO@зǩΫDLC</para>
+ <para>如果要改變鍵盤按鍵的對應模式,請在主選單選取
+ <guimenuitem>Keymap</guimenuitem> 然後按
+ <keycap>Enter</keycap> 鍵即可。 一般情況下是不用去改,
+ 除非你用的鍵盤不是一般標準或非美式鍵盤。</para>
<figure xml:id="sysinstall-keymap">
- <title>Sysinstall D</title>
+ <title>Sysinstall 主選單</title>
<mediaobject>
<imageobject>
@@ -1170,18 +1170,18 @@ Mounting root from ufs:/dev/md0c
</mediaobject>
</figure>
- <para>ziHϥΤWU䲾ʨzQϥΪL覡AMU
- <keycap>Space</keycap> HFA@U
- <keycap>Space</keycap> iHCzAп
- &gui.ok; M
- <keycap>Enter</keycap> YiC</para>
+ <para>您可以使用上下鍵移動到您想使用的鍵盤對應方式,然後按下
+ <keycap>Space</keycap> 鍵以選取它;再按一下
+ <keycap>Space</keycap> 鍵可以取消選取。當您完成後,請選擇
+ &gui.ok; 然後按
+ <keycap>Enter</keycap> 鍵即可。</para>
- <para>boӵeܪuO䤤@pF
- Yunιw]L覡NnܡAiH <keycap>Tab</keycap>
- ӿ &gui.cancel; o˴N|^DeC</para>
+ <para>在這個畫面顯示的只是其中一小部分;
+ 若只要用預設鍵盤對應方式就好的話,可以用 <keycap>Tab</keycap>
+ 來選 &gui.cancel; 這樣就會返回主畫面。</para>
<figure xml:id="sysinstall-keymap-menu">
- <title>Sysinstall L</title>
+ <title>Sysinstall 鍵盤對應選單</title>
<mediaobject>
<imageobject>
@@ -1193,13 +1193,13 @@ Mounting root from ufs:/dev/md0c
</sect2>
<sect2 xml:id="viewsetoptions">
- <title>w˿ﶵ]we</title>
+ <title>安裝選項的設定畫面</title>
- <para>п <guimenuitem>Options</guimenuitem> M
- <keycap>Enter</keycap> C</para>
+ <para>請選 <guimenuitem>Options</guimenuitem> 然後按
+ <keycap>Enter</keycap> 鍵。</para>
<figure xml:id="sysinstall-options">
- <title>Sysinstall D</title>
+ <title>Sysinstall 主選單</title>
<mediaobject>
<imageobject>
@@ -1209,7 +1209,7 @@ Mounting root from ufs:/dev/md0c
</figure>
<figure xml:id="options">
- <title>Sysinstall ﶵ]w</title>
+ <title>Sysinstall 選項設定</title>
<mediaobject>
<imageobject>
@@ -1218,28 +1218,28 @@ Mounting root from ufs:/dev/md0c
</mediaobject>
</figure>
- <para>q`AϥΪ̤jhιw]ȴNiHFAӤέק復̡C
- Release Name aḩAҦw˪ӦҤPC</para>
+ <para>通常,使用者大多用預設值就可以了,而不用修改它們。
+ 而 Release Name 的地方則依你所安裝的版本而有所不同。</para>
- <para>ӥثeҿ諸ءA|beUHũզrܻC
- `NG䤤k̫᪺ﶵO
- <guimenuitem>Use Defaults(ϥιw])</guimenuitem>
- AziHǥѦﶵNҦ]w٭쬰w]ȡC</para>
+ <para>而目前所選的的項目,會在畫面下方以藍底白字顯示說明。
+ 注意:其中右邊最後的選項是
+ <guimenuitem>Use Defaults(使用預設值)</guimenuitem>
+ ,您可以藉由此選項將所有的設定還原為預設值。</para>
- <para>t~AiH <keycap>F1</keycap> Ӿ\ŪUﶵC</para>
+ <para>另外,可以按 <keycap>F1</keycap> 鍵來閱讀各選項的說明。</para>
- <para>ӫ <keycap>Q</keycap> hOiH^DeC</para>
+ <para>而按 <keycap>Q</keycap> 鍵則是可以回到主畫面。</para>
</sect2>
<sect2 xml:id="start-install">
- <title>}liзǦw</title>
+ <title>開始進行標準安裝</title>
- <para><guimenuitem>Standard(з)</guimenuitem>w˾AΩ󨺨Ǫ챴 &unix;
- FreeBSD ϥΪ̡CΤV <guimenuitem>Standard</guimenuitem>
- M <keycap>Enter</keycap> Yi}liJзǦwˡC</para>
+ <para><guimenuitem>Standard(標準)</guimenuitem>安裝適用於那些初探 &unix;
+ 或 FreeBSD 的使用者。用方向鍵選擇 <guimenuitem>Standard</guimenuitem>
+ 然後按 <keycap>Enter</keycap> 鍵即可開始進入標準安裝。</para>
<figure xml:id="sysinstall-standard">
- <title>}liзǦw</title>
+ <title>開始進行標準安裝</title>
<mediaobject>
<imageobject>
@@ -1251,118 +1251,118 @@ Mounting root from ufs:/dev/md0c
</sect1>
<sect1 xml:id="install-steps">
- <title>wЪŶt</title>
+ <title>硬碟空間的分配</title>
- <para>zĤ@ӥȴNOnMwt FreeBSD ΪϺЪŶBlabelA
- HK <application>sysinstall</application> Adzưʧ@C
- ]AA FreeBSD OpT{ϺЪy{ӷC</para>
+ <para>您的第一個任務就是要決定分配給 FreeBSD 用的磁碟空間、label,
+ 以便 <application>sysinstall</application> 幫你做相關準備動作。
+ 因此,你必須先對 FreeBSD 是如何確認磁碟的流程有個概念。</para>
<sect2 xml:id="install-drive-bios-numbering">
- <title>BIOS Ϻоs</title>
+ <title>BIOS 磁碟機編號</title>
- <para>bwˡB]w FreeBSD eAܭn@I`NA
- רz\hwЪɭԡC</para>
+ <para>在安裝、設定 FreeBSD 之前,有很重要的一點必須注意,
+ 尤其當您有許多顆硬碟的時候。</para>
<indexterm><primary>DOS</primary></indexterm>
<indexterm><primary>Microsoft Windows</primary></indexterm>
- <para>b PC [cAz] &ms-dos; &microsoft.windows;
- oظ BIOS ]w@~tΡA
- BIOS iHվ㥿`ϺоǡAMoǧ@~tη| BIOS ܡC
- oϥΪ̤@wDonѩҿת <quote>primary master</quote> wж}C
- Ho{²BKyƥtΤ覡ANOAhR@@Ҥ@˪wСA
- Mwϥ <application>
- Ghost</application>
+ <para>在 PC 架構,當您跑像 &ms-dos; 或 &microsoft.windows;
+ 這種跟 BIOS 設定相關的作業系統,
+ BIOS 那邊可以調整正常的磁碟機順序,然後這些作業系統會跟著 BIOS 做改變。
+ 這讓使用者不一定非得要由所謂的 <quote>primary master</quote> 硬碟開機。
+ 有人發現最簡單、便宜的備份系統方式,就是再去買一顆一模一樣的硬碟,
+ 然後定期使用 <application>
+ Ghost</application> 或
<application>XCOPY</application>
- HNƱqĤ@wнƻsĤGwФWhC
- ҥHAĤ@wбF(iOfrayy)A
- NiHPzLվ BIOS }ǡA
- ӪβĤGwж}C
- oNߩ}AĤGwиĤ@(n jumper)P˪ĪGA
- tONOGΩߡC</para>
+ 以將資料從第一顆硬碟複製到第二顆硬碟上面去。
+ 所以,當第一顆硬碟掛了(可能是病毒或壞軌造成的),
+ 就可以輕鬆透過調整 BIOS 中的開機順序,
+ 而直接用第二顆硬碟開機。
+ 這跟將機殼拆開,把第二顆硬碟跟第一顆對調(要調 jumper)有同樣的效果,
+ 差別就是:不用拆機殼。</para>
<indexterm><primary>SCSI</primary></indexterm>
<indexterm><primary>BIOS</primary></indexterm>
- <para>~AY˦Q SCSI dtΡAq`] BIOS \
- SCSI ](̦hi 7 )FܶǪ\C</para>
+ <para>此外,若裝有比較貴的 SCSI 卡系統,通常本身也有 BIOS 的功能來讓
+ SCSI 設備(最多可到 7 個)達到類似改變順序的功能。</para>
- <para>ߺDWz覡ϥΪ̫ܥi|PYA]b FreeBSD ëDpA
- FreeBSD |Ѧ BIOS ]wȡAӥB]఻ <quote>logical BIOS
- drive mapping</quote> ]wC o|HPıܺôbANO@˪wСA
- ӥBƤ]qt@ƻsLӡAGoSkHe˥ΡC</para>
+ <para>習慣上述方式的使用者很可能會感到驚訝,因為在 FreeBSD 中並非如此,
+ FreeBSD 不會參考 BIOS 設定值,而且也不能偵測 <quote>logical BIOS
+ drive mapping</quote> 設定。 這會讓人感覺很疑惑,明明就是一樣的硬碟,
+ 而且資料也完全從另一顆複製過來,結果卻沒辦法像以前那樣用。</para>
- <para>ϥ FreeBSD ɭԡAбN BIOS wж}ǽզ^쥻`ǡA
- åBHᤣnAo]wCpGzݭnwжǪܡAХεw覡A
- }ߡA jumper αƽuYiC</para>
+ <para>使用 FreeBSD 的時候,請將 BIOS 中的硬碟開機順序調回原本正常的順序,
+ 並且以後不要再改這設定。如果您需要切換硬碟順序的話,那請用硬體方式,
+ 直接打開機殼,調 jumper 及排線即可。</para>
<sidebar>
- <title>@qpGơGBill Fred w˾I</title>
+ <title>一段小故事:Bill 及 Fred 的安裝歷險</title>
- <para>(Bill)Cw(Fred)ª Wintel FreeBSDC
- Lb@ SCSI w(ID O 0)ˤW FreeBSDC</para>
+ <para>比爾(Bill)打算幫佛列德(Fred)把舊的 Wintel 機器灌 FreeBSD。
+ 他在一顆 SCSI 硬碟(ID 是 0)裝上 FreeBSD。</para>
- <para>OCw}lΥLs FreeBSD tΡFOLFXѡALo{o
- SCSI ѵwеoͳ\hpDC ALN񺸻_oơC</para>
+ <para>於是佛列德開始用他新的 FreeBSD 系統;但是過了幾天,他發現這顆
+ SCSI 老硬碟發生許多小問題。 之後,他就跟比爾說起這件事。</para>
- <para>ƸgLXѫA񺸨MwOӸѨMDɭԤFA
- ҥHLq᭱жw <quote>ð</quote>
- X@Ӥ@Ҥ@˪wСAåBgLB surface ˴իA
- ܳow٥iΡA]A񺸱N ID զ 4A
- Mw˨CwA
- åBNƱqϺ 0 ƻsϺ 4C
- {bswи˦nFAӥBݰ_Ӧn@`F
- ҥHA񺸻{{bӥiH}lΥFC
- O SCSI BIOS ]w SCSI ID 4 }СA
- κϺ 4 s}AFreeBSD @]oܶQC</para>
+ <para>此事經過幾天後,比爾決定是該解決問題的時候了,
+ 所以他從後面房間的硬碟 <quote>收藏區</quote>
+ 內拿出一個一模一樣的硬碟,並且經過初步 surface 掃瞄測試後,
+ 顯示這顆硬碟還可堪用,因此,比爾將它的 ID 調成 4,
+ 然後安裝到佛列德的機器,
+ 並且將資料從磁碟 0 複製到磁碟 4。
+ 現在新硬碟裝好了,而且看起來好像一切正常;
+ 所以,比爾認為現在應該可以開始用它了。
+ 於是到 SCSI BIOS 中設定 SCSI ID 4 為開機碟,
+ 用磁碟 4 重新開機後,FreeBSD 一切跑得很順利。</para>
- <para>Cw~ΤFXѫA񺸸CwMwnӪIsG
- յۤɯ FreeBSD ݬݡC
- 񺸱N ID 0 wв(]D)åBSq <quote>ð</quote>
- F@@˪wШӡC
- MLΦCw}ϤzL FTP 覡NbowФWˤFs
- FreeBSDAw˹L{ܶQC</para>
+ <para>佛列德繼續用了幾天後,比爾跟佛列德決定要來玩點新的:
+ 試著升級 FreeBSD 看看。
+ 比爾將 ID 0 的硬碟移除(因為有問題)並且又從 <quote>收藏區</quote>
+ 中拿了一顆一樣的硬碟來。
+ 然後他用佛列德的開機磁片透過 FTP 方式將在這顆硬碟上裝了新版的
+ FreeBSD,安裝過程都很順利。</para>
- <para>CwΤFosXѫAıoܾAXΦbu{...
- OɭԱNHeb¨tΪu@ƽƻsLӤFC
- ]ACwN ID 4 SCSI w
- (̭q¨tΤƻsLӪ̷s) mount _ӡA
- GMo{b ID 4 wФWALHeҦƳFI</para>
+ <para>佛列德用了這新版本幾天後,覺得它很適合用在工程部門...
+ 是時候將以前放在舊系統的工作資料複製過來了。
+ 因此,佛列德將 ID 4 的 SCSI 硬碟
+ (裡面有放從舊系統中複製過來的最新資料)先 mount 起來,
+ 結果竟然發現在 ID 4 的硬碟上,他以前的所有資料都不見了!</para>
- <para>_ǡAƨ쩳O]̥hFOH</para>
+ <para>奇怪,資料到底是跑到哪裡去了呢?</para>
- <para>ӡA񺸱N ID 0 wЪƽƻs ID 4 wЪɭԡA
- ID 4 Nܦ <quote>sƻs~(new clone)</quote>C
- ӷL SCSI BIOS ]w ID 4 }СAQtαq ID 4 }A
- oBJuOLۤvdVFA
- ]j@~tΥiHǥѽ BIOS ]wHܶ}ǡA
- O FreeBSD o|}٭즨`ҦA
- ]ACw FreeBSD ٬Oq̪쪺 ID 0 wж}C
- ƹWAҦƳ٦bGƳ̪쪺wФWA
- ӤObLQ ID 4 wСC</para>
+ <para>原來,當初比爾將 ID 0 硬碟的資料複製到 ID 4 硬碟的時候,
+ ID 4 就變成 <quote>新的複製品(new clone)</quote>。
+ 而當他調 SCSI BIOS 設定 ID 4 為開機碟,想讓系統從 ID 4 開機,
+ 這步驟其實只是他自己搞混了,
+ 因為大部分的作業系統可以藉由調 BIOS 設定以改變開機順序,
+ 但是 FreeBSD 卻會把開機順序還原成正常的模式,
+ 因此,佛列德的 FreeBSD 還是從最初的那顆 ID 0 硬碟開機的。
+ 事實上,所有的資料都還在故事最初的那顆硬碟上,
+ 而不是在他想像中的 ID 4 硬碟。</para>
- <para>ڭ̫ܰbo{oƮɡAǸƳ٦bA
- ڭ̧Ʊq̪쪺 ID 0 wШXӨåٵCw
- (ӥB񺸤]qAѤF 0 n....)C</para>
+ <para>我們很高興在發現這件事時,那些資料都還在,
+ 我們把資料從最初的那顆 ID 0 硬碟取出來並交還給佛列德
+ (而且比爾也從此瞭解了 0 的重要....)。</para>
- <para>Mڭ̳o䪺ҤlO SCSI wСA
- OۦP[]iHMΦb IDE wФWC</para>
+ <para>雖然我們這邊的例子是用 SCSI 硬碟,
+ 但是相同的觀念也可以套用在 IDE 硬碟上。</para>
</sidebar>
</sect2>
<sect2 xml:id="main-fdisk">
- <title>H FDisk ӫإߤκϰ(Slices)</title>
+ <title>以 FDisk 來建立分割磁區(Slices)</title>
<note>
- <para>boɭԱzҰܧ٤|ugJwФC
- pGAo{˿FAQnӤ@MܡA
- iHο} <application>sysinstall</application>A
- άO <keycap>U</keycap>
- <guimenuitem>Undo(^_)</guimenuitem> Ҧ]wC
- pGA˶äFӥBD}AAiHNqqAӡC
+ <para>在這時候您所做的變更都還不會真正寫入硬碟中。
+ 如果你發現弄錯了,想要重來一遍的話,
+ 可以用選單來離開 <application>sysinstall</application>,
+ 或是按 <keycap>U</keycap> 鍵來
+ <guimenuitem>Undo(回復)</guimenuitem> 所有設定。
+ 如果你弄亂了而且不知道怎麼離開,你可以直接將電腦電源關掉再重來。
</para>
</note>
- <para>b <application>sysinstall</application> DeܨϥμзǦw˫A
- ӷ|ݨUTG</para>
+ <para>在 <application>sysinstall</application> 主畫面選擇使用標準安裝後,
+ 應該會看到下面的訊息:</para>
<screen> Message
In the next menu, you will need to set up a DOS-style ("fdisk")
@@ -1376,14 +1376,14 @@ Mounting root from ufs:/dev/md0c
[ Press enter or space ]</screen>
- <para>oɽШ̵eA <keycap>Enter</keycap> C
- M|ݨ@ӦCAW|CXҦbwɩҧ쪺wСC
- <xref linkend="sysinstall-fdisk-drive1"/> dܪO
- IDE ϺоΡAoӺϺоOG
- <filename>ad0</filename> P <filename>ad2</filename>C</para>
+ <para>這時請依畫面說明,按 <keycap>Enter</keycap> 鍵。
+ 然後會看到一個列表,上面會列出所有在偵測硬體時所找到的硬碟。
+ <xref linkend="sysinstall-fdisk-drive1"/> 範例顯示的是有找到兩個
+ IDE 磁碟機的情形,這兩個磁碟機分別為:
+ <filename>ad0</filename> 與 <filename>ad2</filename>。</para>
<figure xml:id="sysinstall-fdisk-drive1">
- <title> FDisk nΪw</title>
+ <title>選擇 FDisk 要分割的硬碟</title>
<mediaobject>
<imageobject>
@@ -1392,54 +1392,54 @@ Mounting root from ufs:/dev/md0c
</mediaobject>
</figure>
- <para>Ai|n_A <filename>ad1</filename> SCbo̡C
- |FOH</para>
+ <para>你可能會好奇,為何 <filename>ad1</filename> 沒列在這裡。
+ 為什麼會不見了呢?</para>
- <para>շQApGz IDE wСA@ӬO primary masterA@ӬO secondary
- masterAo˷|oͤƩOH pG FreeBSD ̷ӧ쪺ǨӬL̩RWA
- pO <filename>ad0</filename> AӬO
- <filename>ad1</filename> N|X{xZC</para>
+ <para>試想,如果您有兩顆 IDE 硬碟,一個是 primary master,一個是 secondary
+ master,這樣會發生什麼事呢? 如果 FreeBSD 依照找到的順序來為他們命名,
+ 比如首先是 <filename>ad0</filename> 再來是
+ <filename>ad1</filename> 那麼就不會出現困擾。</para>
- <para>OA{bDӤFCpGz{bQb primary slave [˲ĤTwСA
- owЪWٴN|O <filename>ad1</filename>Ae쥻
- <filename>ad1</filename> N|ܦ <filename>ad2</filename>C
- o˷|yDOH ]w]ƪW(O
- <filename>ad1s1a</filename>)OΨӴMɮרtΪA
- ]zi|Mo{AɮרtαqLk`ܡA
- ק FreeBSD ]w(<filename>/etc/fstab</filename>)~iHTܡC
+ <para>但是,現在問題來了。如果您現在想在 primary slave 加裝第三顆硬碟,
+ 那麼這顆硬碟的名稱就會是 <filename>ad1</filename>,之前原本的
+ <filename>ad1</filename> 就會變成 <filename>ad2</filename>。
+ 這樣會造成什麼問題呢? 因為硬體設備的名稱(像是
+ <filename>ad1s1a</filename>)是用來尋找檔案系統的,
+ 因此您可能會突然發現,有些檔案系統從此無法正常顯示,
+ 必須修改 FreeBSD 設定(<filename>/etc/fstab</filename>)才可以正確顯示。
</para>
- <para>FѨMoӰDAb]w kernel ɥiHĥ IDE
- wЩҦbmөRWAӫDھڧ쪺ǡC ϥγoؤ覡ܡA
- b secondary master IDE
- wдN<emphasis>û</emphasis>|O <filename>ad2</filename>A
- YϨtΤèS <filename>ad0</filename>
- <filename>ad1</filename> ]vTC</para>
+ <para>為了解決這個問題,在設定 kernel 時可以採用 IDE
+ 硬碟所在的位置來命名,而非根據找到的順序。 使用這種方式的話,
+ 在 secondary master 的 IDE
+ 硬碟就<emphasis>永遠</emphasis>會是 <filename>ad2</filename>,
+ 即使系統中並沒有 <filename>ad0</filename> 或
+ <filename>ad1</filename> 也不受影響。</para>
- <para>ѩ󦹬 FreeBSD kernel w]]wA]NOWzeu
- <filename>ad0</filename> <filename>ad2</filename> GC
- eWoxwЬOO˦b primary H secondary ƽuW
- masterAoS˦b slave WC</para>
+ <para>由於此為 FreeBSD kernel 預設設定,也就是為何上述畫面只顯示
+ <filename>ad0</filename> 及 <filename>ad2</filename> 之故。
+ 畫面上這台機器的兩顆硬碟是分別裝在 primary 以及 secondary 排線上的
+ master,這兩顆都沒有裝在 slave 上。</para>
- <para>пnQw FreeBSD wСAMU &gui.ok;C ۴N|}l
- <application>FDisk</application>AM|ݨ <xref linkend="sysinstall-fdisk1"/> eC</para>
+ <para>請選好想安裝 FreeBSD 的硬碟,然後按下 &gui.ok;。 接著就會開始
+ <application>FDisk</application>,然後會看到類似 <xref linkend="sysinstall-fdisk1"/> 的畫面。</para>
- <para><application>FDisk</application> ܵeTӳC</para>
+ <para><application>FDisk</application> 的顯示畫面分為三個部分。</para>
- <para>Ĥ@Oe̤W誺eAo̷|ܥثeҿ諸wиTA
- ]Ab FreeBSD W١Bw geometryBw`eqC</para>
+ <para>第一部份是畫面最上方的前兩行,這裡會顯示目前所選的硬碟資訊,
+ 包括它在 FreeBSD 的名稱、硬碟 geometry、硬碟總容量。</para>
- <para>ĤG|ܥثeҿ諸wФW slice HΦU slice _mB
- ҦeqBFreeBSD W١ByzBlO(sub-type)C ҤlܥX 2
- ӤpåB|ϥΪ sliceAoO PC wХ[cvTGC ~A
- ٦@Ӥj <acronym>FAT</acronym> slice(q`O &ms-dos; /
- &windows; <filename>C:</filename>)AHΤ@өϺФΰ
- (b &ms-dos; / &windows; LϺХN)C</para>
+ <para>第二部分會顯示目前所選的硬碟上有哪些 slice 以及各 slice 的起末位置、
+ 所佔容量、FreeBSD 名稱、描述說明、子類別(sub-type)。 例子中顯示出有 2
+ 個小的並且尚未使用的 slice,這是受到 PC 的硬碟本身架構影響之故。 此外,
+ 還有一個大的 <acronym>FAT</acronym> slice(通常是 &ms-dos; /
+ &windows; 中的 <filename>C:</filename>),以及一個延伸磁碟分割區
+ (在 &ms-dos; / &windows; 內的其他磁碟代號)。</para>
- <para>ĤTh <application>FDisk</application> iΪOC</para>
+ <para>第三部分則顯示 <application>FDisk</application> 可用的指令。</para>
<figure xml:id="sysinstall-fdisk1">
- <title>(|)se Fdisk ΰ(Partition)</title>
+ <title>(舉例)未編輯前的 Fdisk 分割區(Partition)</title>
<mediaobject>
<imageobject>
@@ -1448,33 +1448,33 @@ Mounting root from ufs:/dev/md0c
</mediaobject>
</figure>
- <para>UӭnơAznεwЦC</para>
+ <para>接下來要做的事,跟您要怎麼分割硬碟有關。</para>
- <para>Yn FreeBSD ϥξw(y᪺w˷|AnzT{H
- <application>sysinstall</application> ~wˡA
- N|MӵwФW)ANiH <keycap>A</keycap> (
- <guimenuitem>Use Entire Disk</guimenuitem>)AHRҦJs sliceA
- ӥNO@ӤpüХܬ <literal>unused</literal>(P˪Ao]O
- PC wЬ[cҳy) sliceAHΤ@Ӥj FreeBSD sliceC A
- ХΤVβܸ FreeBSD sliceAM <keycap>S</keycap>
- HKN slice Ь} sliceC
- ɪe <xref linkend="sysinstall-fdisk2"/>C Ъ`NG
- b <literal>Flags</literal> 쪺 <literal>A</literal> Ȫܸ slice
- ݩ <emphasis>active</emphasis>A]|Ѧ slice Ӷ}C</para>
+ <para>若要讓 FreeBSD 使用整顆硬碟(稍後的安裝會再要您確認以
+ <application>sysinstall</application> 來繼續安裝,
+ 就會清除該硬碟內上的資料),那麼就可以按 <keycap>A</keycap> 鍵(
+ <guimenuitem>Use Entire Disk</guimenuitem>),以刪除所有既存的 slice,
+ 取而代之的是一個小的並標示為 <literal>unused</literal>(同樣的,這也是
+ PC 硬碟架構所造成)的 slice,以及一個大的 FreeBSD slice。 之後,
+ 請用方向鍵把光棒移至該 FreeBSD slice,然後按 <keycap>S</keycap>
+ 鍵以便將此 slice 標為開機 slice。
+ 此時的畫面應該類似 <xref linkend="sysinstall-fdisk2"/>。 請注意:
+ 在 <literal>Flags</literal> 欄位的 <literal>A</literal> 值表示該 slice
+ 屬於 <emphasis>active</emphasis>,也會由此 slice 來開機。</para>
- <para>YnR{ slice HXŶ FreeBSD ϥΡAiHβnR
- slice <keycap>D</keycap> AMA <keycap>C</keycap> A
- ɷ|X{ܮءAпJnsW slice jpAJXAjp
- <keycap>Enter</keycap> YiC ӹw]ȬitŶ̤jȡA
- iHO̤jΩ|twФjpC</para>
+ <para>若要刪除現有 slice 以挪出空間給 FreeBSD 使用,可以把光棒移到要刪除的
+ slice 後按 <keycap>D</keycap> 鍵,然後再按 <keycap>C</keycap> 鍵,
+ 此時會出現對話框,請輸入要新增的 slice 大小為何,輸入合適大小之後按
+ <keycap>Enter</keycap> 鍵即可。 該預設值為可分配空間的最大值,
+ 可以是最大的或尚未分配的整顆硬碟大小。</para>
- <para>Ywإߧ FreeBSD Ŷ(zL
- <application>&partitionmagic;</application> u)AiH
- <keycap>C</keycap> HsW sliceCPˤ]|ܮإX{AӰݷQnsW
- slice jpC</para>
+ <para>若已建立完畢給 FreeBSD 的空間(透過類似
+ <application>&partitionmagic;</application> 之類的工具),那麼可以按
+ <keycap>C</keycap> 鍵以新增 slice。同樣也會有對話框出現,來問想要新增的
+ slice 大小為何。</para>
<figure xml:id="sysinstall-fdisk2">
- <title>Fdisk ĥξwЧ@ΰ(Partition)</title>
+ <title>Fdisk 採用整顆硬碟作分割區(Partition)</title>
<mediaobject>
<imageobject>
@@ -1483,37 +1483,37 @@ Mounting root from ufs:/dev/md0c
</mediaobject>
</figure>
- <para>Ы <keycap>Q</keycap> C oǧ|Ȧs
- <application>sysinstall</application> ϥΡA٤|ugJw
- C</para>
+ <para>完畢後請按 <keycap>Q</keycap> 鍵。 這些更改會暫存給
+ <application>sysinstall</application> 使用,但還不會真正寫入到硬碟
+ 。</para>
</sect2>
<sect2 xml:id="bootmgr">
- <title>w Boot Manager</title>
+ <title>安裝 Boot Manager</title>
- <para>{biHܬO_n boot managerC @ӨA
- JUCp~|ݭn boot managerG</para>
+ <para>現在可以選擇是否要裝 boot manager。 一般而言,
+ 遇到下列情況才會需要裝 boot manager:</para>
<itemizedlist>
<listitem>
- <para>@ӥHWwСA FreeBSD ëD˦bĤ@ӵwФWC</para>
+ <para>有一個以上的硬碟,而 FreeBSD 並非裝在第一個硬碟上。</para>
</listitem>
<listitem>
- <para>P@wФWF FreeBSD ~A٦˨L@~tΡA
- ҥHݭnb}ɿܭniJӧ@~tΡC</para>
+ <para>同一顆硬碟上除了有裝 FreeBSD 之外,還有裝其他作業系統,
+ 所以需要在開機時選擇要進入哪個作業系統。</para>
</listitem>
</itemizedlist>
- <para>Yu FreeBSDAåBO˦bĤ@wСA
- <guimenuitem>Standard</guimenuitem> YiC YwgϥΨL
- boot manager i}iJ FreeBSD п <guimenuitem>None</guimenuitem>
- YiC</para>
+ <para>若只裝 FreeBSD,並且是裝在第一顆硬碟,那麼選
+ <guimenuitem>Standard</guimenuitem> 即可。 若已經有使用其他的
+ boot manager 可開機進入 FreeBSD 那麼請選 <guimenuitem>None</guimenuitem>
+ 即可。</para>
- <para>Ш̦ۨݨDPpܡAM <keycap>Enter</keycap> C</para>
+ <para>請依自身需求與情況做抉擇,然後按 <keycap>Enter</keycap> 鍵。</para>
<figure xml:id="sysinstall-bootmgr">
- <title>Sysinstall Boot Manager </title>
+ <title>Sysinstall 的 Boot Manager 選單</title>
<mediaobject>
<imageobject>
@@ -1522,25 +1522,25 @@ Mounting root from ufs:/dev/md0c
</mediaobject>
</figure>
- <para> <keycap>F1</keycap> |P@~tΦ@sɡA
- iJ쪺DC</para>
+ <para>按 <keycap>F1</keycap> 會有不同作業系統共存時,
+ 有可能遇到的相關問題說明。</para>
</sect2>
<sect2>
- <title>bLwФWإߤκϰ(Slices)</title>
+ <title>在其他硬碟上建立分割磁區(Slices)</title>
- <para>Y@ӥHWwСAb粒 boot manager
- |A^ܵwЪeC Yn FreeBSD ˦bhӵwФWA
- iHbܨLwСAíƨϥ <application>FDisk</application>
- ӫإ slice C</para>
+ <para>若有一個以上的硬碟,那麼在選完 boot manager
+ 之後會再回到選擇硬碟的畫面。 若要把 FreeBSD 裝在多個硬碟上,
+ 那麼可以在此選擇其他硬碟,並重複使用 <application>FDisk</application>
+ 來建立 slice 。</para>
<important>
- <para>YĤ@wФO FreeBSD ܡAC@Nn FreeBSD boot
- manager ~iHC</para>
+ <para>若第一顆硬碟不是裝 FreeBSD 的話,那麼每一顆就要都裝 FreeBSD boot
+ manager 才可以。</para>
</important>
<figure xml:id="sysinstall-fdisk-drive2">
- <title>}yܵwСze</title>
+ <title>離開『選擇硬碟』畫面</title>
<mediaobject>
<imageobject>
@@ -1549,33 +1549,33 @@ Mounting root from ufs:/dev/md0c
</mediaobject>
</figure>
- <para><keycap>Tab</keycap> iHb̫ܪwХH &gui.ok;B
- &gui.cancel; iC</para>
+ <para><keycap>Tab</keycap> 鍵可以在最後選擇的硬碟以及 &gui.ok;、
+ &gui.cancel; 之間進行切換。</para>
- <para>@ <keycap>Tab</keycap> | &gui.ok;AMA
- <keycap>Enter</keycap> H~wˡC</para>
+ <para>先按一次 <keycap>Tab</keycap> 會先移到 &gui.ok;,然後再按
+ <keycap>Enter</keycap> 鍵以繼續安裝。</para>
</sect2>
<sect2 xml:id="bsdlabeleditor">
- <title>H <application>Disklabel</application> ӫإߤΰ(Partitions)
+ <title>以 <application>Disklabel</application> 來建立分割區(Partitions)
</title>
- <para>{bbإߦn slice W@ǤΰϡC Ъ`NG
- CӤΰϪNOq <literal>a</literal> <literal>h</literal>A
- ~ <literal>b</literal>B<literal>c</literal>B<literal>d</literal>
- q`OSγ~AHNܰʡC</para>
+ <para>現在必須在剛建立好的 slice 規劃一些分割區。 請注意:
+ 每個分割區的代號是從 <literal>a</literal> 到 <literal>h</literal>,
+ 此外 <literal>b</literal>、<literal>c</literal>、<literal>d</literal>
+ 通常是特殊用途,不該隨意變動。</para>
- <para>ǵ{iHzLSΤ覡ӹFnĪGA
- רOΰϬObPwФWɭԡC OA{bOzĤ@ FreeBSDA
- ҥHФnhдoӦpεwФ~nC ̭nOA˦n FreeBSD
- MDzߦp󵽥ΤC FreeBSD @w{תxAiHHɭ
- FreeBSDAçܤΪ覡C</para>
+ <para>有些程式可以透過特殊的分割方式而達到更好的效果,
+ 尤其是分割區是分散在不同硬碟上的時候。 但是,現在是您第一次裝 FreeBSD,
+ 所以請不要去煩惱該如何分割硬碟才好。 最重要的是,裝好 FreeBSD
+ 然後學習如何善用之。 當對 FreeBSD 有一定程度的熟悉之後,可以隨時重裝
+ FreeBSD,並改變分割的方式。</para>
- <para>UҤl|Ӥΰ &mdash; 䤤@ӬO swap ŶAi
- LTӬOɮרtΡC</para>
+ <para>下面例子有四個分割區 &mdash; 其中一個是 swap 空間,i
+ 其他三個是檔案系統。</para>
<table frame="none" pgwide="1">
- <title>Ĥ@wЪΰ(Partition)tm</title>
+ <title>第一顆硬碟的分割區(Partition)配置</title>
<tgroup cols="4">
<colspec colwidth="1*"/>
@@ -1585,13 +1585,13 @@ Mounting root from ufs:/dev/md0c
<thead>
<row>
- <entry>ΰ</entry>
+ <entry>分割區</entry>
- <entry>ɮרt</entry>
+ <entry>檔案系統</entry>
- <entry>jp</entry>
+ <entry>大小</entry>
- <entry></entry>
+ <entry>介紹</entry>
</row>
</thead>
@@ -1603,14 +1603,14 @@ Mounting root from ufs:/dev/md0c
<entry>128&nbsp;MB</entry>
- <entry>ڥؿɮרt(root filesystem)C
- Lɮרtγ|bڥؿUC 128&nbsp;MB
- ɮרtΨӻO۷XzjpA
- ]q`ǫä|ӦhơAӦb FreeBSD ˧|Ψ
- 40&nbsp;MB ڥؿŶC ѤUŶO{ɸƥΪA
- ~]ӭnwd@ǪŶA]᪺ FreeBSD
- i|ݭnh <filename>/</filename>(ڥؿ) Ŷ
- C</entry>
+ <entry>此為根目錄檔案系統(root filesystem)。
+ 其他的檔案系統都會掛載在根目錄之下。 128&nbsp;MB
+ 對於此檔案系統來說是相當合理的大小,
+ 因為通常這裡並不會放太多資料,而在 FreeBSD 裝完後會用到約
+ 40&nbsp;MB 的根目錄空間。 剩下的空間是放臨時資料用的,
+ 此外也應該要預留一些空間,因為日後的 FreeBSD
+ 版本可能會需要更多的 <filename>/</filename>(根目錄) 空間
+ 。</entry>
</row>
<row>
@@ -1618,21 +1618,21 @@ Mounting root from ufs:/dev/md0c
<entry>N/A</entry>
- <entry>RAM 2~3 </entry>
+ <entry>RAM 的 2~3 倍</entry>
- <entry><para>tΪ swap ŶOb <literal>b</literal> ΰϡC
- pܾAX swap ŶjpiO@ǰݡC @ӻA
- swap ŶӬOO(RAM)jp 2 3 C ~Aswap
- ܤֻݭn 64&nbsp;MBA]Y RAM p 32&nbsp;MB ܡAЧ
- swap jp] 64&nbsp;MBC</para><para>
+ <entry><para>系統的 swap 空間是放在 <literal>b</literal> 分割區。
+ 如何選擇適合的 swap 空間大小可是一門學問。 一般來說,
+ swap 空間應該是記憶體(RAM)大小的 2 或 3 倍。 此外,swap
+ 至少需要 64&nbsp;MB,因此若 RAM 小於 32&nbsp;MB 的話,請把
+ swap 大小設為 64&nbsp;MB。</para><para>
- Y@ӥHWwСAhiHbCӵwгtm swap ŶC
- FreeBSD |ΨCӵwФW swap ŶAp@ӫK঳Ĵ
- swap ʯC YzݳopAХX`@ݭn swap `jp
- (pG128&nbsp;MB)AMᰣHwмƶq(pGw)A
- o˺XӪGNOCӵwФWһݰtm swap jpA
- boӨҤlAhCӵwЩһݤ swap Ŷ 64&nbsp;MB
- C</para></entry>
+ 若有一個以上的硬碟,則可以在每個硬碟都配置 swap 空間。
+ FreeBSD 會善用每個硬碟上的 swap 空間,如此一來便能有效提高
+ swap 的性能。 若您屬這類情況,請先算出總共需要的 swap 總大小
+ (比如:128&nbsp;MB),然後除以全部的硬碟數量(比如:兩顆硬碟),
+ 這樣算出來的結果就是每個硬碟上所需配置的 swap 大小,
+ 在這個例子中,則每個硬碟所需之 swap 空間為 64&nbsp;MB
+ 。</para></entry>
</row>
<row>
@@ -1642,11 +1642,11 @@ Mounting root from ufs:/dev/md0c
<entry>256&nbsp;MB</entry>
- <entry><filename>/var</filename> ؿ|ɮצܦhءAO log
- ɮץHΨLtκ޲zɮסC oɮפjO FreeBSD
- CB@ҷ|ŪBgC oɮץt~Mɮרt(Y
- <filename>/var</filename>) hiH̨ΤƳoɮתsA
- ӤPvTLؿsC</entry>
+ <entry><filename>/var</filename> 目錄會放的檔案有很多種,像是 log
+ 檔案以及其他的系統管理檔案。 這些檔案大部分都是 FreeBSD
+ 每日運作所會讀、寫。 把這些檔案另外放到專門的檔案系統(即
+ <filename>/var</filename>) 則可以最佳化這些檔案的存取,
+ 而不致於影響其他目錄的存取。</entry>
</row>
<row>
@@ -1654,21 +1654,21 @@ Mounting root from ufs:/dev/md0c
<entry><filename>/usr</filename></entry>
- <entry>ѾlwЪŶ</entry>
+ <entry>剩餘的硬碟空間</entry>
- <entry>ҦLɮ׳q`|sb <filename>/usr</filename>
- ΨlؿC</entry>
+ <entry>所有其他檔案通常會存在 <filename>/usr</filename>
+ 及其子目錄內。</entry>
</row>
</tbody>
</tgroup>
</table>
- <para>Yn FreeBSD ˦bhӵwФWA򥲶bzҰtmL slice
- WsWΰϡC ²檺覡ANObCӵwФWإߤΰϡA@ӵ swap
- ŶAt@ӫhOɮרtΡC</para>
+ <para>若要把 FreeBSD 裝在多個硬碟上,那麼必須在您所配置的其他 slice
+ 上新增分割區。 最簡單的方式,就是在每個硬碟上建立分割區,一個給 swap
+ 空間,另一個則是檔案系統。</para>
<table frame="none" pgwide="1">
- <title>LwЪΰ(Partition)tm</title>
+ <title>其他硬碟的分割區(Partition)配置</title>
<tgroup cols="4">
<colspec colwidth="1*"/>
@@ -1678,13 +1678,13 @@ Mounting root from ufs:/dev/md0c
<thead>
<row>
- <entry>ΰ</entry>
+ <entry>分割區</entry>
- <entry>ɮרt</entry>
+ <entry>檔案系統</entry>
- <entry>jp</entry>
+ <entry>大小</entry>
- <entry></entry>
+ <entry>介紹</entry>
</row>
</thead>
@@ -1694,11 +1694,11 @@ Mounting root from ufs:/dev/md0c
<entry>N/A</entry>
- <entry>аѾ\k</entry>
+ <entry>請參閱右側的介紹</entry>
- <entry>eLAswap ŶOiHUwСC YϨSϥ
- <literal>a</literal> ΰϡAߺDW٬O| swap Ŷ]
- <literal>b</literal> ΰϡC</entry>
+ <entry>前面有提過,swap 空間是可以跨各硬碟。 即使沒有使用
+ <literal>a</literal> 分割區,但習慣上還是會把 swap 空間設為
+ <literal>b</literal> 分割區。</entry>
</row>
<row>
@@ -1706,26 +1706,26 @@ Mounting root from ufs:/dev/md0c
<entry>/disk<replaceable>n</replaceable></entry>
- <entry>ѾlwЪŶ</entry>
+ <entry>剩餘的硬碟空間</entry>
- <entry>ѤUŶO@ӤjΰϡA²檺kONW
- <literal>a</literal> ΰϡAӤO <literal>e</literal>
- ΰϡC MӡAߺDW <literal>a</literal> ΰϬOOd
- ڥؿ(<filename>/</filename>)ҨϥΪC MA
- z@wn`ߺDA <application>sysinstall</application>
- |AҥHӥJ覡|Aw˧[MnBbC
- AiHoɮרtαbaAdҬOij⥦̱
- <filename>/diskn</filename> ؿA
- 䤤 <replaceable>n</replaceable> ƦrA
- h̦UwЪǦӦܤơC YzA
- ]iH⥦̱LaC</entry>
+ <entry>剩下的空間是一個大的分割區,最簡單的做法是將之規劃為
+ <literal>a</literal> 分割區,而不是 <literal>e</literal>
+ 分割區。 然而,習慣上 <literal>a</literal> 分割區是保留給
+ 根目錄(<filename>/</filename>)所使用的。 當然,
+ 您不一定要遵循此習慣,但 <application>sysinstall</application>
+ 本身會,所以照它既有的方式會讓你安裝更加清爽、潔淨。
+ 你可以把這些檔案系統掛載在任何地方,本範例是建議把它們掛載於
+ <filename>/diskn</filename> 目錄,
+ 其中的 <replaceable>n</replaceable> 的數字,
+ 則依各硬碟的順序而有所變化。 但若您高興,
+ 也可以把它們掛載於其他地方。</entry>
</row>
</tbody>
</tgroup>
</table>
- <para>ΰϰtmANiH <application>sysinstall</application>
- ӫإߤC z|ݨpUTG</para>
+ <para>完成分割區配置之後,就可以用 <application>sysinstall</application>
+ 來建立之。 您會看到如下訊息:</para>
<screen> Message
Now, you need to create BSD partitions inside of the fdisk
@@ -1738,27 +1738,27 @@ Mounting root from ufs:/dev/md0c
[ OK ]
[ Press enter or space ]</screen>
- <para>Ы <keycap>Enter</keycap> HiJ FreeBSD ΰϽs边As
- <application>Disklabel</application>C</para>
+ <para>請按 <keycap>Enter</keycap> 鍵以進入 FreeBSD 分割區編輯器,叫做
+ <application>Disklabel</application>。</para>
- <para><xref linkend="sysinstall-label"/> ܲĤ@
- <application>Disklabel</application> eA
- oeiϤTӰ϶C</para>
+ <para><xref linkend="sysinstall-label"/> 顯示第一次執行
+ <application>Disklabel</application> 的畫面,
+ 這畫面可區分為三個區塊。</para>
- <para>eXܪObs誺wСAHΥثebإߪ slice
- ΰϤWC(bBA<application>Disklabel</application> Oϥ
- <literal>Partition name</literal>(ΰϦW)AӫD slice W)C
- e]|ܥثe slice ٦h֪ŶiѨϥΡA
- yܻNO|wΰϪhlŶC</para>
+ <para>前幾行顯示的是正在編輯的硬碟,以及目前正在建立的 slice 位於哪個
+ 分割區上。(在此處,<application>Disklabel</application> 是使用
+ <literal>Partition name</literal>(分割區名稱),而非 slice 名稱)。
+ 此畫面也會顯示目前 slice 還有多少空間可供使用,
+ 換句話說就是尚未指定分割區的多餘空間。</para>
- <para>beAhܤwإߪΰϡBCӤΰϪɮרtΦW١B
- ҦjpAHΤ@ǰѼơC</para>
+ <para>在畫面中間,則顯示已建立的分割區、每個分割區的檔案系統名稱、
+ 所佔大小,以及一些參數。</para>
- <para>beUAh <application>Disklabel</application>
- iΪC</para>
+ <para>在畫面下方,則顯示 <application>Disklabel</application>
+ 可用的按鍵。</para>
<figure xml:id="sysinstall-label">
- <title>Sysinstall Disklabel s边</title>
+ <title>Sysinstall 的 Disklabel 編輯器</title>
<mediaobject>
<imageobject>
@@ -1767,20 +1767,20 @@ Mounting root from ufs:/dev/md0c
</mediaobject>
</figure>
- <para><application>Disklabel</application> i۰ʤtΰϡA
- ýᤩw]ȤjpA <keycap>A</keycap> Yi۰ʧC z|ݨ
- <xref linkend="sysinstall-label2"/> eC LA
- ѩҥΪwФjp@AҥH۰ʤtҳ]wjp@wXΡAnA
- z@woϥιw]jp~iHC</para>
+ <para><application>Disklabel</application> 可自動分配分割區,
+ 並賦予預設值大小,按 <keycap>A</keycap> 即可自動完成。 您會看到類似
+ <xref linkend="sysinstall-label2"/> 的畫面。 不過,
+ 由於所用的硬碟大小不一,所以自動分配所設定的大小不一定合用,不要緊,
+ 您不一定得使用預設大小才可以。</para>
<note>
- <para>w]| <filename>/tmp</filename> ؿ@WߤΰϡA
- ӫDݩ <filename>/</filename> UC p@ӡA
- iקK <filename>/</filename> |Q@{ɮ׶zC</para>
+ <para>預設會給 <filename>/tmp</filename> 目錄作為獨立分割區,
+ 而非附屬於 <filename>/</filename> 之下。 如此一來,
+ 可避免 <filename>/</filename> 會被一堆臨時檔案塞爆。</para>
</note>
<figure xml:id="sysinstall-label2">
- <title>Sysinstall Disklabel s边 X ϥΦ۰ʤt</title>
+ <title>Sysinstall 的 Disklabel 編輯器 — 使用自動分配</title>
<mediaobject>
<imageobject>
@@ -1789,31 +1789,31 @@ Mounting root from ufs:/dev/md0c
</mediaobject>
</figure>
- <para>pGzQΦ۰ʤtΰϦӧƱۦ]wA
- ХΤVܲĤ@ӤΰϡAëU <keycap>D</keycap> RC
- Ʀʧ@RҦΰϡC</para>
+ <para>如果您不想用自動分配分割區而希望自行設定,
+ 請用方向鍵選擇第一個分割區,並按下 <keycap>D</keycap> 刪除之。
+ 重複此動作直到刪除所有分割區。</para>
- <para>إ߲Ĥ@Ӥΰ(<literal>a</literal>A
- <filename>/</filename> &mdash; ڥؿ)A
- Цbe̤WܥTϺФκϰ(slice)ëU
- <keycap>C</keycap>C UӱNX{ܮءA
- |nDJsΰϤjp(p <xref linkend="sysinstall-label-add"/> ҥ)
- C oiHJH block A
- Ϊ̬OH <literal>M</literal>(MB)B
- ΥH <literal>G</literal>(GB)A
- Ϊ̥H <literal>C</literal>(ϬWAcylinders) C</para>
+ <para>建立第一個分割區(<literal>a</literal>,掛載為
+ <filename>/</filename> &mdash; 根目錄),
+ 請在畫面最上方選擇正確的磁碟分割磁區(slice)並按下
+ <keycap>C</keycap>。 接下來將出現對話框,
+ 會要求輸入新的分割區大小(如 <xref linkend="sysinstall-label-add"/> 所示)
+ 。 這邊可以直接輸入以 block 為單位,
+ 或者是以 <literal>M</literal>(MB)為單位、
+ 或以 <literal>G</literal>(GB)為單位,
+ 或者以 <literal>C</literal>(磁柱,cylinders) 為單位。</para>
- <note><para> FreeBSD&nbsp;5.X _Ahiϥ
- <literal>Custom Newfs</literal> ﶵӥ <acronym>UFS2</acronym>
- (q &os;&nbsp;5.1 _AYw])C YOϥ
- <literal>Auto Defaults</literal> ۰ʹw]pUAhiHA
- <literal>Custom Newfs</literal> ﶵAΪ̦bإɮרtήɫw
- <option>-O 2</option> ѼƥiC Y <literal>Custom Newfs</literal>
- ﶵܡAhOѤFn[W <option>-U</option> ӱҥ SoftUpdates
- \I </para></note>
+ <note><para>自 FreeBSD&nbsp;5.X 起,則可使用
+ <literal>Custom Newfs</literal> 選項來用 <acronym>UFS2</acronym>
+ (從 &os;&nbsp;5.1 起,此即為預設值)。 若是使用
+ <literal>Auto Defaults</literal> 自動預設的情況下,則可以再用
+ <literal>Custom Newfs</literal> 選項,或者在建立檔案系統時指定
+ <option>-O 2</option> 參數亦可。 若用 <literal>Custom Newfs</literal>
+ 選項的話,則別忘了要加上 <option>-U</option> 來啟用 SoftUpdates
+ 功能! </para></note>
<figure xml:id="sysinstall-label-add">
- <title>ڥؿŶt</title>
+ <title>根目錄的空間分配</title>
<mediaobject>
<imageobject>
@@ -1822,14 +1822,14 @@ Mounting root from ufs:/dev/md0c
</mediaobject>
</figure>
- <para>Bw]ܪjpA|O slice ҦŶC
- YnĥΥeҤlҤЪjpAh <keycap>Backspace</keycap>
- ӮoǼƦrAÿJҤl <userinput>128M</userinput>Ap
- <xref linkend="sysinstall-label-add2"/> ҥܡC
- ۫U &gui.ok;C</para>
+ <para>此處預設顯示的大小,會是整個 slice 的所有空間。
+ 若要採用先前例子所介紹的劃分大小,則按 <keycap>Backspace</keycap>
+ 鍵來消除這些數字,並輸入例子中的 <userinput>128M</userinput>,如
+ <xref linkend="sysinstall-label-add2"/> 所示。
+ 接著按下 &gui.ok;。</para>
<figure xml:id="sysinstall-label-add2">
- <title>קڥؿŶt</title>
+ <title>修改根目錄的空間分配</title>
<mediaobject>
<imageobject>
@@ -1838,13 +1838,13 @@ Mounting root from ufs:/dev/md0c
</mediaobject>
</figure>
- <para>bJ|ݩҭnإߪOɮרt(file system)Ϊ̬O swap ŶA
- p <xref linkend="sysinstall-label-type"/> ҥܡC
- Ĥ@ӿﶵɮרtΡAҥH <guimenuitem>FS</guimenuitem>
- U<keycap>Enter</keycap>C</para>
+ <para>在輸入之後會問所要建立的是檔案系統(file system)或者是 swap 空間,
+ 如 <xref linkend="sysinstall-label-type"/> 所示。
+ 第一個選項為檔案系統,所以選擇 <guimenuitem>FS</guimenuitem>
+ 後按下<keycap>Enter</keycap>。</para>
<figure xml:id="sysinstall-label-type">
- <title>ܤΰϪ</title>
+ <title>選擇分割區的類型</title>
<mediaobject>
<imageobject>
@@ -1853,13 +1853,13 @@ Mounting root from ufs:/dev/md0c
</mediaobject>
</figure>
- <para>̫A]nsWOɮרtΡAҥHiD
- <application>Disklabel</application> nN䱾ܦBC p <xref linkend="sysinstall-label-mount"/> ҥܡC ڥؿɮרt
- I <filename>/</filename>AҥHпJ <userinput>/</userinput>
- AMU <keycap>Enter</keycap>C</para>
+ <para>最後,因為要新增的是檔案系統,所以必須告訴
+ <application>Disklabel</application> 要將其掛載至何處。 如 <xref linkend="sysinstall-label-mount"/> 所示。 根目錄檔案系統
+ 的掛載點為 <filename>/</filename>,所以請輸入 <userinput>/</userinput>
+ ,然後按下 <keycap>Enter</keycap>。</para>
<figure xml:id="sysinstall-label-mount">
- <title>ܮڥؿI</title>
+ <title>選擇根目錄的掛載點</title>
<mediaobject>
<imageobject>
@@ -1868,16 +1868,16 @@ Mounting root from ufs:/dev/md0c
</mediaobject>
</figure>
- <para>ҫإߪΰϷ|ܦbeWAiHΤWzʧ@ӫإߨLΰϡC
- MӦbإ swap ΰϮɡAtΨä|ݭnA] swap
- ŶOB~C ~bإ̫߳ΰ <filename>/usr</filename>
- ɡAiHĥιw]jpA]NO slice ѾlҦŶC</para>
+ <para>剛所建立的分割區會顯示在畫面上,可以用上述類似動作來建立其他分割區。
+ 然而在建立 swap 分割區時,系統並不會問要掛載於哪邊,因為 swap
+ 空間是不必額外掛載的。 此外在建立最後分割區 <filename>/usr</filename>
+ 時,可以直接採用預設大小,也就是該 slice 剩餘的所有空間。</para>
- <para>̫ FreeBSD W DiskLabel s边e| <xref linkend="sysinstall-label4"/>AڼƦrh̦w˿ܦӦҤPC
- ЫU <keycap>Q</keycap> YiΰϳWC</para>
+ <para>最後 FreeBSD 上的 DiskLabel 編輯器畫面會類似 <xref linkend="sysinstall-label4"/>,實際數字則依安裝選擇而有所不同。
+ 請按下 <keycap>Q</keycap> 即可完成分割區規劃。</para>
<figure xml:id="sysinstall-label4">
- <title>Sysinstall Disklabel s边</title>
+ <title>Sysinstall Disklabel 編輯器</title>
<mediaobject>
<imageobject>
@@ -1889,37 +1889,37 @@ Mounting root from ufs:/dev/md0c
</sect1>
<sect1 xml:id="install-choosing">
- <title>ܷQnw˪</title>
+ <title>選擇想要安裝的</title>
<sect2 xml:id="distset">
- <title>ܭnw˪M(Distribution Set)</title>
+ <title>選擇要安裝的套件集(Distribution Set)</title>
- <para>n˭ǮMADnMӨtΪγ~κϺЪŶөwC
- wmMAq̤pw˨짹w˳C YO &unix; FreeBSD
- sAq`䤤@YiC
- ӦۭqMAXg窺HӥΡC</para>
+ <para>要裝哪些套件,主要取決於該系統的用途為何及磁碟空間而定。
+ 預置的套件,從最小安裝到完整安裝都有。 若是 &unix; 或 FreeBSD
+ 新手,通常直接選其中之一即可。
+ 而自訂套件比較適合有經驗的人來用。</para>
- <para>YnAѦUM󪺿ﶵӸ`TAЫ <keycap>F1</keycap> C
- ݧ <keycap>Enter</keycap> Y|^~MܵeC</para>
+ <para>若要瞭解各套件的選項細節資訊,請按 <keycap>F1</keycap> 鍵。
+ 看完之後按 <keycap>Enter</keycap> 即會回到剛才的套件選擇畫面。</para>
- <para>Yݭn GUI Aݥ[ <literal>X</literal>
- }YMC ܩ X server ]wέnέ@ୱ޲zAb
- &os; ˦n~iC X server ]wӸ`аѾ\ <xref linkend="x11"/>C</para>
+ <para>若需要 GUI 介面,那必需加選 <literal>X</literal>
+ 開頭的相關套件。 至於 X server 的設定及要用哪一類的桌面管理,必須在
+ &os; 裝好之後才能進行。 X server 設定細節部分請參閱 <xref linkend="x11"/>。</para>
- <para>w]w˪ X11 <application>&xorg;</application>C</para>
+ <para>預設安裝的 X11 版本為 <application>&xorg;</application>。</para>
- <para>Yݭnۭq kernelAݥ[靈t source code ﶵC
- ܩ󬰦ݦۭq kernel άӸ`AаѾ\
- <xref linkend="kernelconfig"/>C</para>
+ <para>若需要自訂 kernel,那麼需加選有含 source code 的選項。
+ 至於為何需自訂 kernel 及相關細節,請參閱
+ <xref linkend="kernelconfig"/>。</para>
- <para>ܩaA˴NΧxZݭnˤFC YwаjAХHV
- <xref linkend="distribution-set1"/> ϤU <guimenuitem>All</guimenuitem>
- ﶵAëU <keycap>Enter</keycap> YiC
- YwЪŶAШ̦ۨݨDܦwˡC Mbw˧A
- ٬OiH̻ݨDA[˨LMC</para>
+ <para>很明顯地,全部都裝就不用困擾需要裝什麼了。 若硬碟夠大,請以方向鍵選
+ <xref linkend="distribution-set1"/> 圖下的 <guimenuitem>All</guimenuitem>
+ 選項,並按下 <keycap>Enter</keycap> 即可。
+ 若硬碟空間不夠,請依自身需求選擇安裝。 當然在安裝完畢後,
+ 還是可以依需求再加裝其他套件。</para>
<figure xml:id="distribution-set1">
- <title>ܭn˪M(Distributions)</title>
+ <title>選擇要裝的套件集(Distributions)</title>
<mediaobject>
<imageobject>
@@ -1930,17 +1930,17 @@ Mounting root from ufs:/dev/md0c
</sect2>
<sect2 xml:id="portscol">
- <title>w Ports Collection</title>
+ <title>安裝 Ports Collection</title>
- <para>b˧M󶰤A۷|ݬO_n FreeBSD Ports MC Ports
- MiHzPw˦Uر`nAätdzn骺lXA
- ӬO@ӥ]tp۰ʤUBsĶBw third-party n骺ɮ׶XC
- <xref linkend="ports"/> |Цpϥ portsC</para>
+ <para>在裝完套件集之後,接著會問是否要裝 FreeBSD Ports 套件。 Ports
+ 套件可以讓您輕鬆安裝各種常見的軟體,它本身並不含那些軟體的原始碼,
+ 而是一個包含如何自動下載、編譯、安裝 third-party 軟體的檔案集合。
+ <xref linkend="ports"/> 會介紹如何使用 ports。</para>
- <para>w˵{ä|ˬdO_Ŷө ports treeA
- ҥHХT{ŶC ثe FreeBSD &rel.current; FreeBSD
- Ports Collection jݭn &ports.size; ŶC ]A
- iHs FreeBSD |ݭnhŶӸˡC</para>
+ <para>安裝程式並不會檢查是否有足夠空間來放 ports tree,
+ 所以請先確認有足夠空間。 目前 FreeBSD &rel.current; 的 FreeBSD
+ Ports Collection 大約需要 &ports.size; 的空間。 因此,
+ 可以推估更新版的 FreeBSD 會需要更多的空間來裝。</para>
<screen> User Confirmation Requested
Would you like to install the FreeBSD ports collection?
@@ -1961,12 +1961,12 @@ Mounting root from ufs:/dev/md0c
[ Yes ] No</screen>
- <para>ΤV &gui.yes; N| Ports CollectionA_hN
- &gui.no; HLC n <keycap>Enter</keycap> ~A
- M|A^ܮM󶰪eC</para>
+ <para>用方向鍵選 &gui.yes; 就會裝 Ports Collection,否則就選
+ &gui.no; 以略過。 選好後按 <keycap>Enter</keycap> 繼續,
+ 然後會再次回到選擇套件集的畫面。</para>
<figure xml:id="distribution-set2">
- <title>T{nw˪M</title>
+ <title>確認要安裝的套件集</title>
<mediaobject>
<imageobject>
@@ -1975,28 +1975,28 @@ Mounting root from ufs:/dev/md0c
</mediaobject>
</figure>
- <para>YnĿ諸سT{SDܡANHV
- <guimenuitem>Exit</guimenuitem> hXýT{ &gui.ok; AMI
- <keycap>Enter</keycap> ~C</para>
+ <para>若要勾選的項目都確認沒問題的話,就以方向鍵選
+ <guimenuitem>Exit</guimenuitem> 退出並確認 &gui.ok; 有選到,然後按I
+ <keycap>Enter</keycap> 繼續。</para>
</sect2>
</sect1>
<sect1 xml:id="install-media">
- <title>ܦw˨ӷ</title>
+ <title>選擇安裝來源</title>
- <para>Ynq CDROM DVD wˡAΤVNв
- <guimenuitem>Install from a FreeBSD CD/DVD</guimenuitem>AýTw
- &gui.ok; U <keycap>Enter</keycap> N|}lˤFC</para>
+ <para>若要從 CDROM 或 DVD 安裝,用方向鍵將游標移到
+ <guimenuitem>Install from a FreeBSD CD/DVD</guimenuitem>,並確定
+ 選 &gui.ok; 後按下 <keycap>Enter</keycap> 就會開始裝了。</para>
- <para>YOnΨL覡w˪ܡAпܾAw˨ӷA
- Mӿùܶiw˧YiC</para>
+ <para>若是要用其他的方式安裝的話,請選擇適當的安裝來源,
+ 然後遵照螢幕指示進行安裝即可。</para>
- <para> <keycap>F1</keycap> iHܰw惡(w˨ӷ)uWC
- @U <keycap>Enter</keycap> N|^yܦw˨ӷzeFC</para>
+ <para>按 <keycap>F1</keycap> 可以顯示針對此部分(安裝來源)的線上說明。
+ 按一下 <keycap>Enter</keycap> 就會回到『選擇安裝來源』的畫面了。</para>
<figure xml:id="choose-media">
- <title>ܦw˨ӷ</title>
+ <title>選擇安裝來源</title>
<mediaobject>
<imageobject>
@@ -2006,7 +2006,7 @@ Mounting root from ufs:/dev/md0c
</figure>
<note>
- <title>FTP w˼Ҧ</title>
+ <title>FTP 安裝模式</title>
<indexterm>
<primary>installation</primary>
@@ -2014,24 +2014,24 @@ Mounting root from ufs:/dev/md0c
<tertiary>FTP</tertiary>
</indexterm>
- <para>ϥ FTP w˪ܡATؼҦJDʦ(active)FTPB
- Qʦ(passive)FTP άOzL HTTP proxy serverC</para>
+ <para>使用 FTP 安裝的話,有分三種模式︰主動式(active)FTP、
+ 被動式(passive)FTP 或是透過 HTTP proxy server。</para>
<variablelist>
<varlistentry>
- <term>Dʦ FTPG<guimenuitem>q FTP server w</guimenuitem></term>
+ <term>主動式 FTP:<guimenuitem>從 FTP server 安裝</guimenuitem></term>
<listitem>
- <para>ӿﶵ|zL <quote>Active</quote> Ҧ@ FTP ǿʧ@C
- o|LkLAiΦbǸjB䴩QʼҦ FTP
- C Y FTP su|d(w]QʼҦ)A
- ЧﴫDʼҦݬݡI</para>
+ <para>該選項會透過 <quote>Active</quote> 模式作 FTP 傳輸動作。
+ 這會無法穿過防火牆,但可用在那些較古早、不支援被動模式的 FTP
+ 站。 若 FTP 連線會卡住(預設為被動模式),
+ 那請改換主動模式看看!</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>Qʦ FTPG<guimenuitem>zLAq FTP server
- w</guimenuitem></term>
+ <term>被動式 FTP:<guimenuitem>透過防火牆,從 FTP server
+ 安裝</guimenuitem></term>
<listitem>
<indexterm>
@@ -2039,15 +2039,15 @@ Mounting root from ufs:/dev/md0c
<secondary>passive mode</secondary>
</indexterm>
- <para>ӿﶵ| <application>sysinstall</application> {ϥ
- <quote>Passive(Qʦ)</quote> Ӷi FTP suA
- NiHLu\ϥΩTw TCP port sJC</para>
+ <para>該選項會讓 <application>sysinstall</application> 全程使用
+ <quote>Passive(被動式)</quote> 來進行 FTP 連線,
+ 就可以穿過只允許使用固定 TCP port 連入的防火牆。</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>zL HTTP proxy FTPG<guimenuitem>zL http proxy ӱq FTP
- w</guimenuitem></term>
+ <term>透過 HTTP proxy 的 FTP:<guimenuitem>透過 http proxy 來從 FTP
+ 站安裝</guimenuitem></term>
<listitem>
<indexterm>
@@ -2055,43 +2055,43 @@ Mounting root from ufs:/dev/md0c
<secondary>via a HTTP proxy</secondary>
</indexterm>
- <para>ӿﶵ| <application>sysinstall</application> FTP suA
- zL HTTP w(Ns@)s proxy serverA proxy
- server |ĶeLӪШDAMe FTP serverC
- oiHzu\ HTTP su\ FTP suC
- OonΤɡAw proxy server }C</para>
+ <para>該選項會讓 <application>sysinstall</application> 的 FTP 連線,
+ 先透過 HTTP 協定(就像網頁瀏覽器一樣)連到 proxy server,而 proxy
+ server 會解譯送過來的的請求,然後轉送給 FTP server。
+ 這可以穿透只允許 HTTP 連線但不允許 FTP 連線的防火牆。
+ 但記得要用之時,必須指定 proxy server 的位址。</para>
</listitem>
</varlistentry>
</variablelist>
- <para> proxy FTP server ӨAq`nbnJΪbW٫᭱A
- [W <quote>@</quote> ŸA[WnnJ server W١C MA
- proxy server N| <quote>fakes()</quote> u server ˤlC
- |ӨҤlAYn <systemitem class="fqdomainname">ftp.FreeBSD.org</systemitem> ӸˡA
- zL proxy FTP server ]NO
- <systemitem class="fqdomainname">foo.example.com</systemitem> åBϥ port 1234C</para>
+ <para>對 proxy FTP server 而言,通常要在登入用的帳號名稱後面,
+ 加上 <quote>@</quote> 符號再加上要登入的 server 名稱。 然後,
+ proxy server 就會 <quote>fakes(偽裝)</quote> 為真的 server 樣子。
+ 舉個例子,若要到 <systemitem class="fqdomainname">ftp.FreeBSD.org</systemitem> 來裝,
+ 但中間透過 proxy FTP server 也就是
+ <systemitem class="fqdomainname">foo.example.com</systemitem> 並且使用 port 1234。</para>
- <para>bpUAiH options AN FTP username ]
- <literal>ftp@ftp.FreeBSD.org</literal>AKXh]ۤv email HcC
- w˨ӷAhϥ FTP ( proxy 䴩ܡAN passive FTP)A
- URL h
- <literal>ftp://foo.example.com:1234/pub/FreeBSD</literal>C</para>
+ <para>在此情況下,可以到 options 選單,將 FTP username 設為
+ <literal>ftp@ftp.FreeBSD.org</literal>,密碼則設為自己的 email 信箱。
+ 安裝來源部分,則使用 FTP (或 proxy 有支援的話,就用 passive FTP),
+ 而 URL 則用
+ <literal>ftp://foo.example.com:1234/pub/FreeBSD</literal>。</para>
- <para>] <systemitem class="fqdomainname">ftp.FreeBSD.org</systemitem>
- <filename>/pub/FreeBSD</filename> |Q porxy
- <systemitem class="fqdomainname">foo.example.com</systemitem>AҥHNiHq
- <systemitem class="fqdomainname">foo.example.com</systemitem> <emphasis>ox</emphasis>
- (ox|q <systemitem class="fqdomainname">ftp.FreeBSD.org</systemitem> ɦ^ӵz)
- wˡC</para>
+ <para>因為 <systemitem class="fqdomainname">ftp.FreeBSD.org</systemitem> 的
+ <filename>/pub/FreeBSD</filename> 會被 porxy 到
+ <systemitem class="fqdomainname">foo.example.com</systemitem>,所以就可以從
+ <systemitem class="fqdomainname">foo.example.com</systemitem> <emphasis>這台</emphasis>
+ 機器(這台會從 <systemitem class="fqdomainname">ftp.FreeBSD.org</systemitem> 抓檔回來給您)
+ 安裝。</para>
</note>
</sect1>
<sect1 xml:id="install-final-warning">
- <title>}liw</title>
+ <title>開始進行安裝</title>
- <para>즹AiH}liwˤFA
- o]OzקKʨwЪ̫|C</para>
+ <para>到此為止,可以開始進行安裝了,
+ 這也是您避免更動到硬碟的最後機會。</para>
<screen> User Confirmation Requested
Last Chance! Are you SURE you want to continue the installation?
@@ -2103,14 +2103,14 @@ Mounting root from ufs:/dev/md0c
[ Yes ] No</screen>
- <para> &gui.yes; ëU
- <keycap>Enter</keycap>HT{un}lw</para>
+ <para>選擇 &gui.yes; 並按下
+ <keycap>Enter</keycap>以確認真的要開始安裝</para>
- <para>w˩һݮɶ|̾کҿܦw˪M(distribution)
- Bw˨ӷHιqtצӦҤPC
- bw˪L{A|@ǰTܥثew˶iסC</para>
+ <para>安裝所需時間會依據所選擇安裝的套件集(distribution)
+ 、安裝來源以及電腦速度而有所不同。
+ 在安裝的過程中,會有一些訊息顯示目前的安裝進度。</para>
- <para>zݨUTܤwgw˧FJ</para>
+ <para>當您看到下面的訊息表示已經安裝完成了︰</para>
<screen> Message
@@ -2126,11 +2126,11 @@ do so by typing: /usr/sbin/sysinstall.
[ Press enter or space ]</screen>
- <para>Ы <keycap>Enter</keycap> Ӷi]wC</para>
+ <para>請按 <keycap>Enter</keycap> 鍵來進行相關的後續設定。</para>
- <para>pG諸O &gui.no; ëU
- <keycap>Enter</keycap> A|_w(N|ʨA즳t)C
- ۡA|X{HUTG</para>
+ <para>如果剛選的是 &gui.no; 並按下
+ <keycap>Enter</keycap> 鍵,那麼會中斷安裝(就不會動到你的原有系統)。
+ 接著,會出現以下訊息:</para>
<screen> Message
Installation complete with some errors. You may wish to scroll
@@ -2140,36 +2140,36 @@ installation menus to retry whichever operations have failed.
[ OK ]</screen>
- <para>oqTDO]S˥F褧GAЫ <keycap>Enter</keycap> H^DeC</para>
+ <para>這段訊息乃是因為都沒裝任何東西之故,請按 <keycap>Enter</keycap> 以跳回主畫面。</para>
</sect1>
<sect1 xml:id="install-post">
- <title>w</title>
+ <title>後續安裝</title>
- <para>w˨tΦ\AiHbs˦n FreeBSD
- }eAΪ̬OƫAzL <command>sysinstall</command>
- (&os; 5.2 ehO <command>/stand/sysinstall</command>) M
- <guimenuitem>Configure</guimenuitem> ﶵHi]wC</para>
+ <para>安裝系統成功之後,可以在新裝好的 FreeBSD
+ 重開機之前,或者是事後再透過 <command>sysinstall</command>
+ (&os; 5.2 之前版本則是 <command>/stand/sysinstall</command>) 然後選擇
+ <guimenuitem>Configure</guimenuitem> 選項以進行後續設定。</para>
<sect2 xml:id="inst-network-dev">
- <title>]w</title>
+ <title>設定網路</title>
- <para>pGze]w PPP suzL FTP wˡAoӵeN|X{F
- pWһAziHyAC</para>
+ <para>如果您之前有設定用 PPP 連線透過 FTP 安裝,那麼這個畫面將不會出現;
+ 正如上面剛所說的,您可以稍後再做更改。</para>
- <para> LAN Χ FreeBSD ]w gateway router аѾ\ϥΤU
- <link linkend="advanced-networking">iB</link> `C</para>
+ <para>有關 LAN 或把 FreeBSD 設定為 gateway 或 router 請參閱使用手冊中有關
+ <link linkend="advanced-networking">網路進階運用</link> 的章節。</para>
<screen> User Confirmation Requested
Would you like to configure any Ethernet or SLIP/PPP network devices?
[ Yes ] No</screen>
- <para>pGn]wdAп &gui.yes; M <keycap>Enter</keycap>C
- _hп &gui.no; H~C</para>
+ <para>如果要設定網路卡,請選擇 &gui.yes; 然後按 <keycap>Enter</keycap>。
+ 否則請選 &gui.no; 以繼續。</para>
<figure xml:id="ed-config1">
- <title>ܺd</title>
+ <title>選擇網路卡</title>
<mediaobject>
<imageobject>
@@ -2178,39 +2178,39 @@ installation menus to retry whichever operations have failed.
</mediaobject>
</figure>
- <para>ΤVܱzn]wdAM <keycap>Enter</keycap>C</para>
+ <para>用方向鍵選擇您要設定的網路卡,然後按 <keycap>Enter</keycap>。</para>
<screen> User Confirmation Requested
Do you want to try IPv6 configuration of the interface?
Yes [ No ]</screen>
- <para>bpHϰpAѩثe Internet w
- (<acronym>IPv4</acronym>)ٺΡA
- ҥHп &gui.no; ]w <acronym>IPv6</acronym>AM
- <keycap>Enter</keycap>C</para>
+ <para>在私人區域網路的情況,由於目前的 Internet 協定
+ (<acronym>IPv4</acronym>)還算夠用,
+ 所以請選 &gui.no; 不設定 <acronym>IPv6</acronym>,然後按
+ <keycap>Enter</keycap>。</para>
- <para>YOzL <acronym>RA</acronym> server sJ
- <acronym>IPv6</acronym> ҡAN &gui.yes; ë
- <keycap>Enter</keycap>Atη|XhjM RA serverC</para>
+ <para>若是透過 <acronym>RA</acronym> server 連到既有的
+ <acronym>IPv6</acronym> 環境,那麼就選 &gui.yes; 並按
+ <keycap>Enter</keycap>,之後系統會花幾秒鐘去搜尋 RA server。</para>
<screen> User Confirmation Requested
Do you want to try DHCP configuration of the interface?
Yes [ No ]</screen>
- <para>UӡAYݭn DHCP (Dynamic Host Configuration Protocol)п
- &gui.no; ë<keycap>Enter</keycap>C</para>
+ <para>接下來,若不需要 DHCP (Dynamic Host Configuration Protocol)請選
+ &gui.no; 並按<keycap>Enter</keycap>。</para>
- <para> &gui.yes; ܡAh|
- <application>dhclient</application>AY\n IPA
- h|۰ʶWҳ]wAӸ`аѾ\ <xref linkend="network-dhcp"/>C</para>
+ <para>選擇 &gui.yes; 的話,則會執行
+ <application>dhclient</application>,若成功要到 IP,
+ 則其會自動填上相關的環境設定,細節請參閱 <xref linkend="network-dhcp"/>。</para>
- <para>U]wܦpbϰ(LAN)A
- NӾ]w gateway 覡G</para>
+ <para>下面的網路設定圖顯示如何在區域網路(LAN)中,
+ 將該機器設定為 gateway 的方式:</para>
<figure xml:id="ed-config2">
- <title>]w ed0 oid]w</title>
+ <title>設定 ed0 這張網路卡的網路設定</title>
<mediaobject>
<imageobject>
@@ -2219,25 +2219,25 @@ installation menus to retry whichever operations have failed.
</mediaobject>
</figure>
- <para>i <keycap>Tab</keycap> bU춡@A
- öWAXơG</para>
+ <para>可用 <keycap>Tab</keycap> 鍵在各欄位間作切換,
+ 並填上適合的資料:</para>
<variablelist>
<varlistentry>
- <term>Host(W)</term>
+ <term>Host(機器名稱)</term>
<listitem>
- <para>㪺W١AҦpҤ
- <systemitem class="fqdomainname">k6-2.example.com</systemitem>C</para>
+ <para>完整的機器名稱,例如本例中的
+ <systemitem class="fqdomainname">k6-2.example.com</systemitem>。</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>Domain()</term>
+ <term>Domain(網域)</term>
<listitem>
- <para>ݪW١AҦpҤ
- <systemitem class="fqdomainname">example.com</systemitem>C</para>
+ <para>機器所屬的網域名稱,例如本例中的
+ <systemitem class="fqdomainname">example.com</systemitem>。</para>
</listitem>
</varlistentry>
@@ -2245,22 +2245,22 @@ installation menus to retry whichever operations have failed.
<term>IPv4 Gateway</term>
<listitem>
- <para>o̽пJ Gateway IP }AitdNʥ]໼컷ݺC
- ub gateway ݩӺ䤤`I@ɡA~nJC
- YonӰϰ gateway ܡA
- <emphasis>ЫO欰ť</emphasis>C ~A
- q` IPv4 Gateway ]|Q{O default gateway
- default routeC</para>
+ <para>這裡請輸入 Gateway 的 IP 位址,其可負責將封包轉遞到遠端網路。
+ 只有在該 gateway 屬於該網路其中節點之一時,才要輸入。
+ 若這機器本身要做為該區域網路的 gateway 的話,
+ <emphasis>請保持本欄為空白</emphasis>。 此外,
+ 通常 IPv4 Gateway 也會被認為是 default gateway 或
+ default route。</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>Name server(Name server DNS server)</term>
+ <term>Name server(Name server 或 DNS server)</term>
<listitem>
- <para>ӺҥΪ DNS server IPC Ұ]ӾҦbS
- DNSAGWO ISP ҴѪ DNS server
- (<systemitem class="ipaddress">208.163.10.2</systemitem>)C</para>
+ <para>該網路所用的 DNS server 之 IP。 本例假設該機器所在的網路沒有
+ DNS,故填上的是該 ISP 所提供的 DNS server
+ (<systemitem class="ipaddress">208.163.10.2</systemitem>)。</para>
</listitem>
</varlistentry>
@@ -2398,7 +2398,7 @@ use the current settings.
</sect2>
<sect2 xml:id="ssh-login">
- <title>ҥ SSH nJ</title>
+ <title>啟用 SSH 登入</title>
<indexterm>
<primary>SSH</primary>
@@ -2409,10 +2409,10 @@ use the current settings.
Would you like to enable SSH login?
Yes [ No ]</screen>
- <para> &gui.yes; N|ҥ &man.sshd.8;A]NO
- <application>OpenSSH</application> daemon {C
- o|\ӾiqݦwnJC
- <application>OpenSSH</application> аѾ\ <xref linkend="openssh"/> C</para>
+ <para>選擇 &gui.yes; 就會啟用 &man.sshd.8;,也就是
+ <application>OpenSSH</application> 的 daemon 程式。
+ 這會允許該機器可從遠端安全登入。 關於
+ <application>OpenSSH</application> 請參閱 <xref linkend="openssh"/> 部分的說明。</para>
</sect2>
<sect2 xml:id="ftpanon">
@@ -3468,10 +3468,10 @@ Retype new password :</screen>
</sect2>
<sect2 xml:id="freebsdboot">
- <title>&os; }y{</title>
+ <title>&os; 開機流程</title>
<sect3 xml:id="freebsdboot-i386">
- <title>&os;/&arch.i386; }y{</title>
+ <title>&os;/&arch.i386; 的開機流程</title>
<para>If everything went well, you will see messages scroll
off the screen and you will arrive at a login prompt. You can view
@@ -3628,7 +3628,7 @@ Password:</screen>
</sect3>
<sect3>
- <title>&os;/&arch.alpha; }y{</title>
+ <title>&os;/&arch.alpha; 開機流程</title>
<indexterm><primary>Alpha</primary></indexterm>
@@ -3684,7 +3684,7 @@ Please press any key to reboot.</screen>
</sect1>
<sect1 xml:id="install-trouble">
- <title>w˪gѨM</title>
+ <title>安裝的疑難雜症解決</title>
<indexterm>
<primary>installation</primary>
@@ -3706,8 +3706,8 @@ Please press any key to reboot.</screen>
</link> document for your version of &os; to make sure
your hardware is supported.</para>
- <para>Yw馳b䴩M椺Aϥ <filename>GENERIC</filename> kernel
- DANiݭn <link linkend="kernelconfig">ۭq kernel</link>AH[J䴩wC
+ <para>若硬體有在支援清單內,但使用 <filename>GENERIC</filename> kernel
+ 仍有問題,那麼就可能需要 <link linkend="kernelconfig">自訂 kernel</link>,以加入有支援的硬體。
The kernel on the boot disks is configured
assuming that most hardware devices are in their factory default
configuration in terms of IRQs, IO addresses, and DMA channels. If
@@ -3941,7 +3941,7 @@ Please press any key to reboot.</screen>
</sect1>
<sect1 xml:id="install-advanced">
- <info><title>iw˫n</title>
+ <info><title>進階安裝指南</title>
<authorgroup>
<author><personname><firstname>Valentino</firstname><surname>Vaschetto</surname></personname><contrib>Contributed by </contrib></author>
<!-- May 2001 -->
@@ -4045,9 +4045,9 @@ Please press any key to reboot.</screen>
<screen>&prompt.root; <userinput>cu -l /dev/cuad0</userinput></screen>
- <para>b &os;&nbsp;5.XAЧ
- <filename>/dev/cuaa0</filename> ӫD
- <filename>/dev/cuad0</filename>C</para>
+ <para>在 &os;&nbsp;5.X,請改用
+ <filename>/dev/cuaa0</filename> 而非
+ <filename>/dev/cuad0</filename>。</para>
</step>
</procedure>
@@ -4062,11 +4062,11 @@ Please press any key to reboot.</screen>
</sect1>
<sect1 xml:id="install-diff-media">
- <title>s@wˤ</title>
+ <title>製作安裝片</title>
<note>
- <para>קKлAb夤Ҵ쪺uFreeBSD СvA
- bo̫OzʶRΦۦN FreeBSD CDROM DVDC</para>
+ <para>為避免重覆說明,在文中所提到的「FreeBSD 光碟」,
+ 在這裡指的是您所購買或自行燒錄的 FreeBSD CDROM 或 DVD。</para>
</note>
<para>There may be some situations in which you need to create your own
@@ -4131,15 +4131,15 @@ Please press any key to reboot.</screen>
<tgroup cols="2">
<thead>
<row>
- <entry>ɦW</entry>
+ <entry>檔名</entry>
- <entry>e</entry>
+ <entry>內容</entry>
</row>
</thead>
<tbody>
<row>
- <entry><filename>-RELEASE-[c-bootonly.iso</filename></entry>
+ <entry><filename>版本-RELEASE-架構-bootonly.iso</filename></entry>
<entry>Everything you need to boot into a FreeBSD
kernel and start the installation interface.
@@ -4148,7 +4148,7 @@ Please press any key to reboot.</screen>
</row>
<row>
- <entry><filename>-RELEASE-[c-disc1.iso</filename></entry>
+ <entry><filename>版本-RELEASE-架構-disc1.iso</filename></entry>
<entry>Everything you need to install &os; and a
<quote>live filesystem</quote>, which is used in
@@ -4157,16 +4157,16 @@ Please press any key to reboot.</screen>
</row>
<row>
- <entry><filename>-RELEASE-[c-disc2.iso</filename></entry>
+ <entry><filename>版本-RELEASE-架構-disc2.iso</filename></entry>
- <entry>&os; (&os; 6.2 e)AHγ\h third-party
- packagesC</entry>
+ <entry>&os; 文件(&os; 6.2 之前的),以及許多 third-party
+ packages。</entry>
</row>
<row>
- <entry><filename>-RELEASE-[c-docs.iso</filename></entry>
+ <entry><filename>版本-RELEASE-架構-docs.iso</filename></entry>
- <entry>&os; (&os; 6.2 Τ)C</entry>
+ <entry>&os; 文件(&os; 6.2 及之後)。</entry>
</row>
</tbody>
</tgroup>
@@ -4278,18 +4278,18 @@ Please press any key to reboot.</screen>
</sect2>
<sect2>
- <title>إߦw˥ΪϤ</title>
+ <title>建立安裝用的磁片</title>
<indexterm>
<primary>installation</primary>
<secondary>floppies</secondary>
</indexterm>
- <para>YzqϤw(Mڭ<emphasis></emphasis>ijo˰)A
- ׬O]w餣䴩άOznγoW覡A
- zdzƤ@ǺϤHѦwˡC</para>
+ <para>若您必須從磁片安裝(雖然我們<emphasis>不</emphasis>建議這樣做),
+ 不論是因為硬體不支援或是您堅持要用這麼刻苦的方式,
+ 您都必須先準備一些磁片以供安裝。</para>
- <para>ϤܤֱoO 1.44&nbsp;MB
+ <para>磁片至少得是 1.44&nbsp;MB
At a minimum, you will need as many 1.44&nbsp;MB floppies
as it takes to hold all the files in the
<filename>base</filename> (base distribution) directory. If
@@ -4344,60 +4344,60 @@ Please press any key to reboot.</screen>
</sect2>
<sect2 xml:id="install-msdos">
- <title>q &ms-dos; ΰϦw</title>
+ <title>從 &ms-dos; 分割區安裝</title>
<indexterm>
<primary>installation</primary>
<secondary>from MS-DOS</secondary>
</indexterm>
- <para>Ydzƭnq &ms-dos; ΰ϶iwˡA
- ЧҦwɳƻsӤΰϮڥؿ <filename>freebsd</filename>
- ؿC pG<filename>c:\freebsd</filename>C
- ؿcPЩ FTP ؿc@PA
- ]YOnqнƻsɮסAijϥ DOS <command>xcopy</command>
- OC ҦpAnƻs &os; ̤pw˩һݪɮסG</para>
+ <para>若準備要從 &ms-dos; 分割區進行安裝,
+ 請把所有安裝檔都複製到該分割區根目錄內的 <filename>freebsd</filename>
+ 目錄。 比如:<filename>c:\freebsd</filename>。
+ 此目錄結構必須與光碟或 FTP 內的目錄結構一致,
+ 因此若是要從光碟複製檔案,建議使用 DOS 的 <command>xcopy</command>
+ 指令。 例如,要複製 &os; 最小安裝所需的檔案:</para>
<screen><prompt>C:\&gt;</prompt> <userinput>md c:\freebsd</userinput>
<prompt>C:\&gt;</prompt> <userinput>xcopy e:\bin c:\freebsd\bin\ /s</userinput>
<prompt>C:\&gt;</prompt> <userinput>xcopy e:\manpages c:\freebsd\manpages\ /s</userinput></screen>
- <para>] <filename>C:</filename> ѦhlŶAiH &os;
- wɡF<filename>E:</filename>hOоNC</para>
+ <para>假設 <filename>C:</filename> 槽有多餘空間,可以放 &os;
+ 安裝檔;<filename>E:</filename>則是光碟機代號。</para>
- <para>YSоAiH <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/">ftp.FreeBSD.org</link> hUwɡC
- CӦwˮM󳣦۹ؿFp <emphasis>base</emphasis>
- Ob <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/base/">&rel.current;/base/</link>
- ؿC</para>
+ <para>若沒有光碟機,可以到 <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/">ftp.FreeBSD.org</link> 去下載安裝檔。
+ 每個安裝套件都有其相對應的目錄;比如 <emphasis>base</emphasis>
+ 是放在 <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/base/">&rel.current;/base/</link>
+ 目錄內。</para>
- <para>бNznw˪M(MŶn) &ms-dos; ΰϪ
- <filename>c:\freebsd</filename> &mdash; ]o
- <literal>BIN</literal> wˮMȨѳ̺²w˦ӤwC</para>
+ <para>請將您要安裝的套件(當然空間要夠)放到 &ms-dos; 分割區的
+ <filename>c:\freebsd</filename> 裡 &mdash; 因為這個
+ <literal>BIN</literal> 安裝套件僅供最精簡安裝而已。</para>
</sect2>
<sect2>
- <title>s@w˥Ϊϱa</title>
+ <title>製作安裝用的磁帶</title>
<indexterm>
<primary>installation</primary>
<secondary>from QIC/SCSI Tape</secondary>
</indexterm>
- <para>qϱaWwˤ]\O²檺覡A FTP ΥЦw٧֡C
- w˵{]Ҧɮ׳|YbϱaWC boҦn˪wɤ
- AiHΤUCO⥦YbϱaWG</para>
+ <para>從磁帶上安裝也許是最簡單的方式,比用 FTP 或光碟安裝還快。
+ 安裝程式假設所有檔案都會壓縮放在磁帶上。 在取得所有要裝的安裝檔之後
+ ,可以用下列指令把它們壓縮放在磁帶上:</para>
<screen>&prompt.root; <userinput>cd /freebsd/distdir</userinput>
&prompt.root; <userinput>tar cvf /dev/rwt0 dist1 ... dist2</userinput></screen>
- <para>nwˮɡAT{ϱa٦ŶA
- HKw˹L{ȦsŶ(iHۦܭnbӥؿ)A
- iHeǺϱawˮɪ<emphasis></emphasis>ɮסC
- ѩϱaäHsA]κϱaw˷|ݭnܤjȦsŶC
+ <para>當要安裝時,必須先確認磁帶還有足夠空間,
+ 以便讓安裝過程暫存空間(可以自行選擇要放在哪個目錄),
+ 可以容納磁帶安裝時的<emphasis>全部</emphasis>檔案。
+ 由於磁帶本身並不能隨機存取,因此用磁帶安裝會需要很大的暫存空間。
</para>
<note>
- <para>bϥΦw˺Ϥ}<emphasis> e</emphasis>A
- ϱa@wnJϱaA_hbwɥi|LkϱaC
+ <para>在使用安裝磁片開機<emphasis> 之前</emphasis>,
+ 磁帶一定要先放入磁帶機內,否則在偵測硬體時可能會無法偵測到磁帶機。
</para>
</note>
</sect2>
@@ -4420,50 +4420,50 @@ Please press any key to reboot.</screen>
<secondary>network</secondary>
<tertiary>Ethernet</tertiary>
</indexterm>
- <para>Tغwˤ覡G
- Ethernet (з Ethernet )BSerial port(SLIP PPP)B
- Parallel port (PLIP (laplink cable))C</para>
+ <para>有三種網路安裝方式:
+ Ethernet (標準 Ethernet 晶片)、Serial port(SLIP 或 PPP)、
+ Parallel port (PLIP (laplink cable))。</para>
- <para>zLw˪̧֤覡ANOϥ Ethernet dI
- &os; 䴩jhƱ` Ethernet dF
- Ҧ䴩d(Ψһݪ]w)bU &os; Hardware
- Note 󤺦CXC YzҥΪO䴩 PCMCIA dA
- аȥb}<emphasis>e</emphasis>AӺdWC ] &os;
- w˹L{Aثeä䴩 PCMCIA dޡC</para>
+ <para>透過網路安裝的最快方式,就是使用 Ethernet 網路卡!
+ &os; 支援大多數常見的 Ethernet 網路卡;
+ 所有支援的網路卡(及其所需的設定)都有在各版本的 &os; 內的 Hardware
+ Note 說明文件內列出。 若您所用的是有支援的 PCMCIA 網路卡,
+ 請務必在開機<emphasis>之前</emphasis>,先把該網路卡插上。 因為 &os;
+ 的安裝過程,目前並不支援 PCMCIA 卡的熱插拔。</para>
- <para>~AٻݭnDӥΪ IP }Hά۹ netmask A
- HξW١C YҥΪO PPP suAӥBSTw IPAOߡA
- ]z ISP |۰ʤt IP zC oǺӳ]wA
- iH߱zҪtκ޲z̡C
- YnHWٴNs۹AӫDϥ IP}hsA
- zٻݭn DNS H gateway }(YΪO PPP suA
- gateway }NO ISP ҤtA IP })C YQzL HTTP proxy
- Өϥ FTP wˡA򥲶D proxy }C
- YzWzһݸTƤFѡAЦbw<emphasis>e</emphasis>A
- ߰ݨtκ޲z̩ ISPC</para>
+ <para>此外,還需要知道該用的 IP 位址以及相對應的 netmask 為何,
+ 以及機器名稱。 若所用的是 PPP 連線,而且沒有固定 IP,別擔心,
+ 因為您的 ISP 會自動分配 IP 給您。 關於這些網路的細部設定,
+ 可以洽詢您網路環境的系統管理者。
+ 若要能以機器名稱就能連到相對應的機器,而非直接使用 IP位址去連,
+ 那麼您還需要 DNS 以及 gateway 的位址(若用的是 PPP 連線,
+ gateway 位址就是 ISP 所分配給你的 IP 位址)。 若想透過 HTTP proxy
+ 來使用 FTP 安裝,那麼必須知道 proxy 的網址為何。
+ 若您對上述所需資訊不甚了解,那麼請在安裝<emphasis>之前</emphasis>,
+ 先詢問系統管理者或 ISP。</para>
- <para>SLIP 䴩۷lAåBDnqu(hard-wired)
- ApOqPLq serial uC
- ҥHoHqHusADOѩ SLIP
- w˥ثeä䴩\C PPP ~Ѽ\A
- ҥHоiuĥ PPP ӫD SLIPC</para>
+ <para>SLIP 的支援相當原始,並且主要受限於電腦之間的實體線路(hard-wired)
+ ,比如筆記型電腦與其他電腦之間的 serial 線。
+ 之所以得以電腦間以直接線路連結,乃是由於 SLIP
+ 安裝目前並不支援撥接功能。 PPP 才有提供撥接功能,
+ 所以請儘可能優先採用 PPP 而非 SLIP。</para>
- <para>YnzLƾھ(modem)ӦwˡA PPP XGOzߤ@ܡC
- ХdzƦn ISP ҴѪơA]bwˤN|ΨC</para>
+ <para>若要透過數據機(modem)來安裝,那 PPP 幾乎是您唯一選擇。
+ 請先準備好 ISP 所提供的相關資料,因為在安裝之初就會用到。</para>
- <para>Yϥ PAP CHAP ӳs ISP(yܻAYb &windows;
- iHzL script NiHsu ISP)AzȻݦb
- <application>ppp</application> ܲŸUJ <command>dial</command>
- OYiC _hAzDpHӼƾھұĥΪ
- <quote>AT O</quote>ӳs ISPA] PPP {ȴѫD`K
- ׺ݼ(terminal emulator)Ӱ_C аѾ\ Handbook <link linkend="userppp">user-ppp</link> `H <link xlink:href="&url.books.faq;/ppp.html">FAQ</link> ءC
- Yާ@WðݡAiH <command>set log local ...</command>
- OAHKbùWܬOC</para>
+ <para>若使用 PAP 或 CHAP 來連到 ISP(換句話說,若在 &windows;
+ 可以不透過 script 就可以連線到 ISP),那麼您僅需在
+ <application>ppp</application> 提示符號下輸入 <command>dial</command>
+ 指令即可撥號。 否則,您必須知道如何以該數據機所採用的
+ <quote>AT 指令集</quote>來連到 ISP,因為 PPP 撥號程式僅提供非常陽春的
+ 終端模擬器(terminal emulator)而起。 請參閱 Handbook 中 <link linkend="userppp">user-ppp</link> 章節以及 <link xlink:href="&url.books.faq;/ppp.html">FAQ</link> 中的相關項目。
+ 若有操作上的疑問,可以打 <command>set log local ...</command>
+ 指令,以便在螢幕上顯示相關記錄。</para>
- <para>YiH hard-wired 覡st~ &os;(2.0-R Τ) A
- iHҼ{zL <quote>laplink</quote> qlӦwˡC
- 𪺶ǿtvǦC𰪫ܦh(̰iFC 50&nbsp;kbytes/sec)A
- ҥHw˳t׷|֤@ǡC</para>
+ <para>若可直接以 hard-wired 方式連到另外的 &os;(2.0-R 及之後) 機器,
+ 那麼可以考慮透過 <quote>laplink</quote> 平行電纜來安裝。
+ 平行埠的傳輸速率比序列埠高很多(最高可達每秒 50&nbsp;kbytes/sec),
+ 所以安裝速度會更快一些。</para>
<sect3>
<title>Before Installing via NFS</title>
@@ -4473,29 +4473,29 @@ Please press any key to reboot.</screen>
<secondary>network</secondary>
<tertiary>NFS</tertiary>
</indexterm>
- <para>NFS wˤ覡۷²KAuݱN FreeBSD wɮ׳Yx NFS
- server WAMAwϥγox NFS @w˨ӷYiC</para>
+ <para>NFS 安裝方式相當簡便,只需將 FreeBSD 安裝檔案都放到某台 NFS
+ server 上,然後再指定使用這台 NFS 作為安裝來源即可。</para>
- <para>Y server u\ <quote>privileged port</quote>(q`oO Sun
- u@w])AbwˤeA <guimenu>Options</guimenu>
- hw <literal>NFS Secure</literal> ]wȡC</para>
+ <para>若該 server 只允許 <quote>privileged port</quote>(通常這是 Sun
+ 工作站的預設值),那麼在安裝之前,必須先到 <guimenu>Options</guimenu>
+ 選單去指定 <literal>NFS Secure</literal> 設定值。</para>
- <para>Ydsu~褣ΡAiݭnվ@U
- <literal>NFS Slow</literal> ]wC</para>
+ <para>若網路卡的連線品質不佳,那可能需要調整一下
+ <literal>NFS Slow</literal> 設定。</para>
- <para>F NFS w˯බQANFS DniH䴩lؿ
- (mount)AҦpG&os;&nbsp;&rel.current; w˥ؿObG
- <filename>ziggy:/usr/archive/stuff/FreeBSD</filename>A
- <systemitem>ziggy</systemitem> \b
- <filename>/usr/archive/stuff/FreeBSD</filename>AӫD
- <filename>/usr</filename> άO
- <filename>/usr/archive/stuff</filename>C</para>
+ <para>為了讓 NFS 安裝能順利完成,NFS 主機必須要可以支援子目錄的掛載
+ (mount),例如:&os;&nbsp;&rel.current; 安裝目錄是在:
+ <filename>ziggy:/usr/archive/stuff/FreeBSD</filename>,那麼
+ <systemitem>ziggy</systemitem> 必須允許直接掛載在
+ <filename>/usr/archive/stuff/FreeBSD</filename>,而非僅
+ <filename>/usr</filename> 或是
+ <filename>/usr/archive/stuff</filename>。</para>
- <para>b &os; <filename>/etc/exports</filename> ɡAWz\O
- <option>-alldirs</option> ﶵҳ]wC L NFS server
- i|P]w覡C Yݨ
- <errorname>permission denied</errorname> ~TA
- hܥiѩSҥγoﶵҳyC</para>
+ <para>在 &os; 的 <filename>/etc/exports</filename> 檔,上述功能是由
+ <option>-alldirs</option> 選項所設定。 其他的 NFS server
+ 可能會有不同的設定方式。 若看到
+ <errorname>permission denied</errorname> 錯誤訊息,
+ 則表示可能由於沒有啟用這選項所造成的。</para>
</sect3>
</sect2>
diff --git a/zh_TW.Big5/books/handbook/install/example-dir1.dot b/zh_TW.UTF-8/books/handbook/install/example-dir1.dot
index f259e8377d..f259e8377d 100644
--- a/zh_TW.Big5/books/handbook/install/example-dir1.dot
+++ b/zh_TW.UTF-8/books/handbook/install/example-dir1.dot
diff --git a/zh_TW.Big5/books/handbook/install/example-dir2.dot b/zh_TW.UTF-8/books/handbook/install/example-dir2.dot
index b846c82399..b846c82399 100644
--- a/zh_TW.Big5/books/handbook/install/example-dir2.dot
+++ b/zh_TW.UTF-8/books/handbook/install/example-dir2.dot
diff --git a/zh_TW.Big5/books/handbook/install/example-dir3.dot b/zh_TW.UTF-8/books/handbook/install/example-dir3.dot
index 178a3a91bb..178a3a91bb 100644
--- a/zh_TW.Big5/books/handbook/install/example-dir3.dot
+++ b/zh_TW.UTF-8/books/handbook/install/example-dir3.dot
diff --git a/zh_TW.Big5/books/handbook/install/example-dir4.dot b/zh_TW.UTF-8/books/handbook/install/example-dir4.dot
index 82d12b421a..82d12b421a 100644
--- a/zh_TW.Big5/books/handbook/install/example-dir4.dot
+++ b/zh_TW.UTF-8/books/handbook/install/example-dir4.dot
diff --git a/zh_TW.Big5/books/handbook/install/example-dir5.dot b/zh_TW.UTF-8/books/handbook/install/example-dir5.dot
index f5aa6e01dc..f5aa6e01dc 100644
--- a/zh_TW.Big5/books/handbook/install/example-dir5.dot
+++ b/zh_TW.UTF-8/books/handbook/install/example-dir5.dot
diff --git a/zh_TW.Big5/books/handbook/introduction/Makefile b/zh_TW.UTF-8/books/handbook/introduction/Makefile
index db1a5173b2..db1a5173b2 100644
--- a/zh_TW.Big5/books/handbook/introduction/Makefile
+++ b/zh_TW.UTF-8/books/handbook/introduction/Makefile
diff --git a/zh_TW.UTF-8/books/handbook/introduction/chapter.xml b/zh_TW.UTF-8/books/handbook/introduction/chapter.xml
new file mode 100644
index 0000000000..8fd11b4032
--- /dev/null
+++ b/zh_TW.UTF-8/books/handbook/introduction/chapter.xml
@@ -0,0 +1,842 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ The FreeBSD Documentation Project
+
+ $FreeBSD$
+ Original revision: 1.125
+-->
+<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="introduction">
+ <info><title>簡介</title>
+ <authorgroup>
+ <author><personname><firstname>Jim</firstname><surname>Mock</surname></personname><contrib>Restructured, reorganized, and parts
+ rewritten by </contrib></author>
+ </authorgroup>
+ </info>
+
+
+
+ <sect1 xml:id="introduction-synopsis">
+ <title>概述</title>
+
+ <para>非常感謝您對 &os; 感興趣!以下章節涵蓋 &os;
+ 計劃的各方面:比如它的歷史、目標、開發模式等等。</para>
+
+ <para>讀完這章,您將了解︰</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>&os; 與其他 OS 之間的關係;</para>
+ </listitem>
+ <listitem>
+ <para>&os; 計劃的歷史源流;</para>
+ </listitem>
+ <listitem>
+ <para>&os; 計劃的目標;</para>
+ </listitem>
+ <listitem>
+ <para>&os; open-source 開發模式的基礎概念;</para>
+ </listitem>
+ <listitem>
+ <para>當然囉,還有 <quote>&os;</quote> 這名字的由來。</para>
+ </listitem>
+ </itemizedlist>
+
+ </sect1>
+
+ <sect1 xml:id="nutshell">
+ <title>Welcome to &os;!</title>
+ <indexterm><primary>4.4BSD-Lite</primary></indexterm>
+
+ <para>&os; 是一個從 4.4BSD-Lite 衍生出而能在以 Intel (x86 and &itanium;),
+ AMD64, <trademark>Alpha</trademark>, Sun &ultrasparc;
+ 為基礎的電腦上執行的作業系統。同時,移植到其他平台的工作也在進行中。
+ 對於本計劃歷史的介紹,請看 <link linkend="history">&os; 歷史源流</link>,
+ 對於 &os; 的最新版本介紹,請看 <link linkend="relnotes">current release
+ </link>。若打算對於 &os; 計劃有所貢獻的話(像是程式碼硬體設備、基金),
+ 請看 <link xlink:href="&url.articles.contributing;/index.html">如何對 &os;
+ 有貢獻</link>。</para>
+
+ <sect2 xml:id="os-overview">
+ <title>&os; 能做什麼?</title>
+
+ <para>&os; 提供給你許多先進功能。這些功能包括:</para>
+
+ <itemizedlist>
+ <listitem>
+ <indexterm><primary>先佔式多工(preemptive multitasking)</primary></indexterm>
+
+ <para>動態優先權調整的『先佔式多工』能夠確保,即使在系統負擔很重的情況下,
+ 程式執行平順並且應用程式與使用者公平地共享資源。</para>
+ </listitem>
+
+ <listitem>
+ <indexterm><primary>支援多人共用</primary></indexterm>
+
+ <para>『多人共用(multi-user)』代表著許多人可以同時使用一個 &os; 系統來處理各自的事務。
+ 系統的硬體周邊(如印表機及磁帶機)也可以讓所有的使用者適當地分享。
+ 也可以針對各別使用者或一群使用者的系統資源,予以設限,
+ 以保護系統不致被過度使用。</para>
+ </listitem>
+
+ <listitem>
+ <indexterm><primary>TCP/IP 網路功能</primary></indexterm>
+
+ <para>好用的『TCP/IP 網路功能』可支援許多業界標準,比如:
+ SCTP、DHCP、NFS、NIS、PPP、SLIP、IPSec、IPv6 的支援,也就是說 &os;
+ 可以容易地跟其他作業系統透過網路共同運作,或是當作企業的伺服器用途
+ ,例如提供遠端檔案共享(NFS)及電子郵件(email)等服務,
+ 或是讓您的企業連上網際網路(Internet)並提供 WWW、FTP、
+ 路由(routing)、及防火牆(firewall、security) 等必備服務。</para>
+ </listitem>
+
+ <listitem>
+ <indexterm><primary>記憶體保護</primary></indexterm>
+
+ <para>『記憶體保護(Memory protection)』能確保程式(或是使用者)不會互相干擾,
+ 即使任何程式有不正常的運作,都不會影響其他程式的執行。</para>
+ </listitem>
+
+ <listitem>
+ <para>&os; 是『32位元(32-bit)』的作業系統
+ (在 Alpha、&itanium;、 AMD64 及 &ultrasparc; 上則是『64位元(64-bit)』)
+ — 打從一開始便是這樣設計的。</para>
+ </listitem>
+
+ <listitem>
+ <indexterm>
+ <primary>X Window System</primary>
+ <seealso>XFree86</seealso>
+ </indexterm>
+
+ <para>業界標準的『X Window 系統』(X11R7)可以在常見的便宜 VGA 顯示卡/螢幕,
+ 提供了圖形化的使用者介面(GUI),並且包括了完整的原始程式碼。</para>
+ </listitem>
+
+ <listitem>
+ <indexterm>
+ <primary>binary compatibility</primary>
+ <secondary>Linux</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>binary compatibility</primary>
+ <secondary>SCO</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>binary compatibility</primary>
+ <secondary>SVR4</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>binary compatibility</primary>
+ <secondary>BSD/OS</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>binary compatibility</primary>
+ <secondary>NetBSD</secondary>
+ </indexterm>
+ <para>能『直接執行』許多其他作業系統(比如: Linux、SCO、SVR4、BSDI 和 NetBSD)
+ 的可執行檔。</para>
+ </listitem>
+
+ <listitem>
+ <para>數以萬計的立即可以執行的應用程式,這些都可透過 &os;
+ 的『ports』及『packages』軟體管理機制來取得。
+ 不再需要費心到網路上到處搜尋所需要的軟體。</para>
+ </listitem>
+
+ <listitem>
+ <para>此外,網路上尚有可非常容易移植的數以萬計應用程式。
+ &os; 的原始程式碼與許多常見的商業版 &unix; 系統都相容,
+ 所以大部分的程式都只需要很少的修改(或根本不用修改)
+ ,就可以編譯執行。</para>
+ </listitem>
+
+ <listitem>
+ <indexterm><primary>virtual memory</primary></indexterm>
+
+ <para>需要時才置換(demand paged) <emphasis>virtual memory</emphasis> 及
+ <quote>merged VM/buffer cache</quote> 的設計,
+ 這點在系統中有用去大量記憶體的程式執行時,仍然有不錯的效率表現。</para>
+ </listitem>
+
+ <listitem>
+ <indexterm>
+ <primary>Symmetric Multi-Processing (SMP)</primary>
+ </indexterm>
+
+ <para>支援 CPU 的對稱多工處理(SMP):可以支援多 CPU
+ 的電腦系統。</para>
+ </listitem>
+
+ <listitem>
+ <indexterm>
+ <primary>compilers</primary>
+ <secondary>C</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>compilers</primary>
+ <secondary>C++</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>compilers</primary>
+ <secondary>FORTRAN</secondary>
+ </indexterm>
+ <para>完全相容的 <emphasis>C</emphasis>、<emphasis>C++</emphasis> 以及
+ <emphasis>Fortran</emphasis> 的環境和其他開發工具。
+ 以及其他許多可供進階研發的程式語言也收集在 ports 和 packages。
+ </para>
+ </listitem>
+
+ <listitem>
+ <indexterm><primary>source code</primary></indexterm>
+
+ <para>整個系統都有『原始程式碼』,
+ 這讓你對作業環境擁有最完全的掌握度。
+ 既然能擁有完全開放的系統,何苦被特定封閉軟體所約束,任廠商擺佈呢?
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>廣泛且豐富的『線上文件』。</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>當然囉,還不止如此!</emphasis></para>
+ </listitem>
+ </itemizedlist>
+
+ <indexterm><primary>4.4BSD-Lite</primary></indexterm>
+ <indexterm>
+ <primary>Computer Systems Research Group (CSRG)</primary>
+ </indexterm>
+ <indexterm><primary>U.C. Berkeley</primary></indexterm>
+ <para>&os; 系統乃是基於美國加州大學柏克萊分校的電腦系統研究群
+ (Computer Systems Research Group 也就是 CSRG) 所發行的
+ 4.4BSD-Lite,以及基於 BSD 系統開發的優良傳統。
+ 除了由 CSRG 所提供的高品質的成果,
+ 為了提供可處理真正具負荷的工作,
+ &os; 計劃也投入了數千小時以上的細部調整,
+ 以能獲得最好的執行效率以及系統的穩定度。
+ 正當許多商業上的巨人正努力地希望能提供效能及穩定時,
+ &os; 已經具備這樣的特質 -- <emphasis>就是現在</emphasis>!
+ </para>
+
+ <para>&os; 的運用範圍無限,其實完全限制在你的想像力上。
+ 從軟體的開發到工廠自動化,或是人造衛星上面的天線的方位角度的遠端控制;
+ 這些功能若可以用商用的 Unix 產品來達成,
+ 那麼極有可能使用 &os; 也能辦到!
+ &os; 也受益於來自於全球各研究中心及大學所開發的數千個高品質的軟體
+ ,這些通常只需要花費很少的費用或根本就是免費的。
+ 當然也有商業軟體,而且出現的數目是與日俱增。</para>
+
+ <para>由於每個人都可以取得 &os; 的原始程式碼,
+ 這個系統可以被調整而能執行任何原本完全無法想像的功能或計劃,
+ 而對於從各廠商取得的作業系統通常沒有辦法這樣地被修改。
+ 以下提供一些人們使用 &os; 的例子:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><emphasis>網路服務:</emphasis> &os;
+ 內建強勁的網路功能使它成為網路服務(如下例)的理想平台:</para>
+
+ <itemizedlist>
+ <listitem>
+ <indexterm><primary>FTP servers</primary></indexterm>
+
+ <para>檔案伺服器(FTP servers)</para>
+ </listitem>
+
+ <listitem>
+ <indexterm><primary>web servers</primary></indexterm>
+
+ <para>全球資訊網伺服器(WWW servers)
+ (標準的或更安全的 [SSL] 連線)</para>
+ </listitem>
+
+ <listitem>
+ <para>IPv4 及 IPv6 routing</para>
+ </listitem>
+
+ <listitem>
+ <indexterm><primary>firewall</primary></indexterm>
+
+ <indexterm><primary>IP masquerading</primary></indexterm>
+
+ <para>防火牆以及 NAT (<quote>IP masquerading</quote>)
+ gateways。</para>
+ </listitem>
+
+ <listitem>
+ <indexterm><primary>electronic mail</primary></indexterm>
+
+ <para>電子郵件伺服器(Electronic Mail servers)</para>
+ </listitem>
+
+ <listitem>
+ <indexterm><primary>USENET</primary></indexterm>
+
+ <para>網路新聞伺服器(USENET News)
+ 或是電子佈告欄系統(BBS)</para>
+ </listitem>
+
+ <listitem>
+ <para>還有更多...</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>有了 &os;,您可以容易地先用便宜的 386 PC,
+ 再逐步升級您的機器到四個 CPU 的 Xeon
+ 並使用磁碟陣列(RAID)來滿足您企業運用上的需求。</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>教育:</emphasis>
+ 若您是資工相關領域的學生,再也沒有比使用 &os;
+ 能學到更多作業系統、計算機結構、及網路的方法了。
+ 另外如果你想利用電腦來處理一些<emphasis>其他的</emphasis>
+ 工作,還有一些如 CAD、
+ 數學運算以及圖形處理軟體等可以免費地取得使用。</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>研究:</emphasis>有了完整的原始程式碼,&os;
+ 是研究作業系統及電腦科學的極佳環境。
+ 具有免費且自由取得特性的 &os;
+ 也使得一個分置兩地的合作計劃,不必擔心版權及系統開放性的問題,
+ 而能自在的交流。</para>
+ </listitem>
+
+ <listitem>
+ <indexterm><primary>router</primary></indexterm>
+
+ <indexterm><primary>DNS Server</primary></indexterm>
+
+ <para><emphasis>網路:</emphasis>
+ 你如果需要 router、Name Server (DNS) 或安全的防火牆(Firewall),
+ &os; 可以輕易的將你沒有用到的 386 或 486 PC
+ 變身成為絕佳的伺服器,甚至具有過濾封包(packet-filter) 的功能。
+ </para>
+ </listitem>
+
+ <listitem>
+ <indexterm>
+ <primary>X Window System</primary>
+ <secondary>XFree86</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>X Window System</primary>
+ <secondary>Accelerated-X</secondary>
+ </indexterm>
+ <para><emphasis>X 視窗工作站:</emphasis> &os; 是 X
+ 終端機的良策,你可以使用免費的 X11 Server。
+ &os; 不但可以充當遠端 X 程式終端機,
+ 也可以執行本地的 X 程式而減輕大型工作站的負荷。
+ 如果有一台中央伺服器的話,&os; 甚至可以經由網路開機
+ (不需硬碟,也就是<quote>diskless</quote>)
+ ,而變成更便宜且易於管理的工作站。</para>
+ </listitem>
+
+ <listitem>
+ <indexterm><primary>GNU Compiler Collection</primary></indexterm>
+
+ <para><emphasis>軟體開發:</emphasis>
+ 基本安裝的 &os; 就包含了完整的程式開發工具,如 GNU C/C++
+ 編譯器及除錯器。</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>你可以經由燒錄 CD-ROM、DVD 或是從 FTP 站上抓回 &os; --
+ 包括立即可執行的系統以及系統的完整程式碼。
+ 詳情請參閱 <xref linkend="mirrors"/> 取得 &os;。</para>
+ </sect2>
+
+ <sect2>
+ <title>誰在用 &os;?</title>
+
+ <indexterm>
+ <primary>users</primary>
+ <secondary>large sites running &os;</secondary>
+ </indexterm>
+ <para>許多 Internet 上的大型網站都是以 &os; 作為它的作業系統,例如:</para>
+
+ <itemizedlist>
+ <listitem>
+ <indexterm><primary>Yahoo!</primary></indexterm>
+
+ <para><link xlink:href="http://www.yahoo.com/">Yahoo!</link></para>
+ </listitem>
+
+ <listitem>
+ <indexterm><primary>Apache</primary></indexterm>
+
+ <para><link xlink:href="http://www.apache.org/">Apache</link></para>
+ </listitem>
+
+ <listitem>
+ <indexterm><primary>Blue Mountain Arts</primary></indexterm>
+
+ <para><link xlink:href="http://www.bluemountain.com/">Blue Mountain
+ Arts</link></para>
+ </listitem>
+
+ <listitem>
+ <indexterm><primary>Pair Networks</primary></indexterm>
+
+ <para><link xlink:href="http://www.pair.com/">Pair
+ Networks</link></para>
+ </listitem>
+
+ <listitem>
+ <indexterm><primary>Sony Japan</primary></indexterm>
+
+ <para><link xlink:href="http://www.sony.co.jp/">Sony
+ Japan</link></para>
+ </listitem>
+
+ <listitem>
+ <indexterm><primary>Netcraft</primary></indexterm>
+
+ <para><link xlink:href="http://www.netcraft.com/">Netcraft</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <indexterm><primary>Weathernews</primary></indexterm>
+
+ <para><link xlink:href="http://www.wni.com/">Weathernews</link>
+ </para></listitem>
+
+ <listitem>
+ <indexterm><primary>Supervalu</primary></indexterm>
+
+ <para><link xlink:href="http://www.supervalu.com/">Supervalu</link></para>
+ </listitem>
+
+ <listitem>
+ <indexterm><primary>TELEHOUSE America</primary></indexterm>
+
+ <para><link xlink:href="http://www.telehouse.com/">TELEHOUSE
+ America</link></para>
+ </listitem>
+
+ <listitem>
+ <indexterm><primary>Sophos Anti-Virus</primary></indexterm>
+
+ <para><link xlink:href="http://www.sophos.com/">Sophos
+ Anti-Virus</link></para>
+ </listitem>
+
+ <listitem>
+ <indexterm><primary>JMA Wired</primary></indexterm>
+
+ <para><link xlink:href="http://www.jmawired.com/">JMA Wired</link></para>
+ </listitem>
+ </itemizedlist>
+
+ <para>以及許多其他的網站。</para>
+ </sect2>
+
+ </sect1>
+
+ <sect1 xml:id="history">
+ <title>關於 &os; 計劃</title>
+
+ <para>接下來講的是 &os; 計劃的背景,包含歷史源流的簡介、計劃的目標,以及開發的模式。</para>
+
+ <sect2 xml:id="intro-history">
+ <info role="firstperson"><title>&os; 歷史源流的簡介</title>
+ <authorgroup>
+ <author><personname><firstname>Jordan</firstname><surname>Hubbard</surname></personname><contrib>Contributed by </contrib></author>
+ </authorgroup>
+ </info>
+
+
+
+ <indexterm><primary>386BSD Patchkit</primary></indexterm>
+ <indexterm><primary>Hubbard, Jordan</primary></indexterm>
+ <indexterm><primary>Williams, Nate</primary></indexterm>
+ <indexterm><primary>Grimes, Rod</primary></indexterm>
+ <indexterm>
+ <primary>&os; Project</primary>
+ <secondary>history</secondary>
+ </indexterm>
+ <para>&os; 計畫的想法是在 1993 年初所形成的,
+ 那是源自於維護一組 『非官方 386BSD 的 patchkit(修正工具)』計劃的三個協調維護人
+ Nate Williams,Rod Grimes 和我(Jordan Hubbard)。</para>
+
+ <indexterm><primary>386BSD</primary></indexterm>
+ <para>我們最初的目標是做出一份 386BSD 綜合修正的 snapshot 版,以便修正當時一堆
+ patchkit 都不容易解決的問題。有些人可能還記得早期的計劃名稱叫做
+ <quote>386BSD 0.5</quote> 或 <quote>386BSD Interim</quote> 就是這個原因。</para>
+
+ <indexterm><primary>Jolitz, Bill</primary></indexterm>
+ <para>386BSD 是 Bill Jolitz 的作業系統,在當時就已有約一年的分裂討論。
+ 當該修正工具 (patchkit) 日漸龐雜得令人不舒服,我們無異議地同意要作一些事了,
+ 並決定提供一份臨時性的 <quote>淨化版(cleanup)</quote> 來幫助 Bill。
+ 然而,由於 Bill Jolitz 忽然決定取消其對該計劃的認可,且沒有明確指出未來的打算,
+ 所以該計劃便突然面臨斷炊危機。</para>
+
+ <indexterm><primary>Greenman, David</primary></indexterm>
+ <indexterm><primary>Walnut Creek CD-ROM</primary></indexterm>
+ <para>不久我們便決定在即使沒有 Bill 的支持下,讓該計劃仍然繼續下去,
+ 最後我們採用 David Greenman 丟銅板決定的名字,也就是『&os;』。
+ 在詢問了當時的一些使用者意見之後,就開始決定了最初的目標,
+ 當該計劃開始實施一切就要成真時,一切就變得更清楚了。
+ 我跟 Walnut Creek CD-ROM 討論發行 CD-ROM
+ 這樣子不便上網的人就可以用比較簡單的方式取得 &os;。
+ Walnut Creek CD-ROM 不只贊成以 CD-ROM 來發行 &os;
+ 的想法,同時提供了一台機器以及快速的網際網路的頻寬。
+ 如果不是 Walnut Creek CD-ROM 幾乎是空前的信任這個剛開始還是完全默默無聞的計劃,
+ 那麼很可能 &os; 不會如此快速的成長到今日這樣的規模。</para>
+
+ <indexterm><primary>4.3BSD-Lite</primary></indexterm>
+ <indexterm><primary>Net/2</primary></indexterm>
+ <indexterm><primary>U.C. Berkeley</primary></indexterm>
+ <indexterm><primary>386BSD</primary></indexterm>
+ <indexterm><primary>Free Software Foundation</primary></indexterm>
+ <para>第一張以 CD-ROM (及網路)發行的 &os;&nbsp;1.0 是在 1993 年十二月。
+ 該版本是基於由 U.C. Berkeley 以磁帶方式發行的
+ 4.3BSD-Lite (<quote>Net/2</quote>)以及許多來自於 386BSD
+ 和自由軟體基金會的軟體。對於第一次發行而言還算成功,
+ 我們又接著於 1994 年 5 月發行了相當成功的 &os; 1.1。</para>
+
+ <indexterm><primary>Novell</primary></indexterm>
+ <indexterm><primary>U.C. Berkeley</primary></indexterm>
+ <indexterm><primary>Net/2</primary></indexterm>
+ <indexterm><primary>AT&amp;T</primary></indexterm>
+ <para>然而此後不久,另一個意外的風暴在 Novell 和 U.C. Berkeley 關於
+ Berkeley Net/2 磁帶之法律地位的訴訟確定之後形成。
+ U.C. Berkeley 接受大部份的 Net/2 的程式碼都是『侵佔來的』且是屬於 Novell 的財產
+ -- 事實上是當時不久前從 AT&amp;T 取得的。
+ Berkeley 得到的是 Novell 對於 4.4BSD-Lite 的『祝福』,最後當 4.4BSD-Lite
+ 終於發行之後,便不再是侵佔行為。
+ 而所有現有 Net/2 使用者都被強烈建議更換新版本,這包括了 &os;。
+ 於是,我們被要求於 1994 年 6 月底前停止散佈基於 Net/2
+ 的產品。在此前提之下,本計劃被允許在期限以前作最後一次發行,也就是
+ &os;&nbsp;1.1.5.1。</para>
+
+ <para>&os; 便開始了這宛如『重新發明輪子』的艱鉅工作 -- 從全新的且不完整的
+ 4.4BSD-Lite 重新整合。
+ 這個 <quote>Lite</quote> 版本是不完整的,因為
+ Berkeley 的 CSRG 已經刪除了大量在建立一個可以開機執行的系統所需要的程式碼
+ (基於若干法律上的要求),且該版本在 Intel 平台的移植是非常不完整的。
+ 直到 1994 年 11 月本計劃才完成了這個轉移,
+ 同時在該年 12 月底以 CD-ROM 以及網路的形式發行了 &os;&nbsp;2.0。
+ 雖然該份版本在當時有點匆促粗糙,但仍是富有意義的成功。
+ 隨之於 1995 年 6 月又發行了更容易安裝,更好的 &os;&nbsp;2.0.5。</para>
+
+ <para>我們在 1996 年 8 月發行了 &os;&nbsp;2.1.5,在 ISP 和商業團體中非常流行。
+ 隨後, 2.1-STABLE 分支的另一個版本應運而生,它就是在 1997 年 2 月發行 &os; 2.1.7.1
+ ,同時也是 2.1-STABLE 分支的最後版。之後此分支便進入維護狀態,
+ 僅僅提供安全性的加強和其他嚴重錯誤修補的維護(RELENG_2_1_0)。</para>
+
+ <para>1996 年 11 月 &os;&nbsp;2.2 從開發主軸分支 (<quote>-CURRENT</quote>)
+ 出來成為 RELENG_2_2 分支。它的第一個完整版(2.2.1)於 1997 年 4 月發行。
+ 2.2 分支的延續版本在 97 年夏秋之間發行的,其最後版是在 1998 年 11 月發行的 2.2.8 版。
+ 第一個正式的 3.0 版本在 1998 年 10 月發行,亦即宣告 2.2 分支的落幕。</para>
+
+ <para>1999/01/20 日再度分支,這產生了 4.0-CURRENT 以及 3.X-STABLE 兩個分支。
+ 3.X-STABLE 方面,3.1 發行於 1999/02/15,3.2 發行於1999/05/15,3.3 發行於 1999/09/16,
+ 3.4 發行於 1999/12/20,3.5 發行於 2000/06/24
+ ,接下來幾天後發佈了一些的修補檔(對 Kerberos 安全性方面的修正),就升級至 3.5.1
+ ,這是 3.X 分支最後一個發行版本。</para>
+
+ <para>在 2000/03/13 又有了一個新的分支, 也就是 4.X-STABLE
+ 。這個分支之後發佈了許多的發行版本︰ 4.0-RELEASE 在 2000 年 3 月發行,
+ 而最後的 4.11-RELEASE 則在 2005 年 1 月發行。4-STABLE 分支的支援會持續到 2007/01/31
+ ,但主要焦點在於安全方面的漏洞、臭蟲及其他嚴重問題的修補。</para>
+
+ <para>期待已久的 5.0-RELEASE 在 2003/01/19 正式發行。這是將近開發三年的巔峰之作,同時
+ 也開始加強多顆CPU(SMPng)的支援、kernel thread(KSE) 的支援、檔案系統採用 UFS2 以及支援 snapshot
+ 等, 並支援 &ultrasparc; 和
+ <literal>ia64</literal> 平台、支援藍芽、32 bit 的 PCMCIA 等。之後於 2003 年 6 月發行了 5.1。
+ 而 -CURRENT 這個發展主軸分支的最後 5.X 版本是在 2004 年 2 月正式發行的 5.2.1-RELEASE,在 5.X
+ 系列進入 -STABLE (RELENG_5分支)之後,-CURRENT 就轉移為 6.X 系列。</para>
+
+ <para>RELENG_5 分支於 2004 年 8 月正式開跑,之後是 5.3-RELEASE
+ ,它是 5-STABLE 分支的第一個發行版本。 最後的 5.5-RELEASE 是在
+ 2006 年 5 月發行的,在此之後 RELENG_5 分支不再繼續。</para>
+
+ <para>RELENG_6 分支於 2005 年 7 月開跑,而 6.X 分支的第一個
+ release(6.0-RELEASE) 是在 2005 年 11 月出的。
+ 最新的 &rel2.current;-RELEASE 是在 &rel2.current.date;
+ 發行。 當然囉,RELENG_6 分支還將有後續的發行版。</para>
+
+ <para>RELENG_7 分支於 2007 年 10 月開跑,最新的 &rel.current;-RELEASE
+ 是在 &rel.current.date; 發行。 RELENG_7
+ 分支還將有後續的發行版。</para>
+
+ <para>目前,長期的開發計畫繼續在 8.X-CURRENT (trunk) 分支中進行,而
+ 8.X 的 CD-ROM (當然,也可以用網路抓) snapshot 版本可以在 <link xlink:href="ftp://current.FreeBSD.org/pub/FreeBSD/snapshots/">FreeBSD snapshot server</link>
+ 取得。</para>
+ </sect2>
+
+ <sect2 xml:id="goals">
+ <info><title>&os; 計劃的目標</title>
+ <authorgroup>
+ <author><personname><firstname>Jordan</firstname><surname>Hubbard</surname></personname><contrib>Contributed by </contrib></author>
+ </authorgroup>
+ </info>
+
+
+
+ <indexterm>
+ <primary>&os; Project</primary>
+ <secondary>goals</secondary>
+ </indexterm>
+ <para>&os; 計劃的目標在於提供可作任意用途的軟體而不附帶任何限制條文。
+ 我們之中許多人對程式碼 (以及計畫本身) 都有非常大的投入,
+ 因此,當然不介意偶爾有一些資金上的補償,但我們並沒打算堅決地要求得到這類資助。
+ 我們認為我們的首要『使命(mission)』是為任何人提供程式碼,
+ 不管他們打算用這些程式碼做什麼, 因為這樣程式碼將能夠被更廣泛地使用,從而發揮其價值。
+ 我認為這是自由軟體最基本的,同時也是我們所倡導的一個目標。</para>
+
+ <indexterm>
+ <primary>GNU General Public License (GPL)</primary>
+ </indexterm>
+ <indexterm>
+ <primary>GNU Lesser General Public License (LGPL)</primary>
+ </indexterm>
+ <indexterm><primary>BSD Copyright</primary></indexterm>
+ <para>我們程式碼樹中,有若干是以 GNU GPL 或者 LGPL
+ 發佈的那些程式碼帶有少許的附加限制,還好只是強制性的要求開放程式碼而不是別的。
+ 由於使用 GPL 的軟體在商業用途上會增加若干複雜性,因此,如果可以選擇的話,
+ 我們會比較喜歡使用限制相對更寬鬆的 BSD 版權來發佈軟體。</para>
+ </sect2>
+
+ <sect2 xml:id="development">
+ <info><title>&os; 的開發模式</title>
+ <authorgroup>
+ <author><personname><firstname>Satoshi</firstname><surname>Asami</surname></personname><contrib>Contributed by </contrib></author>
+ </authorgroup>
+ </info>
+
+
+
+ <indexterm>
+ <primary>&os; Project</primary>
+ <secondary>development model</secondary>
+ </indexterm>
+ <para>&os; 的開發是一個非常開放且具彈性的過程,就像從 <link xlink:href="&url.articles.contributors;/article.html">貢獻者名單</link>
+ 所看到的,是由全世界成千上萬的貢獻者發展起來的。
+ &os; 的開發基礎架構允許數以百計的開發者透過網際網路協同工作。
+ 我們也經常關注著那些對我們的計畫感興趣的新開發者和新的創意,
+ 那些有興趣更進一步參與計劃的人只需要在 &a.hackers; 連繫我們。
+ &a.announce; 對那些希望了解我們進度的人也是相當有用的。</para>
+
+ <para>無論是單獨開發者或者封閉式的團隊合作,多瞭解 &os; 計劃和它的開發過程會是不錯的︰</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>The SVN and CVS repository<anchor xml:id="development-cvs-repository"/></term>
+
+ <listitem>
+ <indexterm>
+ <primary>CVS</primary>
+ <secondary>repository</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>Concurrent Versions System</primary>
+ <see>CVS</see>
+ </indexterm>
+ <indexterm>
+ <primary>SVN</primary>
+ <secondary>repository</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>Subversion</primary>
+ <see>SVN</see>
+ </indexterm>
+ <para>過去數年來 &os; 的中央 source tree 一直是以
+ <link xlink:href="http://ximbiot.com/cvs/wiki/">CVS</link>
+ (Concurrent Versions System) 來維護的,
+ 它是個自由軟體,可用來做為版本控制,一裝完 &os; 內就有附了。
+ 然而在 2008 年 6 月起, &os; 版本控制系統改用 <link xlink:href="http://subversion.tigris.org">SVN</link>(Subversion)。
+ 這切換動作我們認為是有必要,因為 <application>CVS</application>
+ 先天的技術限制,導致 source tree 以及歷史版本數量不斷快速擴張。
+ 因此,主要的 repository 目前是採用 <application>SVN</application>
+ ,而 client 端的工具像是 <application>CVSup</application>、
+ <application>csup</application> 都是以舊式的
+ <application>CVS</application> 架構為基礎,仍可以繼續正常運作
+ &mdash; 此乃因 <application>SVN</application> repository
+ 有 backport 回 <application>CVS</application> 才可以繼續讓 client
+ 端相容。 目前,就只有中央 source tree 是採
+ <application>SVN</application> 版本控制方式。 而文件、網頁、
+ Ports 這些 repository 仍持續使用 <application>CVS</application>
+ 版本控制方式。
+ 而主要的 <link xlink:href="http://www.FreeBSD.org/cgi/cvsweb.cgi">CVS
+ repository</link> 是位於美國加州 Santa Clara 的某台機器上,
+ 然後再 mirror 到世界上其他的許多機器上。
+ <application>SVN</application> tree 內有兩個主分支:
+ <link linkend="current">-CURRENT</link> 以及 <link linkend="stable">-STABLE</link> ,這些都可輕鬆複製到自己機器上。
+ 詳情請參閱 <link linkend="synching">更新你的 source tree</link>
+ 一節。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>The committers list<anchor xml:id="development-committers"/></term>
+
+ <listitem>
+ <indexterm><primary>committers</primary></indexterm>
+
+ <para>所謂的 <firstterm>committers</firstterm>
+ 指的是對 CVS tree 有 <emphasis>write</emphasis> 權限,
+ 並依不同授權部分,而有不同權限可修改 &os; source。
+ (<quote>committer</quote> 這詞源自 &man.cvs.1; 中的
+ <command>commit</command> 指令,該指令是用來把新的修改提交給
+ CVS repository。)
+ 而提交修改給 committer 們檢查的最好方式,就是用 &man.send-pr.1;
+ 指令。 若提交 PR 的流程系統上有壅塞現象的話,
+ 也可以改用寄信方式,寄信到 &a.committers; 即可。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>The &os; core team<anchor xml:id="development-core"/></term>
+
+ <listitem>
+ <indexterm><primary>core team</primary></indexterm>
+
+ <para>如果把 &os; 看成是一家公司的話,
+ <firstterm>&os; core team</firstterm>
+ 就相當於『董事會(board of directors)』。 core team
+ 的主要職責在於確保此計劃有良好的架構,以朝著正確的方向發展。
+ 此外,邀請熱血且負責的軟體開發者加入 committers 行列,
+ 以在若干成員離去時得以補充新血。
+ 目前的 core team 是在 2008 年 7 月 committers
+ 候選人中選出來的,每兩年會舉辦一次選舉。</para>
+
+ <para>有些 core team 成員還負責某些特定範圍,
+ 也就是說他們必須盡量確保一些子系統的穩定、效能。
+ 關於 &os; 開發者們以及各自責任範圍,請參閱 <link xlink:href="&url.articles.contributors;/article.html">貢獻者名單
+ </link>。</para>
+
+ <note>
+ <para>core team 大部分成員加入 &os; 開發都是志工性質而已,
+ 並未從本計劃中獲得任何薪酬,所以不該把
+ <quote>commitment</quote> 誤解為
+ <quote>guaranteed support</quote> 才對。
+ 剛前面所講的『董事會』可能是不恰當的類推,或許我們應該說:
+ 他們是一群自願放棄原本的優渥生活、個人其他領域成就,
+ 而選擇投入 &os; 開發的熱血有為者才對!</para>
+ </note>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>其他的貢獻者</term>
+
+ <listitem>
+ <indexterm><primary>contributors</primary></indexterm>
+
+ <para>最後一點,但這點絕非最不重要的,
+ 最大的開發者團隊就是持續為我們提供回饋以及錯誤修正的使用者自己。
+ 與 &os; 非核心開發者互動的主要方式,便是透過訂閱 &a.hackers;
+ 來進行溝通,這方面可參考,請參閱 <xref linkend="eresources"/> 以瞭解各式不同的 &os;
+ 郵遞論壇(mailing lists)。</para>
+
+ <para><citetitle><link xlink:href="&url.articles.contributors;/article.html">&os; 貢獻者名單
+ </link></citetitle> 相當長且不斷成長中,
+ 只要有貢獻就會被列入其中,
+ 要不要立即考慮貢獻 &os; 一些回饋呢?</para>
+
+ <para>然而,提供原始碼並非為這個計劃做貢獻的唯一方式;
+ 還需要大家投入的完整工作列表、說明,請參閱 <link xlink:href="&url.base;/index.html">&os; 官網</link>。</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>簡單的說,我們的開發模式就像是一組沒有拘束的同心圓。
+ 這種集中開發模式是以 <emphasis>給使用者方便</emphasis> 為主,
+ 同時讓他們能很容易地共同維護軟體,而不會把潛在的貢獻者排除在外!
+ 我們的目標是提供含有大量一致性的
+ <link linkend="ports">應用軟體(ports/packages)</link>
+ ,以便讓使用者輕鬆安裝、使用的作業系統 ——
+ 而這開發模式相當符合此一目標。</para>
+
+ <para>我們對於那些想要加入 &os; 開發者的期待是:
+ 請保持如同前人一樣的投入,以確保繼續成功!</para>
+ </sect2>
+
+ <sect2 xml:id="relnotes">
+ <title>最新的 &os; 發行版本</title>
+
+ <indexterm><primary>NetBSD</primary></indexterm>
+ <indexterm><primary>OpenBSD</primary></indexterm>
+ <indexterm><primary>386BSD</primary></indexterm>
+ <indexterm><primary>Free Software Foundation</primary></indexterm>
+ <indexterm><primary>U.C. Berkeley</primary></indexterm>
+ <indexterm>
+ <primary>Computer Systems Research Group (CSRG)</primary>
+ </indexterm>
+ <para>&os; 是免費使用且帶有完整原始程式碼的以 4.4BSD-Lite
+ 為基礎的系統,可以在
+ Intel &i386;, &i486;, &pentium;,
+ &pentium;&nbsp;Pro,
+ &celeron;,
+ &pentium;&nbsp;II,
+ &pentium;&nbsp;III,
+ &pentium;&nbsp;4 (或者相容型號),
+ &xeon;, DEC <trademark>Alpha</trademark>
+ 和 Sun &ultrasparc; 為基礎的電腦上執行的作業系統。
+ 它主要以加州大學巴爾克利分校 的 CSRG 研究小組的軟體為基礎,並加入了
+ NetBSD、OpenBSD、386BSD 以及自由軟體基金會的一些東西。</para>
+
+ <para>自從 1994 年末,我們發佈了 &os;&nbsp;2.0 之後,系統的執行效率、
+ 功能、穩定性都有了令人注目的提升。
+ <!-- XXX is the rest of this paragraph still true ? -->
+ 最大的改變就是我們將記憶體與檔案系統的 cache 機制結合在一起。
+ 這不只使得系統的表現變得更好, 並且使得 &os;
+ 系統最少的記憶體需求減少到 5&nbsp;MB。
+ 其它的改進包括完整的 NIS cilent and server 功能支援,
+ 支援 transaction TCP、PPP 撥接連線、整合的 DHCP 支援、
+ SCSI 子系統的改進、ISDN 的支援,ATM、FDDI 以及乙太網路 (Ethernet、包括
+ 100&nbsp;Mbit 和 Gigabit) 的支援,提升了最新的 Adaptec
+ 控制卡驅動程式的改善,以及數以千計的 bug 修正。</para>
+
+ <para>除了最基本的系統軟體,&os; 還提供了廣受歡迎的套件軟體管理機制:
+ Ports Collection。
+ 到本書付印時,已有超過 &os.numports; 個 ports,這範疇涵蓋從 http(WWW)
+ 伺服器到遊戲、程式語言、編輯器以及您能想到的幾乎所有的東西。
+ 完整的 Ports Collection 需要約 &ports.size; 的硬碟空間,除了
+ port 基本架構檔案外,都只儲存與該 port
+ 軟體的原始碼有『須要變更』的部份。
+ 如此一來,我們可以更容易更新這些 ports,也大量的減少如舊的 1.0 版
+ Ports Collection 對於硬碟空間的需求。
+ 要安裝一個 port 的話,只需要進入該 port 的目錄,輸入
+ <command>make install</command>,這樣子系統就會幫你裝好了。
+ 您要編譯的每個程式的完整原始程式,
+ 都可從 FTP 或 CD-ROM 中獲得,所以您只需準備足夠的硬碟空間來編譯你要的
+ port 軟體。
+ 幾乎每一個 port 都有已事先編譯好的 <quote>package</quote>以方便安裝,
+ 如果不想從編譯 port 的人,只要用個簡單指令
+ (<command>pkg_add</command>)就可以安裝。
+ 有關 packages 和 ports 的細節,可以參閱 <xref linkend="ports"/>。</para>
+
+ <para>&os; 主機的 <filename>/usr/share/doc</filename>
+ 目錄下找到許多有用的文件,
+ 來幫助您安裝、使用 &os;。
+ 也可以使用下面的網址,以瀏覽器來翻閱本機上安裝的手冊︰</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>&os; 使用手冊</term>
+
+ <listitem>
+ <para><link xlink:href="file://localhost/usr/share/doc/handbook/index.html"><filename>/usr/share/doc/handbook/index.html</filename></link></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&os; 常見問答集</term>
+
+ <listitem>
+ <para><link xlink:href="file://localhost/usr/share/doc/faq/index.html"><filename>/usr/share/doc/faq/index.html</filename></link></para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>此外,可在下列網址找到最新版 (也是更新最頻繁的版本):<uri xlink:href="http://www.FreeBSD.org/">http://www.FreeBSD.org/</uri>。</para>
+ </sect2>
+ </sect1>
+</chapter>
diff --git a/zh_TW.UTF-8/books/handbook/jails/chapter.xml b/zh_TW.UTF-8/books/handbook/jails/chapter.xml
new file mode 100644
index 0000000000..91c7ad185a
--- /dev/null
+++ b/zh_TW.UTF-8/books/handbook/jails/chapter.xml
@@ -0,0 +1,793 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ The FreeBSD Documentation Project
+
+ $FreeBSD$
+
+ Original revision: 1.15
+
+-->
+<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="jails">
+ <info><title>Jails</title>
+ <authorgroup>
+ <author><personname><firstname>Matteo</firstname><surname>Riondato</surname></personname><contrib>Contributed by </contrib></author>
+ </authorgroup>
+ </info>
+
+
+
+ <indexterm><primary>jails</primary></indexterm>
+
+ <sect1 xml:id="jails-synopsis">
+ <title>概述</title>
+
+ <para>本章將介紹 &os; jail 為何,以及如何運用之法。
+ Jails 有時也常被認為是 <emphasis>chroot 環境</emphasis>
+ 的加強型替代品之一,它對系統管理者而言是非常好用的工具,
+ 此外,它的一些基本用法對進階使用者而言,也是相當有用。</para>
+
+ <para>讀完這章,您將了解︰</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>jail 是什麼,以及它在 &os; 上可以發揮的作用。</para>
+ </listitem>
+
+ <listitem>
+ <para>如何編譯、啟動、停止 jail。</para>
+ </listitem>
+
+ <listitem>
+ <para>jail 管理的基本概念:包括從 jail 內部或主機本身。</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>其他有用的 jail 相關資源還有:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>&man.jail.8; 線上說明。 這是有關 <command>jail</command>
+ 的完整說明 &mdash; &os; 內的啟動、停止、控制 &os; jail
+ 相關管理工具。</para>
+ </listitem>
+
+ <listitem>
+ <para>郵遞論壇(mailing lists)及舊信檔案館(archives)。
+ &a.mailman.lists; 所提供的 &a.questions; 及其他郵遞論壇的舊信
+ ,已有包括一堆 jail 的有用資料。 通常,搜尋舊信或者在
+ &a.questions.name; 上發問,也相當有效。</para>
+ </listitem>
+ </itemizedlist>
+
+ </sect1>
+
+ <sect1 xml:id="jails-terms">
+ <title>Jail 相關術語</title>
+
+ <para>為協助更容易理解 &os; 系統的 jail 相關部分,
+ 以及它們與 &os; 其他部分的相互作用關係,
+ 以下列出本章將使用的術語:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>&man.chroot.2; (指令)</term>
+ <listitem>
+ <para>&os; 的 system call 之一,其作用為改變 process
+ 及其衍生 process 所能運用的根目錄 (<filename>/</filename>
+ dir)。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&man.chroot.2; (環境)</term>
+ <listitem>
+ <para>指在 <quote>chroot</quote> 中運行的 process 環境。
+ 這包括了類似檔案系統的可見部分、可用的 UID、GID、網路卡及其他 IPC
+ 機制等資源。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&man.jail.8; (command)</term>
+ <listitem>
+ <para>允許程式在 jail 環境下執行的系統管理工具。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>host (系統、process、帳號等等)</term>
+ <listitem>
+ <para>jail 環境的控制系統。 host 系統可以使用全部可用的硬體資源,
+ 並能控制 jail 環境內外的 process。 host 系統與 jail 最大的差別在於
+ :在 host 系統中的 superuser processes 並不像在 jail
+ 環境那樣處處受到一堆限制。</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>hosted (系統、process、帳號等等)</term>
+ <listitem>
+ <para>可用資源受到 &os; jail 限制的 process、帳號、或其他設備資源
+ 。</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect1>
+
+ <sect1 xml:id="jails-intro">
+ <title>背景故事</title>
+
+ <para>由於系統管理是困難又繁瑣的工作,因此人們開發許多好用工具,
+ 以讓管理工作更加簡單輕鬆。 這些改善通常是讓系統能夠以更簡單的方式安裝、
+ 設定、維護,而有些改善目標則是系統安全的正確設定,使其能真正發揮原本用途,
+ 而非陷入安全風險之中。</para>
+
+ <para>&os; 系統所提供的一種用於強化安全的工具就是 <emphasis>jail</emphasis>
+ 。 Jail 是由 &a.phk; 於 &os;&nbsp;4.X 開始導入,而在 &os;&nbsp;5.X
+ 受到許多重大改良而集大成,成為強大而靈活的子系統,目前仍在持續開發、
+ 以提高其可用性、效能與安全。</para>
+
+ <sect2 xml:id="jails-what">
+ <title>何為 Jail</title>
+
+ <para>BSD-like 作業系統自 4.2BSD 起即提供 &man.chroot.2;。
+ &man.chroot.8; 可用來變更一組 process 的根目錄位置,
+ 藉此建立與實體系統中相隔離的安全環境。 處於 chrooted 環境的
+ process 會無法不能存取世外的檔案或資源。 由於此因素,
+ 故即使攻擊者攻破某個處於 chroot 環境的 service,也不能攻破整個系統。
+ &man.chroot.8; 對於那些不太需要彈性或複雜又高級的簡單應用而言相當好用。
+ 另外,在引入 chroot 概念的過程中,曾經發現許多可脫逃 chroot 環境的方式,
+ 儘管這些問題在較新版本的 &os; kernel 均已修正,但很明顯地 &man.chroot.2;
+ 絕非用於強化安全的理想解決方案。 因此,
+ 勢必得實作新的子系統來解決這些問題。</para>
+
+ <para>這就是為何要開發 <emphasis>jail</emphasis> 的最主要原因。</para>
+
+ <para>Jail 在各種方式分進合擊,改進傳統 &man.chroot.2; 環境的概念。
+ 在傳統的 &man.chroot.2; 環境中,只限制 process 對於檔案系統的存取部分,
+ 而系統資源的其他部分(例如系統帳號、執行中的 process、網路子系統)則是由
+ chroot process 與 host 系統的其他 process 一起共享。
+ Jail 以『虛擬化』來擴展這模型,不單只有檔案系統的存取,還延伸到
+ 系統帳號、&os; kernel 的網路子系統及其他系統資源的虛擬化。
+ 關於這些 jail 環境存取的細微調控,請參閱 <xref linkend="jails-tuning"/>。</para>
+
+ <para>jail 具有下列四項特色:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>目錄子樹(directory subtree) &mdash; 也就是進入 jail 的起點。
+ 一旦進入 jail 之後,process 就不再被允許跳到 subtree 以外。
+ &amp;傳統會影響到 &man.chroot.2; 最初設計的安全問題,就不會再影響
+ &os; jail。</para>
+ </listitem>
+
+ <listitem>
+ <para>主機名稱(hostname) &mdash; 用於 jail 的 hostname。 由於
+ jail 主要用於網路服務,因此若各 jail 皆有名稱,
+ 對於系統管理工作的簡化會相當有效。</para>
+ </listitem>
+
+ <listitem>
+ <para><acronym>IP</acronym> address &mdash; 是用來給 jail 使用,
+ 並且在 jail 生命週期內都無法變更。 通常 jail 的 IP address
+ 是現有網卡的 alias address,但這並不是必須的。</para>
+ </listitem>
+
+ <listitem>
+ <para>指令(Command) &mdash; 準備在 jail 內執行的完整路徑。 這指令是相對於
+ jail 環境的根目錄,視 jail 環境的類型不同,而有所差異。</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>除了上述之外,jail 也可擁有自己的帳號及 <systemitem class="username">root</systemitem>
+ 帳號。 當然,這裡的<systemitem class="username">root</systemitem> 權力會受制於 jail 環境內。
+ 並且從 host 系統的角度來看,jail 的 <systemitem class="username">root</systemitem>
+ 並非無所不能的帳號。 此外 jail 的 <systemitem class="username">root</systemitem>
+ 並不能執行其對於 &man.jail.8; 環境以外的一些關鍵性操作。
+ 關於 <systemitem class="username">root</systemitem> 的能力與限制,將於稍後的
+ <xref linkend="jails-tuning"/> 介紹之。</para>
+ </sect2>
+ </sect1>
+
+ <sect1 xml:id="jails-build">
+ <title>建立和控制 Jail</title>
+
+ <para>有些系統管理者把 jail 分為下列兩種:<quote>complete(完全)</quote>
+ jail &mdash; 通常包括完整的 &os; 系統;另一種則為
+ <quote>service(服務)</quote> jail &mdash;
+ 專門只跑某單一可能要用特殊權限的程式或 service。 這只是一種概念上的區分
+ ,並不影響如何建立 jail 的過程。 至於如何建立 jail 在 &man.jail.8;
+ 內有更詳細的說明:</para>
+
+ <screen>&prompt.root; <userinput>setenv D /here/is/the/jail</userinput>
+&prompt.root; <userinput>mkdir -p $D</userinput> <co xml:id="jailpath"/>
+&prompt.root; <userinput>cd /usr/src</userinput>
+&prompt.root; <userinput>make world DESTDIR=$D</userinput> <co xml:id="jailworld"/>
+&prompt.root; <userinput>cd etc/</userinput> <footnote><para>&os; 6.0(含)
+之後就不需這步驟。</para></footnote>
+&prompt.root; <userinput>make distribution DESTDIR=$D</userinput> <co xml:id="jaildistrib"/>
+&prompt.root; <userinput>mount -t devfs $D/dev</userinput> <co xml:id="jaildevfs"/></screen>
+
+ <calloutlist>
+ <callout arearefs="jailpath">
+ <para>首先就是先為 jail 找個家。 該路徑是在 host 系統中的 jail
+ 實體位置。 習慣是放在 <filename>/usr/jail/jailname</filename>,
+ <replaceable>jailname</replaceable> 請替換為該 jail 的 hostname
+ 以便辨別。 通常 <filename>/usr</filename>
+ 會有足夠空間來存放 jail 檔案系統,對於 <quote>complete</quote> jail
+ 而言,它通常包括了 &os; 預設安裝 base system 所有檔案的拷貝檔。</para>
+ </callout>
+
+ <callout arearefs="jailworld">
+ <para>該指令將會在 jail 目錄中安裝所需的 binary、library、manual 說明等
+ 。 這些是以傳統的 &os; 方式完成 &mdash; 即首先先編譯所有檔案,
+ 接著再裝到目的地。</para>
+ </callout>
+
+ <callout arearefs="jaildistrib">
+ <para>使用 <buildtarget>distribution</buildtarget> 這個
+ <application>make</application> target 來裝所有會用到的設定檔。
+ 簡單來說該動作就是把 <filename>/usr/src/etc/</filename> 複製到 jail 環境內的
+ <filename>/etc</filename>,也就是
+ <filename>$D/etc/</filename>。</para>
+ </callout>
+
+ <callout arearefs="jaildevfs">
+ <para>對於 jail 環境而言,&man.devfs.8; 檔案系統的掛載並非必須,
+ 但另一方面,幾乎所有應用程式都會需要存取至少一個設備(device),
+ 這主要取決於該程式目的而定。 控制 jail 所能存取的設備非常重要,
+ 因為不正確的設定,會讓攻擊者對 jail 有機可趁。 至於如何透過
+ &man.devfs.8; 來控制的規則,可以參閱 &man.devfs.8; 及
+ &man.devfs.conf.5; 說明。</para>
+ </callout>
+ </calloutlist>
+
+ <para>裝好 jail 之後,就可以用 &man.jail.8; 工具。 &man.jail.8;
+ 需要四項必填參數,這些參數在 <xref linkend="jails-what"/> 有介紹過。
+ 除了這四個參數之外,還可以指定其他參數,像是以特定帳號在 jail 中執行
+ process。 <option><replaceable>command</replaceable></option>
+ 參數取決於 jail 類型而定;對於 <emphasis>virtual system(虛擬系統)
+ </emphasis>,那麼就選擇 <filename>/etc/rc</filename>,
+ 因為它會完成真正 &os; 系統啟動所需的操作。 對於 <emphasis>service(服務)
+ </emphasis> jail 而言,執行的指令取決於將在 jail 內執行的 service
+ 或應用程式而定。</para>
+
+ <para>Jail 通常要在系統開機時啟動,因此 &os; 的 <filename>rc</filename>
+ 機制提供一些便利的方式來簡化這些工作:</para>
+
+ <procedure>
+ <step>
+ <para>開機時要啟動的 jail 清單要加到 &man.rc.conf.5; 設定檔:</para>
+
+ <programlisting>jail_enable="YES" # 若設為 NO 則表示不自動啟動 jail
+jail_list="<replaceable>www</replaceable>" # 若有許多 jail 則請以空白隔開來寫</programlisting>
+ </step>
+
+ <step>
+ <para>對於每一筆在 <varname>jail_list</varname> 所列出的 jail,
+ 也要在 &man.rc.conf.5; 做出相對應的設定:</para>
+
+ <programlisting>jail_<replaceable>www</replaceable>_rootdir="/usr/jail/www" # jail 的根目錄
+jail_<replaceable>www</replaceable>_hostname="<replaceable>www</replaceable>.example.org" # jail 的 hostname
+jail_<replaceable>www</replaceable>_ip="192.168.0.10" # jail 的 IP address
+jail_<replaceable>www</replaceable>_devfs_enable="YES" # 在 jail 內 mount devfs
+jail_<replaceable>www</replaceable>_devfs_ruleset="<replaceable>www_ruleset</replaceable>" # jail 內所用的 devfs 規則表</programlisting>
+
+ <para>在 &man.rc.conf.5; 所預設的 jail 啟動設定會跑
+ <filename>/etc/rc</filename> 內的 jail script,也就是說會假設 jail
+ 是完整的虛擬系統。 若要用 service jail 類型,則要另外指定啟動指令,
+ 方法是設定對應的
+ <varname>jail_<replaceable>jailname</replaceable>_exec_start</varname>
+ 設定。</para>
+
+ <note>
+ <para>若欲知道所有可用的選項清單,請參閱 &man.rc.conf.5; 說明。</para>
+ </note>
+ </step>
+ </procedure>
+
+ <para>也可以透過手動執行 <filename>/etc/rc.d/jail</filename> script
+ 來啟動或停止 <filename>rc.conf</filename> 所設定的 jail:</para>
+
+ <screen>&prompt.root; <userinput>/etc/rc.d/jail start www</userinput>
+&prompt.root; <userinput>/etc/rc.d/jail stop www</userinput></screen>
+
+ <para>目前尚無任何方法來很乾淨地關閉 &man.jail.8;。
+ 此乃因為正常用來關閉系統的指令,目前尚不能在 jail 中使用。 目前關閉 jail
+ 最佳的方式,是在 jail 內執行下列指令,或者 jail 外面透過 &man.jexec.8;
+ 執行下列指令:</para>
+
+ <screen>&prompt.root; <userinput>sh /etc/rc.shutdown</userinput></screen>
+
+ <para>詳情請參閱 &man.jail.8; 說明。</para>
+ </sect1>
+
+ <sect1 xml:id="jails-tuning">
+ <title>微調與管理</title>
+
+ <para>可以為 jail 設定許多不同選項,並讓 &os; 的 host 系統與 jail
+ 以各種不同方式組合搭配,以符合更多的應用用途。 本節要介紹的是:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>用以微調 jail 行為與安全限制的選項。</para>
+ </listitem>
+
+ <listitem>
+ <para>可透過 &os; Ports Collection 安裝的高階 jail 管理程式,
+ 搭配這些程式可以達到一些 jail-based 解決方案。</para>
+ </listitem>
+ </itemizedlist>
+
+ <sect2 xml:id="jails-tuning-utilities">
+ <title>&os; 所提供的 jail tuning 工具</title>
+
+ <para>對於 jail 設定的微調,基本上都是透過設定 &man.sysctl.8; 變數來完成。
+ 系統提供一組 sysctl 的特殊子樹,全部相關的選項都在該子樹內,也就是
+ &os; kernel 中的 <varname>security.jail.*</varname> 子樹。
+ 下面則是與 jail 相關的主要 sysctl 設定及預設值,這些名稱都相當容易理解,
+ 如欲更進一步的資訊,請參閱 &man.jail.8; 與 &man.sysctl.8; 說明:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><varname>security.jail.set_hostname_allowed:
+ 1</varname></para>
+ </listitem>
+
+ <listitem>
+ <para><varname>security.jail.socket_unixiproute_only:
+ 1</varname></para>
+ </listitem>
+
+ <listitem>
+ <para><varname>security.jail.sysvipc_allowed:
+ 0</varname></para>
+ </listitem>
+
+ <listitem>
+ <para><varname>security.jail.enforce_statfs:
+ 2</varname></para>
+ </listitem>
+
+ <listitem>
+ <para><varname>security.jail.allow_raw_sockets:
+ 0</varname></para>
+ </listitem>
+
+ <listitem>
+ <para><varname>security.jail.chflags_allowed:
+ 0</varname></para>
+ </listitem>
+
+ <listitem>
+ <para><varname>security.jail.jailed: 0</varname></para>
+ </listitem>
+ </itemizedlist>
+
+ <para>系統管理者可在 <emphasis>host system</emphasis>
+ 透過修改這些設定值來增加、取消 Jail 內 <systemitem class="username">root</systemitem>
+ 帳號的預設限制。 請注意:有些限制是不能取消,在 &man.jail.8; 環境的
+ <systemitem class="username">root</systemitem> 不能掛載或卸載檔案系統。 此外亦不能載入、
+ 卸載 &man.devfs.8; 規則、設定防火牆規則,或執行其他需修改 kernel
+ 資料的管理作業,例如設定 kernel 的 <varname>securelevel</varname>
+ 值。</para>
+
+ <para>&os; base system 內附一些基本工具,可用來查閱目前使用中的 jail、
+ 並接上(attach) jail 以執行管理指令。 &man.jls.8; 及 &man.jexec.8;
+ 均屬於 &os; base system 之一,可用來執行一些簡單工作:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>列出有在使用的 jail 及其相對應的 jail identifier
+ (<acronym>JID</acronym>)、<acronym>IP</acronym> address、
+ hostname、路徑。</para>
+ </listitem>
+
+ <listitem>
+ <para>接上(Attach)正在運作中的 jail,並在其中執行指令以進行管理工作。
+ 這點在當 <systemitem class="username">root</systemitem> 想乾淨關閉 jail 時相當有用,
+ &man.jexec.8; 也可用在 jail 中啟動 shell 以便對其進行管理,
+ 比如:</para>
+
+ <screen>&prompt.root; <userinput>jexec 1 tcsh</userinput></screen>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2 xml:id="jails-tuning-admintools">
+ <title>&os; Ports Collection 所提供的高階管理工具</title>
+
+ <para>在諸多 third-party 所提供的 jail 管理工具當中,<package>sysutils/jailutils</package> 是最完整也最好用的。
+ 該套件是由一系列 &man.jail.8; 管理小工具所組成的。 詳情請參閱其網站介紹
+ 。</para>
+ </sect2>
+ </sect1>
+
+ <sect1 xml:id="jails-application">
+ <title>Jail 的應用</title>
+
+ <sect2 xml:id="jails-service-jails">
+ <info><title>Service Jails</title>
+ <authorgroup>
+ <author><personname><firstname>Daniel</firstname><surname>Gerzo</surname></personname><contrib>Contributed by </contrib></author>
+ </authorgroup>
+ </info>
+
+
+
+ <para>本節主要以 &a.simon; 寫的 <uri xlink:href="http://simon.nitro.dk/service-jails.html">http://simon.nitro.dk/service-jails.html</uri> 為主,加上
+ Ken Tom <email>locals@gmail.com</email> 所更新的文章。
+ 本節介紹如何設定 &os; 以 &man.jail.8; 功能來增加額外的安全層面。
+ 這部分假設您系統跑的是 RELENG_6_0 或更新的版本,
+ 並且對本章先前部分均能理解。</para>
+
+ <sect3 xml:id="jails-service-jails-design">
+ <title>Design</title>
+
+ <para>Jail 的主要問題之一在於如何對其進行更新、升級和管理。
+ 由於每個 jail 都是從頭重新編譯,對於單一 jail 而言,
+ 升級也許還不是很嚴重的問題,因為更新、升級並不會太麻煩。
+ 但對於一堆 jail 而言,升級不僅會耗費太多時間,並相當枯燥乏味。</para>
+
+ <warning>
+ <para>這些設定的前提是您對 &os; 使用、功能運用上有相當的經驗,
+ 若下面的設定對您來說太過複雜,建議您該考慮用較簡易的系統,像是
+ <package>sysutils/ezjail</package>,其提供更簡單的
+ &os; jail 管理方式。</para>
+ </warning>
+
+ <para>基本的想法是在不同的 jail 中儘量以安全的方式來共用資源
+ &mdash; 採用唯讀的 &man.mount.nullfs.8; 掛載,來讓升級更簡單,
+ 並把各個 service 放到不同的 jail 的作法會更加可行。 此外,
+ 其也提供對於如何增加、刪除、升級 jail 的簡便方式。</para>
+
+ <note>
+ <para>service 常見的例子包括:
+ <acronym>HTTP</acronym> server、<acronym>DNS</acronym>
+ server、<acronym>SMTP</acronym> server 等等。</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>如同先前所提到的,這設計主要是靠把唯讀的主要模版
+ (也就是大家所熟知的 <application>nullfs</application>)掛載到每個
+ jail,並且讓每個 jail 有個可讀、寫的設備,這設備可以是獨立實體硬碟、
+ 、分割區、或以 vnode 為後端的 &man.md.4; 設備。 在本例當中,
+ 我們採用可讀寫的 <application>nullfs</application> 掛載。</para>
+
+ <para>下面的表則介紹檔案系統的配置:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>每個 jail 都會掛載到 <filename>/home/j</filename> 底下的其中一個目錄。</para>
+ </listitem>
+ <listitem>
+ <para><filename>/home/j/mroot</filename> 則是每個
+ jail 共用的模版,並對於所有 jail 而言都是唯讀。</para>
+ </listitem>
+ <listitem>
+ <para>每個 jail 在 <filename>/home/j</filename>
+ 底下都有一個相對應的空目錄。</para>
+ </listitem>
+ <listitem>
+ <para>每個 jail 都會有 <filename>/s</filename> 目錄,
+ 該目錄會連到系統的可讀寫部分。</para>
+ </listitem>
+ <listitem>
+ <para>每個 jail 都會在 <filename>/home/j/skel</filename> 目錄建立自屬的可讀寫空間
+ 。</para>
+ </listitem>
+ <listitem>
+ <para>每個 jailspace (各 jail 可讀寫的部分) 都建在 <filename>/home/js</filename>&gt;。</para>
+ </listitem>
+ </itemizedlist>
+
+ <note>
+ <para>這邊假設所有 jail 都放在
+ <filename>/home</filename> 分割區。 當然,
+ 也可以依自身需求更改,但接下來的例子中,
+ 也要記得修改相對應的地方。</para>
+ </note>
+ <!-- Insert an image or drawing here to illustrate the example. -->
+ </sect3>
+
+ <sect3 xml:id="jails-service-jails-template">
+ <title>建立模版</title>
+
+ <para>本節將逐步介紹如何建立 jail 要用的唯讀主模版。</para>
+
+ <para>建議先把 &os; 系統升級到最新的 -RELEASE 分支,至於如何做請參閱
+ Handbook 的
+ <link xlink:href="&url.books.handbook;/makeworld.html">相關章節</link>。
+ 當更新完成之後,就要進行 buildworld 程序,此外還要裝 <package>sysutils/cpdup</package> 套件。
+ 我們將用 &man.portsnap.8; 來下載 &os; Ports Collection,
+ 在 Handbook 中對 <link xlink:href="&url.books.handbook;/portsnap.html">Portsnap 章節</link>
+ 中有相關介紹,初學者可以看看。</para>
+
+ <procedure>
+ <step>
+ <para>首先,先建立唯讀的目錄結構給 jail 放 &os; binary,
+ 接著到 &os; source tree 目錄,並安裝 jail 模版:</para>
+
+ <screen>&prompt.root; <userinput>mkdir -p /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; source tree 一樣,也把 &os; Ports Collection
+ 放一份供 jail 使用,以備 <application>mergemaster</application>
+ :</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>現在把可讀寫的檔案系統以 symlink 方式連到唯讀的檔案系統。
+ 請確認 symbolic link 是否有正確連到 <filename>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。請記住 ports 目錄是屬唯讀檔案系統。
+ 而搭配自訂的 <literal>WRKDIRPREFIX</literal> 才可以讓各 jail
+ 在可讀寫空間進行編譯。</para>
+ </step>
+ </procedure>
+ </sect3>
+
+ <sect3 xml: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="/usr/home/j/ns"
+jail_ns_devfs_enable="YES"
+jail_mail_hostname="mail.example.org"
+jail_mail_ip="192.168.3.18"
+jail_mail_rootdir="/usr/home/j/mail"
+jail_mail_devfs_enable="YES"
+jail_www_hostname="www.example.org"
+jail_www_ip="62.123.43.14"
+jail_www_rootdir="/usr/home/j/www"
+jail_www_devfs_enable="YES"</programlisting>
+
+ <warning>
+ <para>之所以要把
+ <varname>jail_<replaceable>name</replaceable>_rootdir</varname>
+ 從 <filename>/home</filename> 改為 <filename>/usr/home</filename> 的原因在於 &os;
+ 預設安裝的 <filename>/home</filename> 目錄其實只是指向 <filename>/usr/home</filename> 的 symbolic link。 而
+ <varname>jail_<replaceable>name</replaceable>_rootdir</varname>
+ 變數須為 <emphasis>實體目錄</emphasis> 而非 symbolic link,
+ 否則 jail 會拒絕啟動。 可以用 &man.realpath.1;
+ 來決定該變數。 詳情請參閱 &os;-SA-07:01.jail 安全通告。</para>
+ </warning>
+ </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 安裝可讀寫的模版。 請注意這時要用 <package>sysutils/cpdup</package>
+ ,它能確保每個目錄都有正確複製。</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> script 來啟動:</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 並新增帳號與設定相關 service 要用的 daemon
+ 。 上面的 <literal>JID</literal> 欄代表正在運作中的 jail 編號。
+ 可用下列指令以在 <literal>JID</literal> 編號 3 的 jail
+ 執行管理工作:</para>
+
+ <screen>&prompt.root; <userinput>jexec 3 tcsh</userinput></screen>
+ </sect3>
+
+ <sect3 xml:id="jails-service-jails-upgrading">
+ <title>升級</title>
+
+ <para>有時由於安全問題或者 jail 內要用新功能,而需要把 &os;
+ 系統升級到更新。 這種安裝設計方式讓既有的 jail 升級變得更加容易。
+ jail 也可以把 service 停機時間(downtime)降到最低,因為 jail
+ 只需在最後關鍵才需要重開。 此外,萬一新版有問題的話,
+ 它也提供輕鬆回溯到舊版的功能。</para>
+
+ <procedure>
+ <step>
+ <para>首先是照一般方式來升級 host system,再新增臨時的唯讀模版
+ <filename>/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>同樣地,在執行 <buildtarget>installworld</buildtarget>
+ 時會建立一些用不著的目錄,請把這些砍掉:</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>重新建立到主系統的可讀寫空間 symlink:</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>/s</filename>)
+ 是掛載在唯讀檔案系統底下,故要先卸載。</para>
+ </note>
+ </step>
+ <step>
+ <para>把舊的唯讀系統搬走,換成新的。 如此一來,
+ 可同時保留先前系統的備份,以備萬一升級後有問題可回復。
+ 這邊的命名方式採新唯讀檔案系統的建立時間,此外原先 &os;
+ Ports Collection 直接搬到新的檔案系統,以節省硬碟空間與 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>現在新的唯讀模版準備好了,只剩下重新掛載以及啟動 jail:</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 scripts 均要更新。</para>
+ </sect3>
+ </sect2>
+ </sect1>
+</chapter>
diff --git a/zh_TW.Big5/books/handbook/kernelconfig/Makefile b/zh_TW.UTF-8/books/handbook/kernelconfig/Makefile
index e2c2e5cdf0..e2c2e5cdf0 100644
--- a/zh_TW.Big5/books/handbook/kernelconfig/Makefile
+++ b/zh_TW.UTF-8/books/handbook/kernelconfig/Makefile
diff --git a/zh_TW.Big5/books/handbook/kernelconfig/chapter.xml b/zh_TW.UTF-8/books/handbook/kernelconfig/chapter.xml
index eedc59c065..1ed22cf6e4 100644
--- a/zh_TW.Big5/books/handbook/kernelconfig/chapter.xml
+++ b/zh_TW.UTF-8/books/handbook/kernelconfig/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
@@ -6,145 +6,145 @@
Original revision: 1.180
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="kernelconfig">
- <info><title>]w FreeBSD Kernel</title>
+ <info><title>設定 FreeBSD Kernel</title>
<authorgroup>
- <author><personname><firstname>Jim</firstname><surname>Mock</surname></personname><contrib>sBơG</contrib></author>
+ <author><personname><firstname>Jim</firstname><surname>Mock</surname></personname><contrib>更新、重排:</contrib></author>
</authorgroup>
<authorgroup>
- <author><personname><firstname>Jake</firstname><surname>Hamby</surname></personname><contrib> @G</contrib></author>
+ <author><personname><firstname>Jake</firstname><surname>Hamby</surname></personname><contrib> 原作為:</contrib></author>
</authorgroup>
</info>
<sect1 xml:id="kernelconfig-synopsis">
- <title>z</title>
+ <title>概述</title>
<indexterm>
<primary>kernel</primary>
<secondary>building a custom kernel</secondary>
</indexterm>
- <para>kernel O &os; @~tΪ֤ߡC
- FtΪB@A]tMO޲zBwޡBBwЦsC
- ޥثe &os; jhiHΰʺA module ӸJBһݥ\A
- ɭԤnǷ|sհt kernelC</para>
+ <para>kernel 是整個 &os; 作業系統的核心。
+ 它控制了系統的整體運作,包含和記憶體管理、安全控管、網路、硬碟存取等等。
+ 儘管目前 &os; 大多可以用動態 module 來載入、卸載所需功能,
+ 但有時候仍有必要學會重新調配 kernel。</para>
- <para>ŪoAzNFѡJ</para>
+ <para>讀完這章,您將了解︰</para>
<itemizedlist>
<listitem>
- <para>ݭnsհtBsĶ kernelH</para>
+ <para>為何需要重新調配、編譯 kernel?</para>
</listitem>
<listitem>
- <para>nק kernel ]wɡH</para>
+ <para>要怎麼修改 kernel 設定檔?</para>
</listitem>
<listitem>
- <para>pH kernel ]wɨӫإߡBsĶs kernel OH</para>
+ <para>如何以 kernel 設定檔來建立、編譯新的 kernel 呢?</para>
</listitem>
<listitem>
- <para>pw˷s kernelC</para>
+ <para>如何安裝新的 kernel。</para>
</listitem>
<listitem>
- <para>pBz kernel ~Lk}ΡC</para>
+ <para>如何處理 kernel 錯誤無法開機的情形。</para>
</listitem>
</itemizedlist>
- <para>|ҪOOH <systemitem class="username">root</systemitem> vӶiC</para>
+ <para>本章所舉例的相關指令都是以 <systemitem class="username">root</systemitem> 權限來進行。</para>
</sect1>
<sect1 xml:id="kernelconfig-custom-kernel">
- <title>ݭnsհtBsĶ kernelH</title>
+ <title>為何需要重新調配、編譯 kernel?</title>
- <para> &os; kernel Q٬ <quote>monolithic</quote> kernelC
- oNOɪ kernel OӤjY{ABu䴩TwwӤwC
- pGzQ kernel ]wA򥲶sĶ@ӷsís}A~ҥΡC</para>
+ <para>早期的 &os; 的 kernel 被戲稱為 <quote>monolithic</quote> kernel。
+ 這意思是說當時的 kernel 是個大塊頭程式,且只支援固定的硬體而已。
+ 如果您想改變 kernel 的設定,那麼必須編譯一個新的並重新開機,才能啟用。</para>
- <para>{b &os; wֳtsA޲zҦA䭫nSOG
- kernel \iHHɨ̾ڻݨDA
- ӥHʺAJΨ kernel moduleC
- oϱo kernel ֳt]sҦӧ@վ
- (IOGOqW PCMCIA d@˧YY)
- AάOW[L쥻w] kernel(<filename>GENERIC</filename>)ҨS\C
- oؼҦANs modular kernel(֤߼Ҳ)C</para>
+ <para>現在的 &os; 已快速成長到新型態的管理模式,其重要特色是:
+ kernel 功能可以隨時依據需求,
+ 而以動態載入或卸載相關的 kernel module。
+ 這使得 kernel 能夠快速因應新的環境而作調整
+ (有點像是:筆記型電腦上的 PCMCIA 卡一樣即插即用)
+ ,或是增加其他原本的預設 kernel(<filename>GENERIC</filename>)所沒有的功能。
+ 這種模式,就叫做 modular kernel(核心模組)。</para>
- <para>ަpA٬O@ǥ\ऴsĶb kernel ~C]ɭԬO]oǥ\P kernel
- X۷KAӵLkŅ˦iʺAJ module
- FӦɭԡAhO]SHŨӧ˨ kernel module @C</para>
+ <para>儘管如此,還是有一些功能仍須編譯在 kernel 內才行。因為有時候是因為這些功能與 kernel
+ 結合的相當複雜緊密,而無法將它們弄成可動態載入的 module
+ ;而有時候,則是因為沒有人有空來弄那些 kernel module 的實作。</para>
- <para>sհtBsĶ kernel XGOC BSD ϥΪ̩ҥgL{C
- ޳ou@iӮɡAb &os; ϥΤW|\hnBC
- 򥲶䴩jhƦUw骺 <filename>GENERIC</filename> kernel ۤ񪺸ܡA
- ۦհt kernel PBbGiHyKzAu䴩yۤvwzNnC
- nBbAĴpJ</para>
+ <para>重新調配、編譯 kernel 幾乎是每位 BSD 使用者所必須經歷的過程。
+ 儘管這項工作可能比較耗時,但在 &os; 的使用上會有許多好處。
+ 跟必須支援大多數各式硬體的 <filename>GENERIC</filename> kernel 相比的話,
+ 自行調配 kernel 不同處在於:可以更『體貼』,只支援『自己硬體』的部分就好。
+ 好處在於,譬如︰</para>
<itemizedlist>
<listitem>
- <para>}tק֡G]ۦհt kernel uݭnztΤWwA
- ҥHҰʩҪ᪺L{yZֳtC</para>
+ <para>開機速度更快:因為自行調配的 kernel 只需要偵測您系統上的硬體,
+ 所以讓啟動所花的過程更流暢快速。</para>
</listitem>
<listitem>
- <para>ΪO֡Gۦհt kernel q`|
- <filename>GENERIC</filename> ֤ߨϥΧ֪OAѩ kernel
- @sbO餺A]oNo[nC]A
- OptΨӻA
- ۦհt kernel Nioh@ΡBxŶC</para>
+ <para>佔用的記憶體更少:自行調配的 kernel 通常會比
+ <filename>GENERIC</filename> 核心使用更少的記憶體,由於 kernel
+ 必須一直存放在記憶體內,因此這就顯得更加重要。因此,
+ 對於記憶體較小的系統來說,
+ 自行調配的 kernel 就可發揮更多的作用、揮灑空間。</para>
</listitem>
<listitem>
- <para>i䴩hwGzibۦհt kernel W[@ǭ쥻
- <filename>GENERIC</filename> ֤ߨSѪw䴩AOĥdC</para>
+ <para>可支援更多硬體:您可在自行調配的 kernel 增加一些原本
+ <filename>GENERIC</filename> 核心沒有提供的硬體支援,像是音效卡之類的。</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="kernelconfig-devices">
- <info><title>tεw</title>
+ <info><title>探測系統硬體</title>
<authorgroup>
<author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Written by </contrib></author>
</authorgroup>
</info>
- <para>bi kernel ]wȫeA
- ӾUwT@Iլd|O|C
- Y &os; ëDDn@~tΡA]iHPzLثeҨϥΪ@~tΡA
- ӬdݬwTC |ҨӻA&microsoft;
- <application>˸m޲z(Device Manager)</application>
- q`|ثe˪wTC <application>˸m޲z</application>
- ObxC</para>
+ <para>在進行 kernel 設定的探索之旅前,
+ 先把該機器各項硬體資訊作點調查會是明智之舉。
+ 若 &os; 並非主要的作業系統,那麼也可以輕鬆透過目前所使用的作業系統,
+ 來查看相關硬體資訊表。 舉例來說,&microsoft; 的
+ <application>裝置管理員(Device Manager)</application>
+ 內通常會有目前有裝的硬體資訊。 而 <application>裝置管理員</application>
+ 是在控制台。</para>
<note>
- <para>&microsoft.windows; YǪhOzL
- <application>t(System)</application> AiJ
- <application>˸m޲z</application>C</para>
+ <para>&microsoft.windows; 某些版本則是先透過
+ <application>系統(System)</application> 再進入
+ <application>裝置管理員</application>。</para>
</note>
- <para>YӾ|w˥@~tΡANn˦ۧXwTC
- 䤤@ؤ覡OzL &man.dmesg.8; H &man.man.1;C &os;
- Wjhw鳣| man 䴩W櫬A
- åB}L{A]|CX쪺wC |ӨҤlA
- UoXOƹAåBOH <filename>psm</filename>
- Xʵ{G</para>
+ <para>若該機器尚未安裝任何作業系統,那麼就要親自找出相關硬體資訊。
+ 其中一種方式是透過 &man.dmesg.8; 以及 &man.man.1;。 &os;
+ 上大多硬體都會有相關的 man 說明有支援的規格型號,
+ 並且開機的偵測過程中,也會列出有找到的硬體。 舉個例子,
+ 下面這幾行是說有偵測到滑鼠,並且是以 <filename>psm</filename>
+ 驅動程式:</para>
<programlisting>psm0: &lt;PS/2 Mouse&gt; irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: [ITHREAD]
psm0: model Generic PS/2 mouse, device ID 0</programlisting>
- <para>Xʵ{nbۭq kernel ]wɤ[JAΪ̬O
- &man.loader.conf.5;C</para>
+ <para>驅動程式必須要在自訂的 kernel 設定檔內加入,或者是用
+ &man.loader.conf.5;。</para>
- <para><command>dmesg</command> ɥuܨtΰTӨS}A
- JoرpЬd\ <filename>/var/run/dmesg.boot</filename> ɡC</para>
+ <para><command>dmesg</command> 有時只顯示系統訊息而沒有開機偵測的部份,
+ 遇到這種情況請查閱 <filename>/var/run/dmesg.boot</filename> 檔。</para>
- <para>t~]iHzL &man.pciconf.8; ӦCXԲӪTC
- |һG</para>
+ <para>另外也可以透過 &man.pciconf.8; 來列出更詳細的相關資訊。
+ 舉例說明:</para>
<programlisting>ath0@pci0:3:0:0: class=0x020000 card=0x058a1014 chip=0x1014168c rev=0x01 hdr=0x00
vendor = 'Atheros Communications Inc.'
@@ -152,67 +152,67 @@ psm0: model Generic PS/2 mouse, device ID 0</programlisting>
class = network
subclass = ethernet</programlisting>
- <para>WܬOzL <command>pciconf -lv</command>
- Ҭݨ쪺 <filename>ath</filename> LudXʵ{C iH
- <command>man ath</command> Ӭd
- &man.ath.4; C</para>
+ <para>上面顯示是透過 <command>pciconf -lv</command>
+ 所看到的 <filename>ath</filename> 無線網卡驅動程式。 可以用
+ <command>man ath</command> 來查看
+ &man.ath.4; 的相關說明。</para>
- <para>bϥ &man.man.1; ɡA[W <option>-k</option>
- ѼƤ]iHѤǪTC HWzҤlӨAiHאּG</para>
+ <para>在使用 &man.man.1; 時,加上 <option>-k</option>
+ 參數也可以提供比較精準的資訊。 以上述例子而言,可以改為打:</para>
<screen>&prompt.root; man -k <replaceable>Atheros</replaceable></screen>
- <para>N|CXtWzr man G</para>
+ <para>就會列出有含上述關鍵字的相關 man 說明:</para>
<programlisting>ath(4) - Atheros IEEE 802.11 wireless network driver
ath_hal(4) - Atheros Hardware Access Layer (HAL)</programlisting>
- <para>vAAѬwҡA~UӪۭq kernel
- yL{󬰶QC</para>
+ <para>知己知彼,先瞭解相關硬體環境,才能讓接下來的自訂 kernel
+ 打造過程更為順利。</para>
</sect1>
<sect1 xml:id="kernelconfig-building">
- <title>sհtBsĶ kernel</title>
+ <title>重新調配、編譯 kernel</title>
<indexterm>
<primary>kernel</primary>
<secondary>building / installing</secondary>
</indexterm>
- <para> kernel ؿ@ֳtСC
- o̩Ҵ쪺Ҧؿb <filename>/usr/src/sys</filename> A
- ]iH <filename>/sys</filename> o symbolic link ӳsoC
- o̪\hlؿO\ kernel UզA若y kernel
- vṰnؿO
- <filename>arch/conf</filename>A
- o̬OiHwݨDӭקۭq kernel ]wC
- ~A٦bsĶ kernel L{|Ȯ\ <filename>compile</filename>
- ؿC
- 쪺 <replaceable>arch</replaceable> iHOkC[c@G
- <filename>i386</filename>B<filename>alpha</filename>B
- <filename>amd64</filename>B<filename>ia64</filename>B
- <filename>powerpc</filename>B<filename>sparc64</filename>B
- <filename>pc98</filename>(b饻y檺t@ PC w[c)C
- bUSww[cؿFAuft۹w[cӤwC
- ӨllXhOPw[cLAiHbҦ &os; i˪xW@ΡC
- ؿ[cO޿i`AOU䴩w]ơBɮרtΡA
- Hάﶵq`|\b̦ۤvlؿC</para>
+ <para>首先對 kernel 相關目錄作快速介紹。
+ 這裡所提到的所有目錄都在 <filename>/usr/src/sys</filename> 內,
+ 也可以用 <filename>/sys</filename> 這個 symbolic link 來連到這。
+ 這裡的許多子目錄分別擺放 kernel 的各組成部分,但對打造 kernel
+ 影響最重要的目錄是
+ <filename>arch/conf</filename>,
+ 這裡是可以針對需求來修改自訂 kernel 相關設定。
+ 此外,還有在編譯 kernel 過程中會暫時擺放的 <filename>compile</filename>
+ 目錄。
+ 剛講到的 <replaceable>arch</replaceable> 可以是右列架構之一:
+ <filename>i386</filename>、<filename>alpha</filename>、
+ <filename>amd64</filename>、<filename>ia64</filename>、
+ <filename>powerpc</filename>、<filename>sparc64</filename>、
+ <filename>pc98</filename>(在日本較流行的另一種 PC 硬體架構)。
+ 在各特定硬體架構目錄的東西,只搭配相對應的硬體架構而已。
+ 而其餘的原始碼則是與硬體架構無關,可以在所有 &os; 可裝的平台上共用。
+ 整體目錄架構都是有邏輯可循,像是各項有支援的硬體設備、檔案系統,
+ 以及相關選項通常都會擺在它們自己的子目錄內。</para>
- <para>ҥΨ쪺ҤlAOAϥ i386 [cC
- Ш̹ڱpAؿ@վYiC</para>
+ <para>本章所用到的例子,都是你使用 i386 架構的機器。
+ 請依實際情況,對相關目錄作調整即可。</para>
<note>
- <para>YztΤW <emphasis>S</emphasis>
- <filename>/usr/src/sys</filename> ؿA
- ]NOS kernel source code ܡA²wˤ覡NOH
- <systemitem class="username">root</systemitem> vӰ <command>sysinstall</command>A
- ۽п <guimenuitem>Configure</guimenuitem>AM
- <guimenuitem>Distributions</guimenuitem> ۬
- <guimenuitem>src</guimenuitem> A
- <guimenuitem>base</guimenuitem> ̫
- <guimenuitem>sys</guimenuitem>C Yw
- <application>sysinstall</application> ӥB䦳
- <quote></quote> &os; ХiHΪܡA
- ]iHΥHUOӦwˡG</para>
+ <para>若您系統上 <emphasis>沒裝</emphasis>
+ <filename>/usr/src/sys</filename> 目錄,
+ 也就是說沒裝 kernel source code 的話,那麼最簡單安裝方式就是以
+ <systemitem class="username">root</systemitem> 權限來執行 <command>sysinstall</command>,
+ 接著請選 <guimenuitem>Configure</guimenuitem>,然後選
+ <guimenuitem>Distributions</guimenuitem> 接著為
+ <guimenuitem>src</guimenuitem> 再選
+ <guimenuitem>base</guimenuitem> 最後選
+ <guimenuitem>sys</guimenuitem>。 若不喜歡用
+ <application>sysinstall</application> 而且手邊有
+ <quote>正式的</quote> &os; 光碟可以用的話,
+ 那麼也可以用以下指令來安裝:</para>
<screen>&prompt.root; <userinput>mount /cdrom</userinput>
&prompt.root; <userinput>mkdir -p /usr/src/sys</userinput>
@@ -221,35 +221,35 @@ ath_hal(4) - Atheros Hardware Access Layer (HAL)</programlisting>
&prompt.root; <userinput>cat /cdrom/src/sbase.[a-d]* | tar -xzvf -</userinput></screen>
</note>
- <para>UӡA
- <filename>arch/conf</filename> ؿA
- ƻs <filename>GENERIC</filename> ]wɬAQ٩Is kernel W١C
- ҦpG</para>
+ <para>接下來,切換到
+ <filename>arch/conf</filename> 目錄,
+ 複製 <filename>GENERIC</filename> 設定檔為你想稱呼的新 kernel 名稱。
+ 例如:</para>
<screen>&prompt.root; <userinput>cd /usr/src/sys/i386/conf</userinput>
&prompt.root; <userinput>cp GENERIC MYKERNEL</userinput></screen>
- <para>q`ARW覡OjgCpGAtd@\hPw[c &os;
- ܡAӸӾW(hostname)өRW|OC
- WҤlҥHRW <filename>MYKERNEL</filename>
- NO]otGC</para>
+ <para>通常,命名方式都是大寫。如果你負責維護許多不同硬體架構的 &os;
+ 機器的話,那麼照該機器名稱(hostname)來命名會是比較明智。
+ 上面例子中之所以命名為 <filename>MYKERNEL</filename>
+ 就是因為這緣故。</para>
<tip>
- <para>ijnL kernel ]wɪb
- <filename>/usr/src</filename>C ]YsĶJLDɡA
- 屼 <filename>/usr/src</filename> AmA
- i|Oܪܤ@C
- @uFAAiX~|G
- APɤ]屼ۤv諸 kernel ]wɡC
- ~A]nק <filename>GENERIC</filename>A]UA
- <link linkend="cutting-edge">s source tree</link>ɡA
- |Qsл\AӬק]NHӳuC</para>
+ <para>建議不要把改過的 kernel 設定檔直接放在
+ <filename>/usr/src</filename>。 因為若編譯遇到其他問題時,
+ 直接砍掉 <filename>/usr/src</filename> 再重練,
+ 可能會是比較乾脆的選擇之一。
+ 一旦真的砍了之後,你可能幾秒之後才會醒悟到:
+ 你同時也砍掉自己改的 kernel 設定檔。
+ 此外,也不要直接修改 <filename>GENERIC</filename>,因為下次你
+ <link linkend="cutting-edge">更新 source tree</link>時,
+ 它會被新版覆蓋,而相關修改也將隨之而逝。</para>
- <para>A]iҼ{ kernel ]wɧLaAMA
+ <para>你也可考慮把 kernel 設定檔改放到其他地方,然後再到
<filename>i386</filename>
- ؿحӫV symbolic linkC</para>
+ 目錄內建個指向它的 symbolic link。</para>
- <para>|ҡG</para>
+ <para>舉例:</para>
<screen>&prompt.root; <userinput>cd /usr/src/sys/i386/conf</userinput>
&prompt.root; <userinput>mkdir /root/kernels</userinput>
@@ -257,99 +257,99 @@ ath_hal(4) - Atheros Hardware Access Layer (HAL)</programlisting>
&prompt.root; <userinput>ln -s /root/kernels/MYKERNEL</userinput></screen>
</tip>
- <para>{bAN}lΦۤvws边ӭק <filename>MYKERNEL</filename>C
- Y~˦n FreeBSD ӤwAߤ@iΪs边ܥiO
- <application>vi</application> FAѩ󥦪ΪkܦhءAêgTNԲӤСA
- Aib <link linkend="bibliography">ѦҮѥ</link> yC
- LA&os; ]ѥt@ӧnΪs边As
- <application>ee</application>AsӨAoiOZnܡC
- AiHNקɮפѥH]wA
- Ϊ̨LQ諸 <filename>GENERIC</filename> ]weC</para>
+ <para>現在,就開始用自己喜歡的編輯器來修改 <filename>MYKERNEL</filename>。
+ 若才剛裝好 FreeBSD 而已,唯一可用的編輯器很可能是
+ <application>vi</application> 了,由於它的用法很多種,礙於篇幅將不詳細介紹,
+ 你可在 <link linkend="bibliography">參考書目</link> 內找到相關書籍。
+ 不過,&os; 也提供另一個更好用的編輯器,它叫做
+ <application>ee</application>,對新手而言,這可能是蠻好的選擇。
+ 你可以任意修改檔案內的相關註解以說明相關設定為何,
+ 或者其他想改的 <filename>GENERIC</filename> 設定內容。</para>
<indexterm><primary>SunOS</primary></indexterm>
- <para>YAb &sunos; Ϊ̨L BSD @~tΤUisĶ kernel gA
- ӤwgܼxgҤЪjBJC
- yܻAYzeΪO DOS o@~tΡA
- <filename>GENERIC</filename> ]wɪeNiǡASYA
- ڭ̱NbU <link linkend="kernelconfig-config">kernel ]w</link>
- |`ǺiaСC</para>
+ <para>若你有在 &sunos; 或者其他種 BSD 作業系統下進行編譯 kernel 的經驗,
+ 那麼應該已經很熟悉本篇所介紹的大部分步驟。
+ 換句話說,若您之前用的是 DOS 這類作業系統,那麼
+ <filename>GENERIC</filename> 設定檔的內容就可能比較難懂些,沒關係,
+ 我們將在下面的 <link linkend="kernelconfig-config">kernel 設定</link>
+ 會循序漸進地介紹。</para>
<note>
- <para>Yq &os; ph <link linkend="cutting-edge">sA source tree</link> ܡA
- hObiɯŤeAȥn
- <filename>/usr/src/UPDATING</filename>C
- oɷ|ЦbsL{jijDέn`NƶC
- ѩ <filename>/usr/src/UPDATING</filename> OAWثe
- &os; source code A]|Ѥ񥻤UseC</para>
+ <para>若有從 &os; 計劃去 <link linkend="cutting-edge">更新你的 source tree</link> 的話,
+ 則切記在進行任何升級之前,務必要察看
+ <filename>/usr/src/UPDATING</filename>。
+ 這檔會介紹在更新過程中的重大議題或要注意的事項。
+ 由於 <filename>/usr/src/UPDATING</filename> 是對應於你機器上目前的
+ &os; source code 版本,因此會提供比本手冊更新的內容。</para>
</note>
- <para>{b}lӽsĶ kernel aC</para>
+ <para>現在開始來編譯 kernel 吧。</para>
<procedure>
- <title>sĶ Kernel</title>
+ <title>編譯 Kernel</title>
<step>
- <para>Ф <filename>/usr/src</filename> ؿG</para>
+ <para>請切換至 <filename>/usr/src</filename> 目錄:</para>
<screen>&prompt.root; <userinput>cd /usr/src</userinput></screen>
</step>
<step>
- <para>sĶ kernelG</para>
+ <para>編譯 kernel:</para>
<screen>&prompt.root; <userinput>make buildkernel KERNCONF=MYKERNEL</userinput></screen>
</step>
<step>
- <para>w˷s kernelG</para>
+ <para>安裝新 kernel:</para>
<screen>&prompt.root; <userinput>make installkernel KERNCONF=MYKERNEL</userinput></screen>
</step>
</procedure>
<note>
- <para>n㪺 &os; source tree ~sĶ kernelC</para>
+ <para>要有完整的 &os; source tree 才能編譯 kernel。</para>
</note>
<tip>
- <para>w]pUAbsĶۭq kernel ɡA<emphasis></emphasis>
- kernel modules ]|@_sC Ynֳtɯ kernelA
- άOuQsһݪ kernel moduleAbsĶ kernel en@U
- <filename>/etc/make.conf</filename>ApG</para>
+ <para>預設情況下,在編譯自訂 kernel 時,<emphasis>全部的</emphasis>
+ kernel modules 也會一起重編。 若要快速升級 kernel,
+ 或是只想重編所需的 kernel module,那麼在編譯 kernel 前要先改一下
+ <filename>/etc/make.conf</filename>,比如:</para>
<programlisting>MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs</programlisting>
- <para>Wӳ]wȬҧƱ歫s kernel module CC</para>
+ <para>上面該設定值為所希望重編的 kernel module 列表。</para>
<programlisting>WITHOUT_MODULES = linux acpi sound/sound sound/driver/ds1 ntfs</programlisting>
- <para>ӤWo]wȫhnsJ kernel module CC YQAѨL
- kernel sĶܼơAаѾ\ &man.make.conf.5; C</para>
+ <para>而上面這設定值則為不要編入的 kernel module 列表。 若想更瞭解其他
+ kernel 編譯的相關變數,請參閱 &man.make.conf.5; 說明。</para>
</tip>
<indexterm>
<primary><filename>/boot/kernel.old</filename></primary>
</indexterm>
- <para>s kernel |ƻs <filename>/boot/kernel</filename> ؿ
- <filename>/boot/kernel/kernel</filename>Aªh
- <filename>/boot/kernel.old/kernel</filename>C
- {bOAAMN|Hs kernel }
- YDܡA᭱|Ф@<link linkend="kernelconfig-trouble">g</link>ӨUAC
- Ys kernel Lk}ܡAаѾ\ <link linkend="kernelconfig-noboot">o</link> H_tιB@C</para>
+ <para>新的 kernel 會複製到 <filename>/boot/kernel</filename> 目錄內的
+ <filename>/boot/kernel/kernel</filename>,而舊的則移至
+ <filename>/boot/kernel.old/kernel</filename>。
+ 現在呢,先關機,然後就會以新 kernel 重開機
+ 若有問題的話,本章後面會介紹一些<link linkend="kernelconfig-trouble">疑難雜症</link>來協助你。
+ 若新 kernel 無法開機的話,請參閱 <link linkend="kernelconfig-noboot">這裡</link> 以恢復系統運作。</para>
<note>
- <para>ܩ}L{LɮסB]wAp &man.loader.8;
- Ψ]wAhb <filename>/boot</filename>C
- Third party Φۭq kernel modules h|b
- <filename>/boot/kernel</filename>ALA
- `NnO kernel module P kernel O_PBA
- oIܭnA_h|ɭPíΥXDC</para>
+ <para>至於開機過程的其他相關檔案、設定,比如 &man.loader.8;
+ 及其設定,則放在 <filename>/boot</filename>。
+ Third party 或自訂的 kernel modules 則會放在
+ <filename>/boot/kernel</filename>,不過,
+ 應注意要保持 kernel module 與 kernel 是否有同步,
+ 這點很重要,否則會導致不穩或出問題。</para>
</note>
</sect1>
<sect1 xml:id="kernelconfig-config">
- <info><title>kernel ]wɸѻ</title>
+ <info><title>kernel 設定檔解說</title>
<authorgroup>
<author><personname><firstname>Joel</firstname><surname>Dahl</surname></personname><contrib>Updated for &os; 6.X by </contrib></author>
</authorgroup>
@@ -365,19 +365,19 @@ ath_hal(4) - Atheros Hardware Access Layer (HAL)</programlisting>
<secondary>configuration file</secondary>
</indexterm>
- <para>kernel ]wɪe榡۷²C
- C@泣]A@rAHΤ@өΦhӰѼơCƹWA
- ܦhjhu@ӰѼơCH <literal>#</literal>
- }YԭzNQѦӳQC
- UӱNHb <filename>GENERIC</filename> ҥX{Ǥ@@ФC
- <anchor xml:id="kernelconfig-options"/>YnݻPӥx[cUﶵB]ƦCA
- аѾ\P <filename>GENERIC</filename> ɦPؿ <filename>NOTES</filename>
- ɡC ӻPx[ctLqγAhiѾ\
- <filename>/usr/src/sys/conf/NOTES</filename>C</para>
+ <para>kernel 設定檔的內容格式相當簡單。
+ 每一行都包括一個關鍵字,以及一個或多個參數。事實上,
+ 很多行大多只有一個參數。任何以 <literal>#</literal>
+ 開頭的敘述都將被視為註解而被忽略。
+ 接下來將以在 <filename>GENERIC</filename> 所出現的順序一一介紹之。
+ <anchor xml:id="kernelconfig-options"/>若要看與該平台架構有關的各選項、設備列表,
+ 請參閱與 <filename>GENERIC</filename> 檔同目錄的 <filename>NOTES</filename>
+ 檔。 而與平台架構差異較無關的通用部份,則可參閱
+ <filename>/usr/src/sys/conf/NOTES</filename>。</para>
<note>
- <para>YFաAӻݭn@tҦiγ]w]wɡAХH
- <systemitem class="username">root</systemitem> UG</para>
+ <para>若為了測試,而需要一份含有所有可用設定的設定檔,那麼請以
+ <systemitem class="username">root</systemitem> 身份下:</para>
<screen>&prompt.root; <userinput>cd /usr/src/sys/i386/conf &amp;&amp; make LINT</userinput></screen>
</note>
@@ -387,10 +387,10 @@ ath_hal(4) - Atheros Hardware Access Layer (HAL)</programlisting>
<secondary>configuration file</secondary>
</indexterm>
- <para>U <filename>GENERIC</filename> ]wɪdҡA
- 䤤]AΪC oҤlӻPzW
+ <para>下面為 <filename>GENERIC</filename> 設定檔的範例,
+ 其中包括說明用的註釋。 這例子應該與您機器上的
<filename>/usr/src/sys/i386/conf/GENERIC</filename>
- ۷C</para>
+ 相當接近。</para>
<indexterm>
<primary>kernel options</primary>
@@ -399,11 +399,11 @@ ath_hal(4) - Atheros Hardware Access Layer (HAL)</programlisting>
<programlisting>machine i386</programlisting>
- <para>BO[cA
- <literal>alpha</literal>B<literal>amd64</literal>B
- <literal>i386</literal>B<literal>ia64</literal>B
- <literal>pc98</literal>B<literal>powerpc</literal>B
- <literal>sparc64</literal> 䤤@C</para>
+ <para>此處是指機器架構,必須為
+ <literal>alpha</literal>、<literal>amd64</literal>、
+ <literal>i386</literal>、<literal>ia64</literal>、
+ <literal>pc98</literal>、<literal>powerpc</literal>、
+ <literal>sparc64</literal> 其中之一。</para>
<indexterm>
<primary>kernel options</primary>
@@ -413,12 +413,12 @@ ath_hal(4) - Atheros Hardware Access Layer (HAL)</programlisting>
cpu I586_CPU
cpu I686_CPU</programlisting>
- <para>W]wOwnέ@ CPU C ]iHPɥ[Wh CPU
- (pU@TwO_n <literal>I586_CPU</literal>
- <literal>I686_CPU</literal>)C MӦۭq kernel ܡAijT{ۤv
- CPU AMuγ̾AXմNnFC YTw CPU 쩳Oέ@ءA
- iHd\ <filename>/var/run/dmesg.boot</filename>
- }THTwC</para>
+ <para>上面設定是指定要用哪一種 CPU 型號。 也可以同時加上多組 CPU 型號
+ (比如說萬一不確定是否要用 <literal>I586_CPU</literal> 或
+ <literal>I686_CPU</literal>)。 然而自訂 kernel 的話,建議先確認自己的
+ CPU 型號,然後只用最適合的那組就好了。 若不確定 CPU 到底是用哪一種,
+ 可以查閱 <filename>/var/run/dmesg.boot</filename>
+ 的開機訊息以確定。</para>
<indexterm>
<primary>kernel options</primary>
@@ -428,34 +428,34 @@ cpu I686_CPU</programlisting>
<programlisting>ident GENERIC</programlisting>
- <para>oO]w kernel W٬AiHHNRWAOW
- <literal>MYKERNEL</literal>AYOӥeӧ@j|o˦WrC
- <literal>ident</literal> ᭱r|b}ܡA]Yn{s kernel
- P` kernel ܡAN]wPզW٧Yi(pbۭqΪ
- kernel)C</para>
+ <para>這是設定該 kernel 名稱為何,可以隨意命名之,像是取名為
+ <literal>MYKERNEL</literal>,若是有照先前說明來作大概會取這樣名字。
+ <literal>ident</literal> 後面的字串會在開機時顯示,因此若要辨認新 kernel
+ 與常用 kernel 的話,就設定不同組名稱即可(比如在自訂實驗用的
+ kernel)。</para>
<programlisting>#To statically compile in device wiring instead of /boot/device.hints
#hints "GENERIC.hints" # Default places to look for devices.</programlisting>
- <para>&man.device.hints.5; iΨӳ]wUXʵ{ﶵC
- } &man.loader.8; |ˬdw] <filename>/boot/device.hints</filename>
- ]wɡC ϥ <literal>hints</literal> ﶵANiHo hints
- RAsJ kernel C p@ӴNb <filename>/boot</filename>
- إ <filename>device.hints</filename> ɡC</para>
+ <para>&man.device.hints.5; 可用來設定各項驅動程式的選項。
+ 開機時 &man.loader.8; 會檢查預設的 <filename>/boot/device.hints</filename>
+ 設定檔。 使用 <literal>hints</literal> 選項,就可以把這些 hints
+ 靜態編入 kernel 內。 如此一來就不必在 <filename>/boot</filename>
+ 內建立 <filename>device.hints</filename> 檔。</para>
<!-- XXX: Add a comment here that explains when compiling hints into
the kernel is a good idea and why. -->
<programlisting>makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols</programlisting>
- <para>[W <option>-g</option> ﶵܡA&os; |bsĶL{[W debug
- ΪTAzLoﶵ| &man.gcc.1; ҥ debug
- ҷ|Ψ쪺TC</para>
+ <para>加上 <option>-g</option> 選項的話,&os; 會在編譯過程加上 debug
+ 用的資訊,透過這選項會讓 &man.gcc.1; 啟用 debug
+ 所會用到的相關資訊。</para>
<programlisting>options SCHED_4BSD # 4BSD scheduler</programlisting>
- <para>&os;. DzΩҥ(åBOw])t CPU schedulerC YzMnp]w
- AЫOdo]wC</para>
+ <para>&os;. 傳統所用(並且是預設)的系統 CPU scheduler。 若您不清楚要如何設定
+ ,請保留這設定。</para>
<programlisting>options PREEMPTION # Enable kernel thread preemption</programlisting>
@@ -589,10 +589,10 @@ options NFS_ROOT # NFS usable as /, requires NFSCLIENT</progra
run older applications; platforms that gained support only in
5.X, such as ia64 and &sparc64;, do not require this option.</para>
- <programlisting>options COMPAT_FREEBSD5 # P &os;5 ۮe</programlisting>
+ <programlisting>options COMPAT_FREEBSD5 # 與 &os;5 相容</programlisting>
- <para>O &os;&nbsp;6.X ΧsYݤ䴩 &os;&nbsp;5.X
- tΩIs~ݭn]wC</para>
+ <para>此行是 &os;&nbsp;6.X 及更新的版本若需支援 &os;&nbsp;5.X
+ 系統呼叫才需要設定。</para>
<programlisting>options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI</programlisting>
@@ -678,7 +678,7 @@ options NFS_ROOT # NFS usable as /, requires NFSCLIENT</progra
include support for multiple processors.</para>
<note>
- <para>apic u i386 [c~AL[ch[WoC</para>
+ <para>apic 只限 i386 架構才有,其他架構則不必加上這行。</para>
</note>
<programlisting>device eisa</programlisting>
@@ -834,8 +834,8 @@ device atkbdc # AT keyboard controller</programlisting>
<programlisting>device kbdmux # keyboard multiplexer</programlisting>
- <para>hL䴩C YPɱhLܡA
- YnӦ]SYC</para>
+ <para>多重鍵盤的支援。 若不打算同時接多組鍵盤的話,
+ 那麼若要移除該行也沒關係。</para>
<programlisting>device vga # VGA video card driver</programlisting>
@@ -1047,14 +1047,14 @@ of which cards are
<programlisting># Wireless NIC cards
device wlan # 802.11 support</programlisting>
- <para> 802.11 зǪ䴩C YnLuWAhݥ[WoC</para>
+ <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 [K]ƪ䴩C Ynw[KH 802.11i wwA
- hݥ[WoC</para>
+ <para>對 802.11 加密設備的支援。 若要安全加密以及 802.11i 安全協定,
+ 則需加上這行。</para>
<programlisting>device an # Aironet 4500/4800 802.11 wireless NICs.
device ath # Atheros pci/cardbus NIC's
diff --git a/zh_TW.Big5/books/handbook/l10n/Makefile b/zh_TW.UTF-8/books/handbook/l10n/Makefile
index 45d3429ab1..45d3429ab1 100644
--- a/zh_TW.Big5/books/handbook/l10n/Makefile
+++ b/zh_TW.UTF-8/books/handbook/l10n/Makefile
diff --git a/zh_TW.Big5/books/handbook/l10n/chapter.xml b/zh_TW.UTF-8/books/handbook/l10n/chapter.xml
index 0c633e3aac..2ea4f83ad6 100644
--- a/zh_TW.Big5/books/handbook/l10n/chapter.xml
+++ b/zh_TW.UTF-8/books/handbook/l10n/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
@@ -6,7 +6,7 @@
Original revision: 1.119
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="l10n">
- <info><title>yt]w - I18N/L10N ΪkP]w</title>
+ <info><title>語系設定 - I18N/L10N 用法與設定</title>
<authorgroup>
<author><personname><firstname>Andrey</firstname><surname>Chernov</surname></personname><contrib>Contributed by </contrib></author>
</authorgroup>
@@ -19,108 +19,108 @@
<sect1 xml:id="l10n-synopsis">
- <title>z</title>
+ <title>概述</title>
- <para>ѩ FreeBSD OG@ɪϥΪ̤ΧӤuҤpeADnQO
- FreeBSD ڤơBgijDAHKyO^ytH]බQUu@C
- b@~tΡBε{ؼhADnOzL i18n зǨӹ@AҥHA
- o̧ڭ̱N|ФjPB@覡C</para>
+ <para>由於 FreeBSD 是分佈全世界的使用者及志工所支持的計畫,本章主要探討的是
+ FreeBSD 的國際化、本土化議題,以便讓母語不是英語系的人也能順利完成各項工作。
+ 在作業系統、應用程式兩種層面,主要都是透過 i18n 標準來實作的,所以,
+ 這裡我們將會介紹大致運作方式。</para>
- <para>ŪoAzNFѡJ</para>
+ <para>讀完這章,您將了解︰</para>
<itemizedlist>
- <listitem><para>UؤPyPaϳ]wpb@~tΤWisXC</para></listitem>
- <listitem><para>p]wnJΪ shell ytҡC</para></listitem>
- <listitem><para>pNA console ]^yH~yt]wC</para></listitem>
- <listitem><para>pϥΤPyt]wA X Window B@ˤC</para></listitem>
- <listitem><para>iHhP i18n Wۮeε{WơC</para></listitem>
+ <listitem><para>各種不同的語言與地區設定如何在作業系統上進行編碼。</para></listitem>
+ <listitem><para>如何設定登入用的 shell 語系環境。</para></listitem>
+ <listitem><para>如何將你的 console 設為英語以外的語系設定。</para></listitem>
+ <listitem><para>如何使用不同語系的設定,來讓 X Window 運作更親切。</para></listitem>
+ <listitem><para>哪邊可以找到更多與 i18n 規格相容的應用程式規格資料。</para></listitem>
</itemizedlist>
- <para>b}l\ŪoeAzݭnJ</para>
+ <para>在開始閱讀這章之前,您需要︰</para>
<itemizedlist>
- <listitem><para>DpH ports/packages Ӧwε{(<xref linkend="ports"/>)C</para></listitem>
+ <listitem><para>知道如何以 ports/packages 來安裝應用程式(<xref linkend="ports"/>)。</para></listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="l10n-basics">
- <title>L10N ¦</title>
+ <title>L10N 基礎概念</title>
<sect2>
- <title>O I18N/L10N?</title>
+ <title>什麼是 I18N/L10N?</title>
<indexterm>
<primary>internationalization</primary>
<see>localization</see>
</indexterm>
<indexterm><primary>localization</primary></indexterm>
- <para>{}oHߺD internationalization Yg I18NAƦr 18 DO̫eP̫᭱rrӼ`MA
- L10N ]OH@˪覡AO <quote>localization</quote> YgC
- unŦX I18N/L10N WBwε{ANiHϥΪ̨̦Uۻytӧ@]wC</para>
+ <para>程式開發人員習慣把 internationalization 縮寫為 I18N,中間的數字 18 乃是最前與最後面字母之間的字母個數總和,
+ 而 L10N 也是以一樣的方式,是 <quote>localization</quote> 的縮寫。
+ 只要有符合 I18N/L10N 規格、協定的應用程式,就可以讓使用者依各自語系而作設定。</para>
- <para>I18N ε{OH I18N }ouӶi}oA
- iH{}oHzLg²檺rɡANiHeWBT½ĶUytC
- ڭ̱jPij{}oH`oӹCWhC</para>
+ <para>I18N 應用程式是以 I18N 開發工具來進行開發的,
+ 它可以讓程式開發人員透過寫簡單的文字檔,就可以把執行畫面上的選單、訊息翻譯為各語系的版本。
+ 我們強烈建議程式開發人員遵循這個遊戲規則。</para>
</sect2>
<sect2>
- <title>Өϥ I18N/L10NH</title>
+ <title>為何該使用 I18N/L10N?</title>
- <para>unŦX I18N/L10N зǡANiHPaݡBJBBzD^媺ơC</para>
+ <para>只要有符合 I18N/L10N 標準,就可以輕鬆地看、輸入、處理非英文的資料。</para>
</sect2>
<sect2>
- <title>I18N 䴩ǻytH</title>
+ <title>I18N 支援哪些語系?</title>
- <para>I18N M L10N ëD FreeBSD үSAثeo@ɤWXG@Dnyt䴩A
- OGBwBBBkBXBVn嵥C</para>
+ <para>I18N 和 L10N 並非 FreeBSD 所特有的,目前這世界上的幾乎任一主要語系都有支援,
+ 像是:中文、德文、日文、韓文、法文、俄文、越南文等等。</para>
</sect2>
</sect1>
<sect1 xml:id="using-localization">
- <title>ϥλyt]w(Localization)</title>
+ <title>使用語系設定(Localization)</title>
- <para>I18N M L10N ëD FreeBSD үSAӬO@qCWhC
- ڭ̹yAb FreeBSD @ɤP˿uoCWhC</para>
+ <para>I18N 和 L10N 並非 FreeBSD 所特有的,而是共通的遊戲規則。
+ 我們鼓勵你在 FreeBSD 世界中同樣遵守這項遊戲規則。</para>
<indexterm><primary>locale</primary></indexterm>
- <para>Locale ]wѤTӳҲզGyNX(Language Code)BX(Country Code)BsX(Encoding)C
- ҥHALocale ]wWٴNOѳoTӤ@_զG</para>
+ <para>Locale 設定由三個部分所組成:語言代碼(Language Code)、國碼(Country Code)、編碼(Encoding)。
+ 所以,Locale 的設定名稱就是由這三個一起組成:</para>
- <programlisting><replaceable>yNX</replaceable>_<replaceable>X</replaceable>.<replaceable>sX</replaceable></programlisting>
+ <programlisting><replaceable>語言代碼</replaceable>_<replaceable>國碼</replaceable>.<replaceable>編碼</replaceable></programlisting>
<sect2>
- <title>yBX</title>
+ <title>語言、國碼</title>
<indexterm><primary>language codes</primary></indexterm>
<indexterm><primary>country codes</primary></indexterm>
- <para>ϥΪ̥nDoǯSwXByNX(X|iDε{Өϥέ@ػy)A
- ~ FreeBSD ΨL䴩 I18N &unix; tΧ@ locale ]wC
- ~As(borwser)BSMTP/POP DBWeb D]Ho[cDC
- UOpϥΡyyNXBXzҤlG</para>
+ <para>使用者必須要先知道這些特定的國碼、語言代碼(國碼會告訴應用程式該使用哪一種語言),
+ 才能讓 FreeBSD 或其他支援 I18N 的 &unix; 類系統作 locale 相關設定。
+ 此外,網頁瀏覽器(borwser)、SMTP/POP 主機、Web 主機等也都以這架構為主。
+ 下面是如何使用『語言代碼、國碼』的例子:</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
- <entry>yNX/X</entry>
- <entry>²</entry>
+ <entry>語言代碼/國碼</entry>
+ <entry>簡介</entry>
</row>
</thead>
<tbody>
<row>
<entry>en_US</entry>
- <entry>^()</entry>
+ <entry>英文(美國)</entry>
</row>
<row>
<entry>ru_RU</entry>
- <entry>X(X)</entry>
+ <entry>俄文(俄國)</entry>
</row>
<row>
<entry>zh_TW</entry>
- <entry>餤(xW)</entry>
+ <entry>正體中文(台灣)</entry>
</row>
</tbody>
</tgroup>
@@ -129,17 +129,17 @@
</sect2>
<sect2>
- <title>sX</title>
+ <title>編碼</title>
<indexterm><primary>encodings</primary></indexterm>
<indexterm><primary>ASCII</primary></indexterm>
- <para>ǻyëDĥ ASCII sXAiOG 8-bitBwide
- multibyte rAԱаѾ\ &man.multibyte.3;C
- j{iLkTPOBλ~PSrCӸs{iH{
- 8-bit rC ѩU{@k@AϥΪ̥iݭnbsĶ{ɡA[W
- wide multibyte r䴩]wAάOTվ~C
- nJBBz wide multibyte rܡAihhQ <link xlink:href="&url.base;/ports/index.html">FreeBSD Ports Collection</link> Uy{C
- ԱаѾ\ FreeBSD U port I18N C</para>
+ <para>有些語言並非採用 ASCII 編碼,可能是: 8-bit、wide
+ 或 multibyte 字元,詳情請參閱 &man.multibyte.3;。
+ 較古早的程式可能無法正確判別、或誤判為特殊控制字元。而較新的程式都可以辨認
+ 8-bit 字元。 由於各程式的作法不一,使用者可能需要在編譯程式時,加上
+ wide 或 multibyte 字元的支援設定,或是正確調整才行。
+ 要輸入、處理 wide 或 multibyte 字元的話,可多多利用 <link xlink:href="&url.base;/ports/index.html">FreeBSD Ports Collection</link> 內有各國語言版本的程式。
+ 詳情請參閱 FreeBSD 各 port 中的 I18N 相關文件。</para>
<para>Specifically, the user needs to look at the application
documentation to decide on how to configure it correctly or to
diff --git a/zh_TW.Big5/books/handbook/linuxemu/Makefile b/zh_TW.UTF-8/books/handbook/linuxemu/Makefile
index a477216e72..a477216e72 100644
--- a/zh_TW.Big5/books/handbook/linuxemu/Makefile
+++ b/zh_TW.UTF-8/books/handbook/linuxemu/Makefile
diff --git a/zh_TW.Big5/books/handbook/linuxemu/chapter.xml b/zh_TW.UTF-8/books/handbook/linuxemu/chapter.xml
index 56817d7047..47d61c8ba1 100644
--- a/zh_TW.Big5/books/handbook/linuxemu/chapter.xml
+++ b/zh_TW.UTF-8/books/handbook/linuxemu/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
@@ -6,7 +6,7 @@
Original revision: 1.132
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="linuxemu">
- <info><title>P Linux Binary ۮe譱</title>
+ <info><title>與 Linux Binary 的相容方面</title>
<authorgroup>
<author><personname><firstname>Jim</firstname><surname>Mock</surname></personname><contrib>Restructured and parts updated by </contrib></author>
<!-- 22 Mar 2000 -->
@@ -20,82 +20,82 @@
<sect1 xml:id="linuxemu-synopsis">
- <title>z</title>
+ <title>概述</title>
<indexterm><primary>Linux binary compatibility</primary></indexterm>
<indexterm>
<primary>binary compatibility</primary>
<secondary>Linux</secondary>
</indexterm>
- <para>FreeBSD ѨLX &unix; like @~tΪ binary ۮeʡA䤤]AF LinuxC
- Ai|ǴeG FreeBSD ݭn Linux Mΰ(binary)OH׫²A
- \hqB}o̥u| Linux }o{A]oOثeT <quote>̼</quote> NC
- oGo\h FreeBSD ϥΪ̤ohUoǤHO_ѥib FreeBSD W檺C
- DOAjhƤqäAѷ|h֤H| FreeBSD A]L̤u}o Linux C
- FreeBSD ϥΪ̸ӫOH״NO FreeBSD ҴѪ Linux binary ۮeC</para>
+ <para>FreeBSD 有提供其他幾種 &unix; like 作業系統的 binary 相容性,其中包括了 Linux。
+ 你可能會納悶:為什麼 FreeBSD 需要能夠執行 Linux 專用執行檔(binary)呢?答案很簡單,
+ 許多公司、開發者只會 Linux 開發程式,因為這是目前資訊界 <quote>最熱門</quote> 的玩意。
+ 這逼得許多 FreeBSD 使用者不得不去勸說這些人是否提供可直接在 FreeBSD 上執行的版本。
+ 但問題是,大多數公司並不瞭解會有多少人會用 FreeBSD 版,因此他們仍只開發 Linux 版。
+ 那麼 FreeBSD 使用者該怎麼辦呢?答案就是用 FreeBSD 所提供的 Linux binary 相容。</para>
- <para>²Aoجۮeʥi FreeBSD ϥΪ̪ 90% Linux {AӤקC
- oǥ]AFG <application>&staroffice;</application>B
- <application>&netscape;</application> Linux B
- <application>&adobe;&nbsp;&acrobat;</application>B
- <application>RealPlayer</application>B
- <application>VMware</application>B
- <application>&oracle;</application>B
- <application>WordPerfect</application>B<application>Doom</application>B
- <application>Quake</application> C~A]H^bYDZpUA
- oǦb FreeBSD W檺 Linux {AƦܤ쥻b Linux onC</para>
+ <para>簡單來講,這種相容性可讓 FreeBSD 使用者直接執行約 90% 的 Linux 程式,而不必做任何修改。
+ 這些包括了: <application>&staroffice;</application>、
+ <application>&netscape;</application> 的 Linux 版、
+ <application>&adobe;&nbsp;&acrobat;</application>、
+ <application>RealPlayer</application>、
+ <application>VMware</application>、
+ <application>&oracle;</application>、
+ <application>WordPerfect</application>、<application>Doom</application>、
+ <application>Quake</application> 等等。此外,也有人回報說在某些情況下,
+ 這些在 FreeBSD 上執行的 Linux 程式,甚至比原本在 Linux 執行得更好。</para>
- <para>MөOA٬Oǥu Linux Sw@~tΥ\Ab FreeBSD Wå䴩C
- pG Linux {LݥΥu &i386; [cW~Ϊ\ApG 8086 ҦA
- hiLkb FreeBSD B@`C</para>
+ <para>然而呢,還是有些只限 Linux 特定的作業系統功能,在 FreeBSD 上並未支援。
+ 如果 Linux 程式過於濫用只有 &i386; 架構上才能用的功能,比如:虛擬 8086 模式,
+ 則可能無法在 FreeBSD 運作正常。</para>
- <para>ŪoAzNFѡG</para>
+ <para>讀完這章,您將了解:</para>
<itemizedlist>
<listitem>
- <para>pҥ Linux ۮeҦC</para>
+ <para>如何啟用 Linux 相容模式。</para>
</listitem>
<listitem>
- <para>pwB~ Linux share librariesC</para>
+ <para>如何安裝額外的 Linux share libraries。</para>
</listitem>
<listitem>
- <para>pb FreeBSD Ww Linux {C</para>
+ <para>如何在 FreeBSD 上安裝 Linux 程式。</para>
</listitem>
<listitem>
- <para>FreeBSD W Linux ۮeҦ@Ӹ`C</para>
+ <para>FreeBSD 上的 Linux 相容模式的實作細節。</para>
</listitem>
</itemizedlist>
- <para>b\ŪoeAzFѡG</para>
+ <para>在閱讀這章之前,您應當了解:</para>
<itemizedlist>
<listitem>
- <para>DpzL port Ӧw˳n(<xref linkend="ports"/>)C</para>
+ <para>知道如何透過 port 機制來安裝軟體(<xref linkend="ports"/>)。</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="linuxemu-lbc-install">
- <title>w</title>
+ <title>安裝</title>
<indexterm><primary>KLD (kernel loadable object)</primary></indexterm>
- <para>w]ä|} Linux ۮeҦA²檺ҥΤ覡ANOJ
+ <para>預設並不會打開 Linux 相容模式,最簡單的啟用方式,就是載入
<literal>linux</literal> KLD object (<quote>Kernel LoaDable
- object</quote>)C J覡AФ <systemitem class="username">root</systemitem>
- vAMᥴUCOG</para>
+ object</quote>)。 載入方式,請切為 <systemitem class="username">root</systemitem>
+ 權限,然後打下列指令:</para>
<screen>&prompt.root; <userinput>kldload linux</userinput></screen>
- <para>YnC}ҥΪܡAЧUCe[
- <filename>/etc/rc.conf</filename> ɡG</para>
+ <para>若要每次開機都啟用的話,請把下列內容加到
+ <filename>/etc/rc.conf</filename> 檔:</para>
<programlisting>linux_enable="YES"</programlisting>
- <para>t~iH &man.kldstat.8; OAӽT{ KLD JG</para>
+ <para>另外可以用 &man.kldstat.8; 指令,來確認有哪些 KLD 有載入:</para>
<screen>&prompt.user; <userinput>kldstat</userinput>
Id Refs Address Size Name
diff --git a/zh_TW.Big5/books/handbook/mac/Makefile b/zh_TW.UTF-8/books/handbook/mac/Makefile
index ecd40cd7e2..ecd40cd7e2 100644
--- a/zh_TW.Big5/books/handbook/mac/Makefile
+++ b/zh_TW.UTF-8/books/handbook/mac/Makefile
diff --git a/zh_TW.Big5/books/handbook/mac/chapter.xml b/zh_TW.UTF-8/books/handbook/mac/chapter.xml
index 030de3482f..3d2579c75e 100644
--- a/zh_TW.Big5/books/handbook/mac/chapter.xml
+++ b/zh_TW.UTF-8/books/handbook/mac/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
$FreeBSD$
diff --git a/zh_TW.Big5/books/handbook/mail/Makefile b/zh_TW.UTF-8/books/handbook/mail/Makefile
index 6138758090..6138758090 100644
--- a/zh_TW.Big5/books/handbook/mail/Makefile
+++ b/zh_TW.UTF-8/books/handbook/mail/Makefile
diff --git a/zh_TW.Big5/books/handbook/mail/chapter.xml b/zh_TW.UTF-8/books/handbook/mail/chapter.xml
index 4f02ded47d..e3d907ff0f 100644
--- a/zh_TW.Big5/books/handbook/mail/chapter.xml
+++ b/zh_TW.UTF-8/books/handbook/mail/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
@@ -6,7 +6,7 @@
Original revision: 1.136
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="mail">
- <info><title>qll</title>
+ <info><title>電子郵件</title>
<authorgroup>
<author><personname><firstname>Bill</firstname><surname>Lloyd</surname></personname><contrib>Original work by </contrib></author>
</authorgroup>
@@ -18,119 +18,119 @@
<sect1 xml:id="mail-synopsis">
- <title>z</title>
+ <title>概述</title>
<indexterm><primary>email</primary></indexterm>
- <para><quote>qll</quote>Ϊ̫U٪ emailA
- DO{ϥγ̼sxq覡@C DnЦpb &os; WwˡB
- ]w email AȡAHΦpb &os; oHF MӳoäO㪺ѦҤUA
- ڤW\hݦҶqnƶåΡAYAѲӸ`аѾ\ <xref linkend="bibliography"/> ѦҮyC</para>
+ <para><quote>電子郵件</quote>或者俗稱的 email,
+ 乃是現今使用最廣泛的溝通方式之一。 本章主要介紹如何在 &os; 上安裝、
+ 設定 email 服務,以及如何在 &os; 收發信件; 然而這並不是完整的參考手冊,
+ 實際上許多需考量的重要事項並未提及,若欲瞭解細節請參閱 <xref linkend="bibliography"/> 內的參考書籍。</para>
- <para>ŪoAzNFѡJ</para>
+ <para>讀完這章,您將了解︰</para>
<itemizedlist>
<listitem>
- <para>dzn餸PoqllC</para>
+ <para>哪些軟體元件與收發電子郵件有關。</para>
</listitem>
<listitem>
- <para>FreeBSD <application>sendmail</application>
- 򥻳]wɦbC</para>
+ <para>FreeBSD 內的 <application>sendmail</application>
+ 基本設定檔在哪。</para>
</listitem>
<listitem>
- <para>ݫHcPHcϧOC</para>
+ <para>遠端信箱與本機信箱的區別。</para>
</listitem>
<listitem>
- <para>p spammer(Ulsy)DkBαzlA@
- relay(o~I)C</para>
+ <para>如何阻擋 spammer(垃圾郵件製造者)非法運用您的郵件伺服器作為
+ relay(轉發中繼點)。</para>
</listitem>
<listitem>
- <para>pwˡB]wL Mail Transfer Agent(MTA) ӨN
- <application>sendmail</application>C</para>
+ <para>如何安裝、設定其他 Mail Transfer Agent(MTA) 來取代
+ <application>sendmail</application>。</para>
</listitem>
<listitem>
- <para>pBz`lADC</para>
+ <para>如何處理常見的郵件伺服器問題。</para>
</listitem>
<listitem>
- <para>pϥ UUCP Ӷi SMTPC</para>
+ <para>如何使用 UUCP 來進行 SMTP。</para>
</listitem>
<listitem>
- <para>p]wtΡAϨuoelC</para>
+ <para>如何設定系統,使其只能發送郵件。</para>
</listitem>
<listitem>
- <para>pbWҤAolC</para>
+ <para>如何在撥接上網環境中,收發郵件。</para>
</listitem>
<listitem>
- <para>p]w SMTP ҡAH[jwʡC</para>
+ <para>如何設定 SMTP 驗證,以加強安全性。</para>
</listitem>
<listitem>
- <para>pwˡBϥ Mail User Agent(MUA) {Ap
- <application>mutt</application> ӦolC</para>
+ <para>如何安裝、使用 Mail User Agent(MUA) 程式,比如
+ <application>mutt</application> 來收發郵件。</para>
</listitem>
<listitem>
- <para>pq <acronym>POP</acronym> <acronym>IMAP</acronym>
- DhUlC</para>
+ <para>如何從遠端 <acronym>POP</acronym> 或 <acronym>IMAP</acronym>
+ 主機去下載郵件。</para>
</listitem>
<listitem>
- <para>pbH譱A۰ʮMζlLoC</para>
+ <para>如何在收信方面,自動套用郵件過濾。</para>
</listitem>
</itemizedlist>
- <para>b}l\ŪoeAzݭnJ</para>
+ <para>在開始閱讀這章之前,您需要︰</para>
<itemizedlist>
<listitem>
- <para>]nA
- (<xref linkend="advanced-networking"/>)C</para>
+ <para>先設好你的網路
+ (<xref linkend="advanced-networking"/>)。</para>
</listitem>
<listitem>
- <para>ॿTlA]w DNS
- (<xref linkend="network-servers"/>)C</para>
+ <para>能正確為郵件伺服器設定 DNS
+ (<xref linkend="network-servers"/>)。</para>
</listitem>
<listitem>
- <para>DpzL port/package w˳n
- (<xref linkend="ports"/>)C</para></listitem>
+ <para>知道如何透過 port/package 安裝軟體
+ (<xref linkend="ports"/>)。</para></listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="mail-using">
- <title>ϥιqll</title>
+ <title>使用電子郵件</title>
<indexterm><primary>POP</primary></indexterm>
<indexterm><primary>IMAP</primary></indexterm>
<indexterm><primary>DNS</primary></indexterm>
- <para>b email 洫L{ 5 ӥDnAOOG<link linkend="mail-mua">MUA</link>B<link linkend="mail-mta">MTA</link>B
- <link linkend="mail-dns">DNS</link>B<link linkend="mail-receive">
- ݩΥHc</link>AM٦ <link linkend="mail-host">lD
- </link>C</para>
+ <para>在 email 交換的過程中有 5 個主要部分,分別是:<link linkend="mail-mua">MUA</link>、<link linkend="mail-mta">MTA</link>、
+ <link linkend="mail-dns">DNS</link>、<link linkend="mail-receive">
+ 遠端或本機的信箱</link>,當然還有 <link linkend="mail-host">郵件主機本身
+ </link>。</para>
<sect2 xml:id="mail-mua">
- <title>MUA {</title>
+ <title>MUA 程式</title>
- <para>]A@Ǥr{AO
- <application>mutt</application>B
- <application>pine</application>B<application>elm</application>B
- and <command>mail</command>AH <acronym>GUI</acronym> {A
- O <application>balsa</application>B
- <application>xfmail</application> C ~A٦
- <quote></quote> O WWW sC
- oǵ{|lBz浹 <link linkend="mail-host"><quote>lD</quote></link>AΪ̳zLIs
- <link linkend="mail-mta">MTA</link>(Y)Ϊ̬OzL
- <acronym>TCP</acronym> ӶǻlC</para>
+ <para>包括一些文字介面的程式,像是
+ <application>mutt</application>、
+ <application>pine</application>、<application>elm</application>、
+ and <command>mail</command>,以及 <acronym>GUI</acronym> 介面的程式,
+ 像是 <application>balsa</application>、
+ <application>xfmail</application> 等等。 此外,還有更
+ <quote>複雜的</quote> 像是 WWW 瀏覽器。
+ 這些程式會郵件處理交給 <link linkend="mail-host"><quote>郵件主機</quote></link>,或者透過呼叫
+ <link linkend="mail-mta">MTA</link>(若有的話)或者是透過
+ <acronym>TCP</acronym> 來傳遞郵件。</para>
</sect2>
<sect2 xml:id="mail-mta">
diff --git a/zh_TW.Big5/books/handbook/mirrors/Makefile b/zh_TW.UTF-8/books/handbook/mirrors/Makefile
index 9197ba315d..9197ba315d 100644
--- a/zh_TW.Big5/books/handbook/mirrors/Makefile
+++ b/zh_TW.UTF-8/books/handbook/mirrors/Makefile
diff --git a/zh_TW.Big5/books/handbook/mirrors/chapter.xml b/zh_TW.UTF-8/books/handbook/mirrors/chapter.xml
index 92c4b75d47..4373bb3521 100644
--- a/zh_TW.Big5/books/handbook/mirrors/chapter.xml
+++ b/zh_TW.UTF-8/books/handbook/mirrors/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
@@ -6,15 +6,15 @@
Original revision: 1.420
-->
<appendix xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="mirrors">
- <title>o FreeBSD 覡</title>
+ <title>取得 FreeBSD 的方式</title>
<sect1 xml:id="mirrors-cdrom">
- <title>CDROM DVD o</title>
+ <title>CDROM 及 DVD 發行商</title>
<sect2>
- <title>˲~sBG</title>
+ <title>盒裝產品的零售處:</title>
- <para>FreeBSD ˲~(t FreeBSD ФΨL@dznBѭ)s~̡G</para>
+ <para>FreeBSD 盒裝產品(含 FreeBSD 光碟及其他一些軟體、書面文件)的零售業者:</para>
<itemizedlist>
<listitem>
@@ -34,9 +34,9 @@
</sect2>
<sect2>
- <title>CD DVD X</title>
+ <title>CD 及 DVD 合集</title>
- <para>FreeBSD (CD DVD)s~̡G</para>
+ <para>FreeBSD 光碟(CD 及 DVD)的網路零售業者:</para>
<itemizedlist>
<listitem>
@@ -170,9 +170,9 @@
</sect2>
<sect2>
- <title>gP(Distributors)</title>
+ <title>經銷商(Distributors)</title>
- <para>YAOϰgPӡA÷QNzgP FreeBSD в~ܡAлPUCNzpôG</para>
+ <para>若你是區域經銷商,並想代理經銷 FreeBSD 光碟產品的話,請與下列的代理商聯繫:</para>
<itemizedlist>
<listitem>
@@ -240,7 +240,7 @@
</sect1>
<sect1 xml:id="mirrors-ftp">
- <title>FTP </title>
+ <title>FTP 站</title>
<para>The official sources for FreeBSD are available via anonymous FTP
from a worldwide set of mirror sites. The site
@@ -279,7 +279,7 @@
<title>Anonymous CVS</title>
<sect2 xml:id="anoncvs-intro">
- <title>anoncvs ²</title>
+ <title>anoncvs 簡介</title>
<indexterm>
<primary>CVS</primary>
@@ -345,37 +345,37 @@
<itemizedlist>
<listitem>
- <para><emphasis>Austria(aQ)</emphasis>:
+ <para><emphasis>Austria(奧地利)</emphasis>:
:pserver:anoncvs@anoncvs.at.FreeBSD.org:/home/ncvs
(Use <command>cvs login</command> and enter any
password when prompted.)</para>
</listitem>
<listitem>
- <para><emphasis>France(k)</emphasis>:
+ <para><emphasis>France(法國)</emphasis>:
:pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs
(pserver (password <quote>anoncvs</quote>), ssh (no password))
</para>
</listitem>
<listitem>
- <para><emphasis>Germany(w)</emphasis>:
+ <para><emphasis>Germany(德國)</emphasis>:
:pserver:anoncvs@anoncvs.de.FreeBSD.org:/home/ncvs
(Use <command>cvs login</command> and enter the password
<quote>anoncvs</quote> when prompted.)</para>
</listitem>
<listitem>
- <para><emphasis>Germany(w)</emphasis>:
+ <para><emphasis>Germany(德國)</emphasis>:
:pserver:anoncvs@anoncvs2.de.FreeBSD.org:/home/ncvs
(rsh, pserver, ssh, ssh/2022)
</para>
</listitem>
<listitem>
- <para><emphasis>Japan(饻)</emphasis>:
+ <para><emphasis>Japan(日本)</emphasis>:
:pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
(Use <command>cvs login</command> and enter the password
<quote>anoncvs</quote> when prompted.)</para>
</listitem>
<listitem>
- <para><emphasis>USA()</emphasis>:
+ <para><emphasis>USA(美國)</emphasis>:
freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs
(ssh only - no password)</para>
@@ -384,7 +384,7 @@ SSH2 HostKey: 1024 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65 ssh_host_dsa_
</listitem>
<listitem>
- <para><emphasis>USA()</emphasis>:
+ <para><emphasis>USA(美國)</emphasis>:
anoncvs@anoncvs1.FreeBSD.org:/home/ncvs (ssh only - no
password)</para>
@@ -821,7 +821,7 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
</varlistentry>
<varlistentry>
- <term>Taiwan/R.O.C.(xW/إ)</term>
+ <term>Taiwan/R.O.C.(台灣/中華民國)</term>
<listitem>
<itemizedlist>
@@ -850,7 +850,7 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
<title>Using CVSup</title>
<sect2 xml:id="cvsup-intro">
- <title>CVSup ²</title>
+ <title>CVSup 簡介</title>
<para><application>CVSup</application> is a software package for
distributing and updating source trees from a master CVS
@@ -2328,7 +2328,7 @@ doc/zh_*</screen>
<title>Using Portsnap</title>
<sect2 xml:id="portsnap-intro">
- <title>Portsnap ²</title>
+ <title>Portsnap 簡介</title>
<para><application>Portsnap</application> is a system for securely
distributing the &os; ports tree. Approximately once an hour,
diff --git a/zh_TW.Big5/books/handbook/multimedia/Makefile b/zh_TW.UTF-8/books/handbook/multimedia/Makefile
index d645e14d83..d645e14d83 100644
--- a/zh_TW.Big5/books/handbook/multimedia/Makefile
+++ b/zh_TW.UTF-8/books/handbook/multimedia/Makefile
diff --git a/zh_TW.Big5/books/handbook/multimedia/chapter.xml b/zh_TW.UTF-8/books/handbook/multimedia/chapter.xml
index bb48a8673b..b20cb3a8ea 100644
--- a/zh_TW.Big5/books/handbook/multimedia/chapter.xml
+++ b/zh_TW.UTF-8/books/handbook/multimedia/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
@@ -6,7 +6,7 @@
Original revision: 1.113
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="multimedia">
- <info><title>hCvT(Multimedia)</title>
+ <info><title>多媒體影音娛樂(Multimedia)</title>
<authorgroup>
<author><personname><firstname>Ross</firstname><surname>Lippert</surname></personname><contrib>Edited by </contrib></author>
</authorgroup>
@@ -14,123 +14,123 @@
<sect1 xml:id="multimedia-synopsis">
- <title>z</title>
+ <title>概述</title>
- <para>FreeBSD sxa䴩UحĥdA ziHɨӦ۹qWǯu(Hi-Fi)A
- ~٥]AFsM MPEG Audio Layer 3 (MP3)B WAVB H Ogg Vorbis
- \hخ榡nOCP FreeBSD Ports Collection ]]AF\hε{A
- ziHBs׭ĥHα MIDI tơC</para>
+ <para>FreeBSD 廣泛地支援各種音效卡, 讓您可以享受來自電腦上的高傳真音質(Hi-Fi),
+ 此外還包括了錄製和播放 MPEG Audio Layer 3 (MP3)、 WAV、 以及 Ogg Vorbis
+ 等許多種格式聲音的能力。同時 FreeBSD Ports Collection 也包括了許多的應用程式,
+ 讓您可以錄音、編修音效以及控制 MIDI 配備。</para>
- <para>nOwʤդPA FreeBSD ]༽@몺TɩM DVDC
- sXBഫMT{_Bzn{֤@ǡCҦpA bgoɡA
- FreeBSD Ports Collection ٨S <package>audio/sox</package> ˦nΪsXuAΨഫP榡C
- LAoӻ쪺noiiO۷tC</para>
+ <para>要是喜歡動手嘗試不同的體驗, FreeBSD 也能播放一般的視訊檔和 DVD。
+ 編碼、轉換和播放視訊的程式比起處理聲音的程式略少一些。例如, 在撰寫這章時,
+ FreeBSD Ports Collection 中還沒有類似 <package>audio/sox</package> 那樣好用的編碼工具,能夠用來轉換不同的格式。
+ 不過,這個領域的軟體研發進展是相當迅速的。</para>
- <para>Nг]wĥdnBJCeШ쪺 X11
- (<xref linkend="x11"/>) w˩M]w̡AwgFܥdA
- nQnĪGA ݭn@DzӳվC</para>
+ <para>本章將介紹設定音效卡的必要步驟。先前介紹到的 X11
+ (<xref linkend="x11"/>) 安裝和設定裡,已經講到了顯示卡的部份,
+ 但要想有更好的播放效果, 仍需要一些細部調整。</para>
- <para>ŪoAzNFѡG</para>
+ <para>讀完這章,您將了解:</para>
<itemizedlist>
<listitem>
- <para>p]wtΡAHTѧOĥdC</para>
+ <para>如何設定系統,以正確識別音效卡。</para>
</listitem>
<listitem>
- <para>pBμ˥{AHխĥdO_`B@C</para>
+ <para>如何運用樣本程式,以測試音效卡是否正常運作。</para>
</listitem>
<listitem>
- <para>pѨMĥd]wDC</para>
+ <para>如何解決音效卡的設定問題。</para>
</listitem>
<listitem>
- <para>p󼽩Bs MP3 ΨLnɮ׮榡C</para>
+ <para>如何播放、錄製 MP3 及其他聲音檔案格式。</para>
</listitem>
<listitem>
- <para>X server Op䴩ܥdC</para>
+ <para>X server 是如何支援顯示卡。</para>
</listitem>
<listitem>
- <para>Ports Collections ǦnΪvBsnC</para>
+ <para>Ports Collections 內有哪些好用的影像播放、錄製軟體。</para>
</listitem>
<listitem>
- <para>p󼽩 DVD <filename>.mpg</filename>
- <filename>.avi</filename> </para>
+ <para>如何播放 DVD 的 <filename>.mpg</filename> 及
+ <filename>.avi</filename> 檔</para>
</listitem>
<listitem>
- <para>pq CD M DVD ^(rip)ɮסC</para>
+ <para>如何從 CD 和 DVD 中擷取(rip)檔案。</para>
</listitem>
<listitem>
- <para>p]wqd</para>
+ <para>如何設定電視卡</para>
</listitem>
<listitem>
- <para>p]wy</para>
+ <para>如何設定掃描器</para>
</listitem>
</itemizedlist>
- <para>b\ŪoeAzFѡG</para>
+ <para>在閱讀這章之前,您應當了解:</para>
<itemizedlist>
- <listitem><para>Dp]wBw˷s kernel (<xref linkend="kernelconfig"/>)C</para></listitem>
+ <listitem><para>知道如何設定、安裝新的 kernel (<xref linkend="kernelconfig"/>)。</para></listitem>
</itemizedlist>
<warning>
- <para>pGn &man.mount.8; O mount ֥ЪܡAq`|oͿ~A
- ƦܾɭP <emphasis>kernel panic</emphasis>C oO]֥ЬOSsXAӫD@몺 ISO ɮרtΤGC</para>
+ <para>如果要用 &man.mount.8; 指令來 mount 音樂光碟的話,通常會發生錯誤,
+ 甚至導致 <emphasis>kernel panic</emphasis>。 這是因為音樂光碟是特殊編碼,而非一般的 ISO 檔案系統之故。</para>
</warning>
</sect1>
<sect1 xml:id="sound-setup">
- <info><title>]wĥd</title>
+ <info><title>設定音效卡</title>
<authorgroup>
<author><personname><firstname>Moses</firstname><surname>Moore</surname></personname><contrib>Contributed by </contrib></author>
</authorgroup>
<authorgroup>
- <author><personname><firstname>Marc</firstname><surname>Fonvieille</surname></personname><contrib>[j &os;&nbsp;5.X eG</contrib></author>
+ <author><personname><firstname>Marc</firstname><surname>Fonvieille</surname></personname><contrib>加強 &os;&nbsp;5.X 的內容:</contrib></author>
</authorgroup>
</info>
<sect2 xml:id="sound-device">
- <title>]wt</title>
+ <title>設定系統</title>
<indexterm><primary>PCI</primary></indexterm>
<indexterm><primary>ISA</primary></indexterm>
<indexterm><primary>sound cards</primary></indexterm>
- <para>}l]weADAĥdBAHάO PCI ISA WC
- FreeBSD 䴩\hت PCIBISA ĥdAˬd䴩ĵw <link xlink:href="&rel.current.hardware;">Hardware Notes</link>AHT{AĥdO_䴩C
- ]|۹ӥdXʵ{C</para>
+ <para>開始設定之前,必須先知道你的音效卡型號、晶片為何,以及是 PCI 或 ISA 規格。
+ FreeBSD 有支援許多種的 PCI、ISA 音效卡,請檢查支援的音效硬體表 <link xlink:href="&rel.current.hardware;">Hardware Notes</link>,以確認你的音效卡是否支援。
+ 本文也會提到相對應該卡的驅動程式。</para>
<indexterm>
<primary>kernel</primary>
<secondary>configuration</secondary>
</indexterm>
- <para>nϥέĥdAnJTXʵ{~Cؤ覡iHoʧ@A
- ²覡NOH &man.kldload.8; ӻPJ kernel ʺAҲ(module)A
- OUCOG</para>
+ <para>要使用音效卡,必須要載入正確的驅動程式才行。有兩種方式都可以完成這動作,
+ 最簡單方式就是以 &man.kldload.8; 來輕鬆載入 kernel 動態模組(module),
+ 像是下列指令:</para>
<screen>&prompt.root; <userinput>kldload snd_emu10k1</userinput></screen>
- <para>Ϊ̧Xʵ{[
- <filename>/boot/loader.conf</filename> ɡAOG</para>
+ <para>或者把相關驅動程式加到
+ <filename>/boot/loader.conf</filename> 檔,像是:</para>
<programlisting>snd_emu10k1_load="YES"</programlisting>
- <para>WҤlO Creative &soundblaster; Live! ĥdϥΪC
- LiΪĥdXʵ{ҲաAiѦ
- <filename>/boot/defaults/loader.conf</filename> dҡC
- YTw쩳ӥέ@Xʵ{AiHոոJ <filename>snd_driver</filename>
- ҲլݬݡG</para>
+ <para>上面例子是給 Creative &soundblaster; Live! 音效卡使用的。
+ 其他可用的音效卡驅動程式模組,可參考
+ <filename>/boot/defaults/loader.conf</filename> 範例。
+ 若不確定到底該用哪一種驅動程式,那麼可以試試載入 <filename>snd_driver</filename>
+ 模組看看:</para>
<screen>&prompt.root; <userinput>kldload snd_driver</userinput></screen>
@@ -411,7 +411,7 @@ kld snd_ich (1p/2r/0v channels duplex default)</screen>
</sect2>
<sect2>
- <info><title>]ww](Mixer Channel)qjp</title>
+ <info><title>設定預設(Mixer Channel)的音量大小</title>
<authorgroup>
<author><personname><firstname>Josef</firstname><surname>El-Rayes</surname></personname><contrib>Contributed by </contrib></author>
</authorgroup>
@@ -420,7 +420,7 @@ kld snd_ich (1p/2r/0v channels duplex default)</screen>
<note>
- <para>\ub &os; 5.3-RELEASE Τ᪩~䴩C</para>
+ <para>本功能只有在 &os; 5.3-RELEASE 及之後版本才有支援。</para>
</note>
<para>The default values for the different mixer channels are
@@ -439,7 +439,7 @@ kld snd_ich (1p/2r/0v channels duplex default)</screen>
</sect1>
<sect1 xml:id="sound-mp3">
- <info><title>MP3 </title>
+ <info><title>MP3 音樂</title>
<authorgroup>
<author><personname><firstname>Chern</firstname><surname>Lee</surname></personname><contrib>Contributed by </contrib></author>
</authorgroup>
@@ -667,7 +667,7 @@ audio01.wav audio01.mp3</userinput></screen>
</sect1>
<sect1 xml:id="video-playback">
- <info><title>v</title>
+ <info><title>播放影片</title>
<authorgroup>
<author><personname><firstname>Ross</firstname><surname>Lippert</surname></personname><contrib>Contributed by </contrib></author>
</authorgroup>
@@ -1320,7 +1320,7 @@ WITH_MJPEG=yes -DWITH_XVID=yes</userinput></screen>
</sect1>
<sect1 xml:id="tvcard">
- <info><title>]wqd(TV Cards)</title>
+ <info><title>設定電視卡(TV Cards)</title>
<authorgroup>
<author><personname><firstname>Josef</firstname><surname>El-Rayes</surname></personname><contrib>Original contribution by </contrib></author>
</authorgroup>
@@ -1335,34 +1335,34 @@ WITH_MJPEG=yes -DWITH_XVID=yes</userinput></screen>
</indexterm>
<sect2>
- <title></title>
+ <title>介紹</title>
- <para>qd(TV card)iHzιqӬݵLuBuq`ءC\hdOzL RCA S-video
- JݤlӱTAӥBǥd٥i FM s\C</para>
+ <para>電視卡(TV card)可以讓您用電腦來看無線、有線電視節目。許多卡都是透過 RCA 或 S-video
+ 輸入端子來接收視訊,而且有些卡還可接收 FM 廣播的功能。</para>
- <para>&os; izL &man.bktr.4; Xʵ{AӤ䴩 PCI qdAunoǥdϥΪO Brooktree Bt848/849/878/879
- Conexant CN-878/Fusion 878a T^C~AnAT{ǥdWҪx\O_䴩AiHѦ &man.bktr.4;
- AHdݩҤ䴩wMC</para>
+ <para>&os; 可透過 &man.bktr.4; 驅動程式,來支援 PCI 介面的電視卡,只要這些卡使用的是 Brooktree Bt848/849/878/879
+ 或 Conexant CN-878/Fusion 878a 視訊擷取晶片。此外,要再確認哪些卡上所附的選台功能是否有支援,可以參考 &man.bktr.4;
+ 說明,以查看所支援的硬體清單。</para>
</sect2>
<sect2>
- <title>]wXʵ{</title>
+ <title>設定相關驅動程式</title>
- <para>nιqdܡANnJ &man.bktr.4; Xʵ{AoӥiHzLb <filename>/boot/loader.conf</filename>
- ɥ[WUo@NiHFG</para>
+ <para>要用電視卡的話,就要載入 &man.bktr.4; 驅動程式,這個可以透過在 <filename>/boot/loader.conf</filename>
+ 檔加上下面這一行就可以了:</para>
<programlisting>bktr_load="YES"</programlisting>
- <para>~A]iH kernel module P kernel sĶb@_A@kNObA kernel ]wɤA[WUoXG</para>
+ <para>此外,也可以把該 kernel module 直接與 kernel 編譯在一起,作法就是在你的 kernel 設定檔內,加上下面這幾行:</para>
<programlisting>device bktr
device iicbus
device iicbb
device smbus</programlisting>
- <para>ҥHn[WoB~Xʵ{AO]dUզOzL I2C ׬yƦӬۤsCUӡAЭssĶBw˷s kernel C</para>
+ <para>之所以要加上這些額外的驅動程式,是因為卡的各組成部分都是透過 I2C 匯流排而相互連接的。接下來,請重新編譯、安裝新的 kernel 。</para>
- <para>w˦ns kernel An}~|ͮġC}ɡAӷ|ݨUT TV card TG</para>
+ <para>安裝好新的 kernel 之後,要重開機才會生效。開機時,應該會看到類似下面的正確偵測到 TV card 訊息:</para>
<programlisting>bktr0: &lt;BrookTree 848A&gt; mem 0xd7000000-0xd7000fff irq 10 at device 10.0 on pci0
iicbb0: &lt;I2C bit-banging driver&gt; on bti2c0
@@ -1371,7 +1371,7 @@ iicbus1: &lt;Philips I2C bus&gt; on iicbb0 master-only
smbus0: &lt;System Management Bus&gt; on bti2c0
bktr0: Pinnacle/Miro TV, Philips SECAM tuner.</programlisting>
- <para>MAoǰTi]zw餣PӦҤPCHowever you should check if the tuner is correctly
+ <para>當然,這些訊息可能因您的硬體不同而有所不同。However you should check if the tuner is correctly
detected; it is still possible to override some of the
detected parameters with &man.sysctl.8; MIBs and kernel
configuration file options. For example, if you want to force
@@ -1393,9 +1393,9 @@ bktr0: Pinnacle/Miro TV, Philips SECAM tuner.</programlisting>
</sect2>
<sect2>
- <title>nΪ{</title>
+ <title>好用的程式</title>
- <para>nιqdAiHݭnwˤUCε{@J</para>
+ <para>要用電視卡,可以視需要安裝下列應用程式之一︰</para>
<itemizedlist>
<listitem>
@@ -1440,7 +1440,7 @@ bktr0: Pinnacle/Miro TV, Philips SECAM tuner.</programlisting>
</sect1>
<sect1 xml:id="scanners">
- <info><title>y</title>
+ <info><title>掃描器</title>
<authorgroup>
<author><personname><firstname>Marc</firstname><surname>Fonvieille</surname></personname><contrib>Written by </contrib></author>
</authorgroup>
@@ -1452,27 +1452,27 @@ bktr0: Pinnacle/Miro TV, Philips SECAM tuner.</programlisting>
</indexterm>
<sect2>
- <title></title>
+ <title>介紹</title>
- <para>&os; N{N@~tΤ@ˡAiHϥαyC
- b &os; OzL Ports Collection <application>SANE</application>(Scanner Access Now Easy)
- ҴѪ <acronym role="Application Programming Interface">API</acronym> Ӿާ@yC
- <application>SANE</application> ]|ϥΤ@ &os; Xʵ{ӱywC</para>
+ <para>&os; 就像任何現代作業系統一樣,都可以使用掃描器。
+ 在 &os; 是透過 Ports Collection 內的 <application>SANE</application>(Scanner Access Now Easy)
+ 所提供的 <acronym role="Application Programming Interface">API</acronym> 來操作掃描器。
+ <application>SANE</application> 也會使用一些 &os; 的驅動程式來控制掃描器硬體。</para>
- <para>&os; Pɤ䴩 SCSI M USB ؤyCb]weAнTO
- <application>SANE</application> 䴩zyC
- <application>SANE</application> i <link xlink:href="http://sane-project.org/sane-supported-devices.html">䴩w</link>
- MAo̦бy䴩pMATC
- b &man.uscanner.4; ]Ѥ@ USB y䴩CC</para>
+ <para>&os; 同時支援 SCSI 和 USB 兩種介面的掃描器。在做任何設定之前,請確保
+ <application>SANE</application> 有支援您的掃描器。
+ <application>SANE</application> 有張 <link xlink:href="http://sane-project.org/sane-supported-devices.html">支援硬體</link>
+ 的清單,這裡有介紹掃描器的支援情況和狀態訊息。
+ 在 &man.uscanner.4; 內也有提供一份 USB 掃描器的支援列表。</para>
</sect2>
<sect2>
- <title>Kernel ]w</title>
+ <title>Kernel 的設定</title>
- <para>pPWzҴ SCSI M USB ɭ䴩ConMzyɭAӻݭnP]Xʵ{C</para>
+ <para>如同上述所提的 SCSI 和 USB 界面都有支援。這要取決於您的掃描器界面,而需要不同的設備驅動程式。</para>
<sect3 xml:id="scanners-kernel-usb">
- <title>USB </title>
+ <title>USB 介面</title>
<para>The <filename>GENERIC</filename> kernel by default
includes the device drivers needed to support USB scanners.
@@ -1523,7 +1523,7 @@ device uscanner</programlisting>
</sect3>
<sect3>
- <title>SCSI </title>
+ <title>SCSI 介面</title>
<para>If your scanner comes with a SCSI interface, it is
important to know which SCSI controller board you will use.
@@ -1573,7 +1573,7 @@ Re-scan of bus 3 was successful</screen>
</sect2>
<sect2>
- <title>]w SANE</title>
+ <title>設定 SANE</title>
<para>The <application>SANE</application> system has been
splitted in two parts: the backends (<package>graphics/sane-backends</package>) and the
diff --git a/zh_TW.Big5/books/handbook/network-servers/Makefile b/zh_TW.UTF-8/books/handbook/network-servers/Makefile
index 8f39ebad57..8f39ebad57 100644
--- a/zh_TW.Big5/books/handbook/network-servers/Makefile
+++ b/zh_TW.UTF-8/books/handbook/network-servers/Makefile
diff --git a/zh_TW.Big5/books/handbook/network-servers/chapter.xml b/zh_TW.UTF-8/books/handbook/network-servers/chapter.xml
index 90470a6897..bb09a704cd 100644
--- a/zh_TW.Big5/books/handbook/network-servers/chapter.xml
+++ b/zh_TW.UTF-8/books/handbook/network-servers/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
@@ -16,7 +16,7 @@
<sect1 xml:id="network-servers-synopsis">
- <title>z</title>
+ <title>概述</title>
<para>This chapter will cover some of the more frequently used
network services on &unix; systems. We will cover how to
diff --git a/zh_TW.Big5/books/handbook/pgpkeys/Makefile b/zh_TW.UTF-8/books/handbook/pgpkeys/Makefile
index cd4e52bafd..cd4e52bafd 100644
--- a/zh_TW.Big5/books/handbook/pgpkeys/Makefile
+++ b/zh_TW.UTF-8/books/handbook/pgpkeys/Makefile
diff --git a/zh_TW.Big5/books/handbook/pgpkeys/chapter.xml b/zh_TW.UTF-8/books/handbook/pgpkeys/chapter.xml
index 9d9630534f..6c324fdd72 100644
--- a/zh_TW.Big5/books/handbook/pgpkeys/chapter.xml
+++ b/zh_TW.UTF-8/books/handbook/pgpkeys/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
diff --git a/zh_TW.Big5/books/handbook/ports/Makefile b/zh_TW.UTF-8/books/handbook/ports/Makefile
index f5ebfe0a14..f5ebfe0a14 100644
--- a/zh_TW.Big5/books/handbook/ports/Makefile
+++ b/zh_TW.UTF-8/books/handbook/ports/Makefile
diff --git a/zh_TW.UTF-8/books/handbook/ports/chapter.xml b/zh_TW.UTF-8/books/handbook/ports/chapter.xml
new file mode 100644
index 0000000000..5101cdf34b
--- /dev/null
+++ b/zh_TW.UTF-8/books/handbook/ports/chapter.xml
@@ -0,0 +1,1300 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ The FreeBSD Documentation Project
+
+ $FreeBSD$
+ Original revision: 1.273
+-->
+<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="ports">
+ <title>軟體套件管理篇:Packages 及 Ports 機制</title>
+
+ <sect1 xml:id="ports-synopsis">
+ <title>概述</title>
+
+ <indexterm><primary>ports</primary></indexterm>
+ <indexterm><primary>packages</primary></indexterm>
+ <para>儘管 FreeBSD 在 base system 已加了很多系統工具。
+ 然而,在實務運用上,您可能仍需要安裝額外的軟體。
+ FreeBSD 提供了 2 種安裝應用程式的套件管理系統︰Ports Collection
+ (以 soucre 來編譯、安裝) 和 package(預先編譯好的 binary 檔)。
+ 上述的方式,無論要用哪一種,都可以由像是 CDROM
+ 等或網路上來安裝想裝的最新版軟體。</para>
+
+ <para>讀完這章,您將了解:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>如何以 packages 來安裝軟體。</para>
+ </listitem>
+ <listitem>
+ <para>如何以 ports 來安裝軟體。</para>
+ </listitem>
+ <listitem>
+ <para>已安裝的 packages 或 ports 要如何移除。</para>
+ </listitem>
+ <listitem>
+ <para>如何更改(override) ports collection 所使用的預設值。</para>
+ </listitem>
+ <listitem>
+ <para>如何在套件管理系統中,找出想裝的軟體。</para>
+ </listitem>
+ <listitem>
+ <para>如何升級已安裝的軟體。</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 xml:id="ports-overview">
+ <title>安裝軟體的各種方式介紹</title>
+
+ <para>通常要在 &unix; 系統上安裝軟體時,有幾個步驟要作:</para>
+
+ <procedure>
+ <step>
+ <para>先下載該軟體壓縮檔(tarball),有可能是原始碼或是 binary 執行檔。
+ </para>
+ </step>
+
+ <step>
+ <para>解開該壓縮檔。(通常是以
+ &man.compress.1; , &man.gzip.1; 或 &man.bzip2.1; 壓縮的)</para>
+ </step>
+
+ <step>
+ <para>閱讀相關文件檔,以了解如何安裝。(通常檔名是
+ <filename>INSTALL</filename> 或 <filename>README</filename>
+ ,或在 <filename>doc/</filename> 目錄下的一些文件)</para>
+ </step>
+
+ <step>
+ <para>如果所下載的是原始碼,可能要先修改
+ <filename>Makefile</filename> 或是執行
+ <command>./configure</command> 之類的 script
+ ,接著再編譯該軟體。</para>
+ </step>
+
+ <step>
+ <para>最後測試再測試與安裝。</para>
+ </step>
+ </procedure>
+
+ <para>如果一切順利的話,就這麼簡單。
+ 如果在安裝非專門設計(移植)給 FreeBSD 的軟體時出問題,
+ 那可能需要修改一下它的程式碼,才能正常使用。</para>
+
+ <para>當然,我們可以在 FreeBSD 上使用上述的傳統方式來安裝軟體,
+ 但是,我們還有更簡單的選擇。
+ FreeBSD 提供了兩種省事的軟體管理機制: packages 和 ports。
+ 就在寫這篇文章的時候,
+ 已經有超過 &os.numports; 個 port 軟體可以使用。</para>
+
+ <para>所謂的 FreeBSD package 就是別人把該應用程式編譯、打包完畢。
+ 該 package 會包括該應用程式的所有執行檔、設定檔、文件等。
+ 而下載到硬碟上的 package 都可透過 FreeBSD 套件管理指令來進行管理,比如:
+ &man.pkg.add.1;、&man.pkg.delete.1;、&man.pkg.info.1; 等指令。
+ 所以,只需簡單打個指令就可輕鬆安裝新的應用程式了。</para>
+
+ <para>而 FreeBSD port 則是用一些檔案,來自動處理應用程式的安裝流程。</para>
+
+ <para>請記住:如果打算自己來編譯的話,需要執行很多操作步驟
+ (下載、解壓、patch、編譯、安裝)。
+ 而 port 呢,則是涵蓋所有需要完成這些工作的必備步驟,
+ 所以只需打一些簡單的指令,那些原始程式碼就會自動下載、解壓、
+ patch、編譯,直至安裝完畢。</para>
+
+ <para>事實上,ports 機制還可以用來產生 packages,以便他人可以用
+ <command>pkg_add</command> 來安裝,
+ 或是稍後會介紹到的其他套件管理指令。</para>
+
+ <para>而 packages 以及 ports 它們都是一樣會認
+ <emphasis>dependencies(軟體相依關係)</emphasis>。
+ 假設:您想安裝某程式,但它有相依另一個已裝的函式庫(library),
+ 而在 FreeBSD 的 port 以及 package 都有這程式以及該函式庫了。
+ 所以無論是用 <command>pkg_add</command> 指令或者 port 方式來裝該程式,
+ 這兩者(package、port)都會先檢查有沒有裝該函式庫,
+ 若沒有就會自動先裝該函式庫了。</para>
+
+ <para>這兩種技術都很相似,您可能會好奇為什麼 FreeBSD 會弄出這兩種技術來呢。
+ 其實,packages 和 ports 都有它們各自的長處,
+ 使用哪一種完全取決於您自己的喜好。</para>
+
+ <itemizedlist>
+ <title>Package 好處在於:</title>
+
+ <listitem>
+ <para>同樣是壓縮過的 package 與原始碼 tarball 相比,
+ 前者通常會比後者小多了。</para>
+ </listitem>
+
+ <listitem>
+ <para>package 並不需再進行編譯。
+ 對大型應用程式如 <application>Mozilla</application>、
+ <application>KDE</application>、
+ <application>GNOME</application> 而言,這點顯得相當重要,
+ 尤其是使用速度緩慢的機器。</para>
+ </listitem>
+
+ <listitem>
+ <para>不需要瞭解如何在 FreeBSD 上編譯軟體的相關細節過程,
+ 即可使用 package。</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>Ports 好處在於:</title>
+
+ <listitem>
+ <para>為了讓 package 能在大多數系統上順利執行,
+ 通常在編譯時會使用比較保守的選項。 然而,
+ 透過 port 安裝的話,則可針對特定環境(比如: Pentium 4 或 Athlon CPU)
+ 來調整選項,以符合需求。</para>
+ </listitem>
+
+ <listitem>
+ <para>有些程式在編譯時,會有一些選項可以選擇。
+ 舉例來說,<application>Apache</application>
+ 可以設定一大堆的編譯選項。 若透過 port 來安裝的話,
+ 會比較彈性多了,可以自己選而不必使用預設的編譯選項。</para>
+
+ <para>在某些情況,同樣的程式但不同編譯選項,則會分成不同的 package。
+ 比如:
+ <application>Ghostscript</application> 會因為是否要裝 X11 server,
+ 而劃分為 <filename>ghostscript</filename> 以及
+ <filename>ghostscript-nox11</filename> 這兩種 package。
+ 如此的調整對 package 算是可成立的,
+ 但若該程式有一個以上或兩種不同的編譯選項時,
+ 這對 package 就沒辦法了。</para>
+ </listitem>
+
+ <listitem>
+ <para>某些軟體的禁止以 binary 方式散佈,
+ 或者說必須以原始碼方式散佈才可。</para>
+ </listitem>
+
+ <listitem>
+ <para>有些人並不信任 binary 套件機制,因為他們覺得至少有原始碼,
+ (理論上)就可以自己檢閱,並尋找是否有潛在的問題。</para>
+ </listitem>
+
+ <listitem>
+ <para>若要對軟體加上自己改過的 patch,
+ 那麼就必須要先有原始碼才能去上相關 patch 修正。</para>
+ </listitem>
+
+ <listitem>
+ <para>有些人喜歡有原始碼在手邊,
+ 所以他們無聊時就可以自己閱讀、鑽研、借用
+ (當然要符合原始碼本身的授權規定)原始碼等等。</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>若想注意 port 更新動態的話,可以訂閱
+ &a.ports; 以及 &a.ports-bugs;。</para>
+
+ <warning>
+ <para>在安裝軟體前,最好先看 <uri xlink:href="http://vuxml.freebsd.org/">http://vuxml.freebsd.org/</uri> 內是否有該軟體的安全漏洞通報。
+ </para>
+
+ <para>此外,也可以裝 <package>ports-mgmt/portaudit</package>,它會自動檢查所有已裝的
+ 的軟體是否有已知的安全漏洞,另外,它還會在裝軟體的編譯過程前先行檢查。
+ 也可以在裝了某些軟體之後,用 <command>portaudit -F -a</command>
+ 來作全面強制安檢。</para>
+ </warning>
+
+ <para>本章接下來將介紹如何在 FreeBSD 使用 package 及 port 來安裝、管理
+ third-party 軟體。</para>
+ </sect1>
+
+ <sect1 xml:id="ports-finding-applications">
+ <title>尋找想裝的軟體</title>
+
+ <para>在安裝任何軟體之前,你必須先了解你想要什麼的軟體,
+ 以及該軟體叫做什麼名稱。</para>
+
+ <para>FreeBSD 上可裝的軟體清單不斷在增加中,
+ 不過,我們很慶幸有幾種方式可以來找你想裝的軟體:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>FreeBSD 網站上有更新頻繁的軟體清單,在
+ <link xlink:href="&url.base;/ports/index.html">http://www.FreeBSD.org/ports/
+ </link>。
+ 各 ports 皆依其性質而分門別類,既可以透過軟體名稱來搜尋
+ (如果知道名字的話),
+ 也可以在分類中列出所有可用的軟體。</para>
+ </listitem>
+
+ <listitem>
+ <indexterm><primary>FreshPorts</primary></indexterm>
+
+ <para>由 Dan Langille 所維護 FreshPorts 網站,網址在 <uri xlink:href="http://www.FreshPorts.org/">http://www.FreshPorts.org/</uri>。
+ FreshPorts 會不斷追蹤 port tree 中的各種變化,
+ 也可以針對某些 port 以列入 <quote>追蹤名單(watch)</quote> 內,
+ 當有任何軟體升級時,就會發 email 提醒。</para>
+ </listitem>
+
+ <listitem>
+ <indexterm><primary>FreshMeat</primary></indexterm>
+
+ <para>如果不知道想裝的軟體名稱,那麼可透過像是 FreshMeat (<uri xlink:href="http://www.freshmeat.net/">http://www.freshmeat.net/</uri>) 這類的網站來找,
+ 如果找到了,可以回 FreeBSD 網站去看一下這個應用程式是否已經被
+ port 進去了。</para>
+ </listitem>
+
+ <listitem>
+ <para>若知道該 port 的正確名稱,但不知道放在哪個分類目錄,可以用
+ &man.whereis.1; 指令來找出來。 只要打 <command>whereis
+ file</command> 即可,而
+ <replaceable>file</replaceable> 的地方請改為想裝的軟體名稱。
+ 若找到該軟體,就會告訴你,就像下面這樣:</para>
+
+ <screen>&prompt.root; <userinput>whereis lsof</userinput>
+lsof: /usr/ports/sysutils/lsof</screen>
+
+ <para>如此一來,就會知道 <command>lsof</command> (系統工具程式) 是放在
+ <filename>/usr/ports/sysutils/lsof</filename> 目錄。</para></listitem>
+
+ <listitem>
+ <para>此外,也可以用 &man.echo.1; 輕鬆找出該 port 是位於 porte tree
+ 的何處。 舉例來說:</para>
+
+ <screen>&prompt.root; <userinput>echo /usr/ports/*/*lsof*</userinput>
+/usr/ports/sysutils/lsof</screen>
+
+ <para>請注意,這也會顯示 <filename>/usr/ports/distfiles</filename> 目錄內有符合檔名的檔案。</para>
+ </listitem>
+
+ <listitem>
+ <para>還有另一招,就是用 Ports Collection 本身內建的搜尋機制。
+ 要用的時候,請先切換到 <filename>/usr/ports</filename> 目錄。
+ 然後,打 <command>make search name=程式名稱</command>
+ ,其中 <replaceable>程式名稱</replaceable> 請改為想找的軟體名稱。
+ 舉例來說,若要找的是 <command>lsof</command> 的話,那麼就是:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
+&prompt.root; <userinput>make search name=lsof</userinput>
+Port: lsof-4.56.4
+Path: /usr/ports/sysutils/lsof
+Info: Lists information about open files (similar to fstat(1))
+Maint: obrien@FreeBSD.org
+Index: sysutils
+B-deps:
+R-deps: </screen>
+
+ <para>這些搜尋結果中,要注意的是 <quote>Path:</quote> 這行,
+ 因為這行會告訴你可以在哪邊找到該 port。
+ 而搜尋結果的其他部分,因為與 port 安裝較無關係,所以這裡就不講了。</para>
+
+ <para>若要更徹底的搜尋,那麼可以改用 <command>make
+ search key=string</command>,其中
+ <replaceable>string</replaceable> 請改為想搜尋的關鍵字。
+ 如此一來會找 port 名稱、軟體簡介(comments)、軟體敘述檔(descriptions)
+ 以及軟體相依關係(dependencies)裡面是否有符合關鍵字,
+ 此外,不清楚軟體名稱的話,也可以拿來找有符合關鍵字主題的 port。</para>
+
+ <para>剛講的這兩種方式,搜尋字眼都是 case-insensitive(不必區分大小寫)。
+ 比如,搜尋 <quote>LSOF</quote> 與 <quote>lsof</quote>
+ 兩者結果都會是一樣的。</para>
+ </listitem>
+
+ </itemizedlist>
+ </sect1>
+
+ <sect1 xml:id="packages-using">
+ <info><title>使用 Packages 管理機制</title>
+ <authorgroup>
+ <author><personname><firstname>Chern</firstname><surname>Lee</surname></personname><contrib>Contributed by </contrib></author>
+ </authorgroup>
+
+ </info>
+
+
+
+ <sect2>
+ <title>Package 的安裝方式</title>
+ <indexterm>
+ <primary>packages</primary>
+ <secondary>installing</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary><command>pkg_add</command></primary>
+ </indexterm>
+ <para>可以用 &man.pkg.add.1; 從本機上或者透過網路來安裝任一
+ FreeBSD package。</para>
+
+ <example>
+ <title>手動下載、安裝 Package</title>
+
+ <screen>&prompt.root; <userinput>ftp -a ftp2.FreeBSD.org</userinput>
+Connected to ftp2.FreeBSD.org.
+220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready.
+331 Guest login ok, send your email address as password.
+230-
+230- This machine is in Vienna, VA, USA, hosted by Verio.
+230- Questions? E-mail freebsd@vienna.verio.net.
+230-
+230-
+230 Guest login ok, access restrictions apply.
+Remote system type is UNIX.
+Using binary mode to transfer files.
+<prompt>ftp&gt;</prompt> <userinput>cd /pub/FreeBSD/ports/packages/sysutils/</userinput>
+250 CWD command successful.
+<prompt>ftp&gt;</prompt> <userinput>get lsof-4.56.4.tgz</userinput>
+local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz
+200 PORT command successful.
+150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes).
+100% |**************************************************| 92375 00:00 ETA
+226 Transfer complete.
+92375 bytes received in 5.60 seconds (16.11 KB/s)
+<prompt>ftp&gt;</prompt> <userinput>exit</userinput>
+&prompt.root; <userinput>pkg_add lsof-4.56.4.tgz</userinput></screen>
+ </example>
+
+ <para>若手邊沒有 package 來源(像是 FreeBSD 光碟)的話,
+ 那麼建議使用 &man.pkg.add.1; 時,加上 <option>-r</option>
+ 選項來更輕鬆安裝 package。如此一來,就會自動判斷正確的 package 格式、
+ 以及所搭配的作業系統 release 版本,
+ 然後會自己從 FTP 站抓回、安裝相對應的 package。
+ </para>
+
+ <indexterm>
+ <primary><command>pkg_add</command></primary></indexterm>
+ <screen>&prompt.root; <userinput>pkg_add -r lsof</userinput></screen>
+
+ <para>上面這例子會自動下載正確的 package 並安裝。
+ 若想改換用其他 &os; Packages Mirror 站,那麼就要設定
+ <envar>PACKAGESITE</envar> 環境變數,
+ 如此一來才會取代預設設定。 &man.pkg.add.1;
+ 會用 &man.fetch.3; 指令來下載檔案,而 &man.fetch.3;
+ 本身則會使用相關環境變數的設定,
+ 像是:
+ <envar>FTP_PASSIVE_MODE</envar>、<envar>FTP_PROXY</envar> 以及
+ <envar>FTP_PASSWORD</envar>。 如果你網路環境處於 firewall
+ 後面,或者需要用 FTP/HTTP proxy 的話,那麼就需要設定。
+ 設定細節請參閱 &man.fetch.3;。
+ 請注意:上面所說的例子是寫 <literal>lsof</literal> 而非
+ <literal>lsof-4.56.4</literal>。 當使用遠端抓取功能時,該
+ package 版號就不必加上去了。
+ &man.pkg.add.1; 會自動下載該軟體的最新版回來安裝。</para>
+
+ <note>
+ <para>若用的是 &os.current; 或 &os.stable; 的話,&man.pkg.add.1;
+ 會自動下載該軟體最新版回來。
+ 若用的是屬於 -RELEASE 版本,那麼他會抓回屬於該 release 上所編譯的
+ package。
+ 也可以更改 <envar>PACKAGESITE</envar> 環境變數,以改變下載方式。
+ 舉例來說,如果是 &os;&nbsp;5.4-RELEASE 的話,那麼 &man.pkg.add.1;
+ 預設會從
+ <literal>ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.4-release/Latest/</literal>
+ 來抓 package。若要強制 &man.pkg.add.1; 下載 &os;&nbsp;5-STABLE
+ 所用的 package,那麼就把 <envar>PACKAGESITE</envar> 改設為
+ <literal>ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5-stable/Latest/</literal>
+ 即可。
+ </para>
+ </note>
+
+ <para>Package 檔有 <filename>.tgz</filename> 以及
+ <filename>.tbz</filename> 兩種格式。
+ 這些都可透過 <uri xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/">ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/</uri>
+ ,或者 FreeBSD 光碟內取得。
+ 每張 4 片裝的 FreeBSD 光碟(以及 PowerPak 包等等)內都會在
+ <filename>/packages</filename> 目錄內放 package。
+ 裡面的目錄架構類似 <filename>/usr/ports</filename> 的目錄架構。
+ 每個分類都各自有專屬目錄,且每份 package 都會放在
+ <filename>All</filename> 目錄內。
+ </para>
+
+ <para>package 目錄架構與 port 的都一致;它們共同構成整個 package/port
+ 系統機制。</para>
+
+ </sect2>
+
+ <sect2>
+ <title>管理 Packages</title>
+
+ <indexterm>
+ <primary>packages</primary>
+ <secondary>managing</secondary>
+ </indexterm>
+ <para>&man.pkg.info.1; 可用來列出所有已安裝的軟體、軟體簡介。</para>
+
+ <indexterm>
+ <primary><command>pkg_info</command></primary>
+ </indexterm>
+ <screen>&prompt.root; <userinput>pkg_info</userinput>
+cvsup-16.1 A general network file distribution system optimized for CV
+docbook-1.2 Meta-port for the different versions of the DocBook DTD
+...</screen>
+ <para>&man.pkg.version.1; 則是列出所有已安裝的軟體版本。
+ 它會顯示已裝版本以及目前機器上 port tree 的版本差異。
+ </para>
+ <indexterm>
+ <primary><command>pkg_version</command></primary>
+ </indexterm>
+ <screen>&prompt.root; <userinput>pkg_version</userinput>
+cvsup =
+docbook =
+...</screen>
+
+ <para>第二欄的符號表示:已安裝的軟體版本與目前機器上 port tree
+ 的版本差異。</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>符號</entry>
+ <entry>代表意義</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>=</entry> <entry>已裝的版本與目前機器上 port tree
+ 的版本是同一版的。
+ </entry>
+ </row>
+
+ <row><entry>&lt;</entry>
+ <entry>與目前機器上 port tree 版本相比起來,已裝的版本較舊。</entry>
+ </row>
+
+ <row><entry>&gt;</entry><entry>與目前機器上 port tree 版本相比起來,
+ 已裝的版本較新。(可能是目前機器上 port tree 尚未更新。)</entry></row>
+
+ <row><entry>?</entry><entry>已裝的軟體在 ports 索引內找無相關資料。
+ (通常可能是,舉例來說:已安裝的該 port 已從 Ports Collection
+ 中移除或改名了。)
+ </entry></row>
+
+ <row><entry>*</entry><entry>該軟體同時有許多版本。</entry></row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </sect2>
+
+ <sect2>
+ <title>移除已安裝的 Package</title>
+ <indexterm>
+ <primary><command>pkg_delete</command></primary>
+ </indexterm>
+ <indexterm>
+ <primary>packages</primary>
+ <secondary>deleting</secondary>
+ </indexterm>
+ <para>若要移除已裝的軟體,那麼請多利用 &man.pkg.delete.1; 工具,比如:
+ </para>
+
+ <screen>&prompt.root; <userinput>pkg_delete xchat-1.7.1</userinput></screen>
+
+ <para>請注意 &man.pkg.delete.1; 須要放上完整的軟體名稱以及版本,
+ 若只輸入 <replaceable>xchat</replaceable> 就不行,必須換成
+ <replaceable>xchat-1.7.1</replaceable> 才可。 然而,我們可以用
+ &man.pkg.version.1; 輕鬆找出已裝的所有軟體版本,或者以 wildcard
+ (萬用字元) 的方式:</para>
+
+ <screen>&prompt.root; <userinput>pkg_delete xchat\*</userinput></screen>
+
+ <para>以上面例子而言,將會移除所有以 <literal>xchat</literal>
+ 開頭的軟體。</para>
+ </sect2>
+
+ <sect2>
+ <title>其他細節部份</title>
+ <para>所有已裝的 package 資訊都會存到 <filename>/var/db/pkg</filename>
+ 目錄內,在該目錄下可以找到記載已裝的軟體檔案清單及該軟體簡介的檔案。
+ </para>
+ </sect2>
+ </sect1>
+
+ <sect1 xml:id="ports-using">
+ <title>使用 Ports 管理機制</title>
+
+ <para>下面我們會介紹如何使用 Ports Collection 來安裝、移除軟體的基本用法。
+ 至於其他可用的 <command>make</command> 詳細用法與環境設定,可參閱
+ &man.ports.7;。</para>
+
+ <sect2 xml:id="ports-tree">
+ <title>記得安裝 Ports Collection</title>
+
+ <para>在安裝任一 ports 之前,必須先裝上
+ Ports Collection —— 它主要是由 <filename>/usr/ports</filename> 內一堆
+ <filename>Makefiles</filename>, patches 以及一些軟體簡介檔所組成的。
+ </para>
+
+ <para>在裝 FreeBSD 時,若忘了在 <application>sysinstall</application>
+ 內勾選要裝 Ports Collection 的話,
+ 沒關係,可以照下列方式來安裝 ports collection:</para>
+
+ <procedure>
+ <title>CVSup 方式</title>
+
+ <para>使用 <application>CVSup</application> 是安裝、更新 Ports
+ Collection 的快速方法之一。
+ 若想更瞭解 <application>CVSup</application> 用法的話,請參閱 <link linkend="cvsup">使用 CVSup</link>。</para>
+
+ <note>
+ <para><application>csup</application> 是以 C 語言對
+ <application>CVSup</application> 軟體的重寫,在 &os; 6.2
+ 及之後版本即有附在系統內。 可以直接用系統所附的
+ <application>csup</application> 即可跳過步驟一的動作,
+ 並將本文相關提到 <command>cvsup</command> 之處,
+ 都改為 <command>csup</command> 即可。 此外, &os; 6.2
+ 之前的版本,則可裝 <package>net/csup</package>
+ 或者 package 來使用 <application>csup</application>。</para>
+ </note>
+
+ <para>第一次跑 <application>CVSup</application> 之前,請先確認
+ <filename>/usr/ports</filename>
+ 是乾淨的! 若你已經裝了 Ports Collection ,但又自行加上其他 patch
+ 檔,那麼 <application>CVSup</application>
+ 並不會刪除你自行加上的 patch 檔,這樣可能會導致要安裝某些軟體時,
+ 發生 patch 失敗或編譯失敗。</para>
+
+ <step>
+ <para>安裝 <package>net/cvsup-without-gui</package>
+ package:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r cvsup-without-gui</userinput></screen>
+
+ <para>細節用法請參閱 <link linkend="cvsup-install">安裝 CVSup</link>(<xref linkend="cvsup-install"/>)。</para>
+ </step>
+
+ <step>
+ <para>執行 <command>cvsup</command>:</para>
+
+ <screen>&prompt.root; <userinput>cvsup -L 2 -h cvsup.tw.FreeBSD.org /usr/share/examples/cvsup/ports-supfile</userinput></screen>
+
+ <para>請把
+ <replaceable>cvsup.tw.FreeBSD.org</replaceable> 請改成離你比較近
+ (快)的 <application>CVSup</application> 主機。
+ 這部分可以參閱完整的 <link linkend="cvsup-mirrors">CVSup mirror
+ </link> 站列表(<xref linkend="cvsup-mirrors"/>)。</para>
+
+ <note>
+ <para>若想改用自己設的
+ <filename>ports-supfile</filename>,比如說,
+ 不想每次都得打指令來指定所使用的
+ <application>CVSup</application> 主機。</para>
+
+ <procedure>
+ <step>
+ <para>這種情況下,請以 <systemitem class="username">root</systemitem> 權限把
+ <filename>/usr/share/examples/cvsup/ports-supfile</filename>
+ 複製到其他位置,比如
+ <filename>/root</filename> 或者自己帳號的家目錄。</para>
+ </step>
+
+ <step>
+ <para>修改新的 <filename>ports-supfile</filename> 檔。</para>
+ </step>
+
+ <step>
+ <para>把
+ <replaceable>CHANGE_THIS.FreeBSD.org</replaceable>
+ 改為離你比較近(快)的 <application>CVSup</application> 主機。
+ 這部分可以參閱完整的 <link linkend="cvsup-mirrors">CVSup
+ Mirrors</link> (<xref linkend="cvsup-mirrors"/>) 站列表</para>
+ </step>
+
+ <step>
+ <para>然後就開始以類似下列指令跑 <command>cvsup</command>:
+ </para>
+
+ <screen>&prompt.root; <userinput>cvsup -L 2 /root/ports-supfile</userinput></screen>
+ </step>
+ </procedure>
+ </note>
+ </step>
+
+ <step>
+ <para>執行 &man.cvsup.1; 之後,就會開始更新 Ports Collection。
+ 不過這動作只是『更新』並不是『升級』,不會把已裝的軟體重新編譯、升級。</para>
+ </step>
+ </procedure>
+
+ <procedure>
+ <title>Portsnap 方式</title>
+
+ <para>&man.portsnap.8; 也是更新 Ports Collection 的方式之一。
+ &os;&nbsp;6.0 起開始內建 Portsnap 機制,而較舊的系統,則可透過
+ <package>ports-mgmt/portsnap</package> port 來安裝:
+ </para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r portsnap</userinput></screen>
+
+ <para><application>Portsnap</application> 細節功能,請參閱
+ <link linkend="portsnap">Portsnap 使用篇</link>。</para>
+
+ <step>
+ <para>若 <filename>/usr/ports</filename> 目錄不存在的話,
+ 就建立一下吧:</para>
+
+ <screen>&prompt.root; <userinput>mkdir /usr/ports</userinput></screen>
+ </step>
+
+ <step>
+ <para>接下來,下載壓縮的 Ports Collection 定期更新檔到
+ <filename>/var/db/portsnap</filename> 目錄。
+ 完成下載後,要斷線與否都可以。</para>
+
+ <screen>&prompt.root; <userinput>portsnap fetch</userinput></screen>
+ </step>
+
+ <step>
+ <para>若是第一次跑 <application>Portsnap</application> 的話,
+ 則需要先解壓到 <filename>/usr/ports</filename>:
+ </para>
+
+ <screen>&prompt.root; <userinput>portsnap extract</userinput></screen>
+
+ <para>若已有 <filename>/usr/ports</filename> 而且只是想更新而已,
+ 那麼就照下面作:</para>
+
+ <screen>&prompt.root; <userinput>portsnap update</userinput></screen>
+ </step>
+
+ </procedure>
+
+ <procedure>
+ <title>Sysinstall 方式</title>
+
+ <para>這方式要用 <application>sysinstall</application>
+ 透過安裝來源來裝 Ports Collection。
+ 請注意:所安裝的 Ports Collection 版本只是該 release
+ 發佈時的版本而已,而非最新。
+ 若能上網(Internet)的話,請使用上述方式之一會比較好。</para>
+
+ <step>
+ <para>以 <systemitem class="username">root</systemitem> 權限執行
+ <command>sysinstall</command>
+ (在 &os; 5.2 之前版本則是 <command>/stand/sysinstall</command>)
+ ,方式如下:</para>
+
+ <screen>&prompt.root; <userinput>sysinstall</userinput></screen>
+ </step>
+
+ <step>
+ <para>請以方向鍵移動選擇項目,選擇
+ <guimenuitem>Configure</guimenuitem>,然後按
+ <keycap>Enter</keycap> 鍵。</para>
+ </step>
+
+ <step>
+ <para>選擇
+ <guimenuitem>Distributions</guimenuitem>,然後按
+ <keycap>Enter</keycap> 鍵。</para>
+ </step>
+
+ <step>
+ <para>選擇 <guimenuitem>ports</guimenuitem>,然後按
+ <keycap>Space</keycap> 鍵。</para>
+ </step>
+
+ <step>
+ <para>選 <guimenuitem>Exit</guimenuitem>,然後按
+ <keycap>Enter</keycap> 鍵。</para>
+ </step>
+
+ <step>
+ <para>選擇要用的安裝來源,比如:CDROM(光碟)、FTP 等方式。</para>
+ </step>
+
+ <step>
+ <para>選 <guimenuitem>Exit</guimenuitem>,然後按
+ <keycap>Enter</keycap> 鍵。</para>
+ </step>
+
+ <step>
+ <para>按下 <keycap>X</keycap> 鍵就可離開
+ <application>sysinstall</application> 程式。</para>
+ </step>
+ </procedure>
+ </sect2>
+
+ <sect2 xml:id="ports-skeleton">
+ <title>Ports 的安裝方式</title>
+
+ <indexterm>
+ <primary>ports</primary>
+ <secondary>installing</secondary>
+ </indexterm>
+ <para>提到 Ports Collection,首先要先說明的是:何謂
+ <quote>skeleton</quote>。
+ 簡單來講,port skeleton 就是讓軟體如何在 FreeBSD
+ 順利編譯、安裝的最基本檔案組合。
+ 每份 port skeleton 基本上會有:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><filename>Makefile</filename> 檔。
+ 這個 <filename>Makefile</filename> 內容有分許多部分,
+ 是用來指定要如何編譯,以及該裝在系統的何處。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>distinfo</filename> 檔。
+ 編譯該軟體所需下載的檔案、checksum(使用 &man.md5.1; 及
+ &man.sha256.1; 來檢驗檔案)都會記錄在這檔,
+ 以確保所下載的檔案是正確無誤的。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>files</filename> 目錄。 這目錄放的是讓軟體正常編譯、
+ 安裝的 patch 檔。
+ Patches 檔基本上是一些小檔案,並針對特定檔案來做修改,
+ 而且是純文字檔格式,
+ 基本上內容通常會像是 <quote>Remove line 10(刪除第 10 行)</quote>
+ 或
+ <quote>Change line 26 to this ...(把第 26 行改為...)</quote>
+ 之類的。
+ 這些 Patches 通常也稱為 <quote>diffs</quote>
+ ,因為都是由 &man.diff.1; 程式所產生的。</para>
+
+ <para>此外,本目錄也可能會放一些協助編譯該 port 的檔案。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>pkg-descr</filename> 檔,內容是比較詳細的軟體介紹,
+ 通常會寫得比較多行。</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>pkg-plist</filename> 檔,該 port
+ 會安裝的所有檔案清單。
+ 也是告訴系統在移除該 port 時,需要刪除哪些檔案。</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>有些 port 還會有其他檔案,像是 <filename>pkg-message</filename> 檔。
+ port 系統在一些情況時,會用這些檔案。
+ 如果想知道這些檔案的更多細節用途,以及 port 一般用法,請參閱 <link xlink:href="&url.books.porters-handbook;/index.html">FreeBSD Porter's
+ Handbook</link>。</para>
+
+ <para>port 內寫的是告訴系統如何編譯 source code 的相關指令,
+ 但並不是真正的 source code。
+ 而 source code 可以從光碟或網路(Internet)來取得,
+ 該軟體開發者可能會把 source code 以各種格式來發佈。
+ 通常是以 tar 以及 gzip 這兩者工具一起壓縮的檔案,
+ 也有可能是以其他工具壓縮,或根本沒壓縮。
+ 而軟體的 source code 無論是以哪一種壓縮檔型態,我們都稱之為
+ <quote>distfile</quote>。
+ 下面將介紹兩種安裝 &os; port 的方式。</para>
+
+ <note>
+ <para>要安裝 port 的話,請務必切為 <systemitem class="username">root</systemitem> 身份。
+ </para>
+ </note>
+
+ <warning>
+ <para>在安裝任何 port 之前,請務必確認有更新 Ports Collection 到最新版,
+ 此外請檢閱 <uri xlink:href="http://vuxml.freebsd.org/">http://vuxml.freebsd.org/</uri> 來檢查所要裝的 port
+ 是否有相關安全漏洞議題需要注意的。</para>
+
+ <para><application>portaudit</application> 會在安裝任何 port 之前,
+ 先自動檢查是否有相關已知的安全漏洞。這個工具在 Ports Collection 內有
+ (<package>ports-mgmt/portaudit</package>)。
+ 在安裝 port 之前,可以先跑 <command>portaudit -F</command> 指令,
+ 如此一來就會抓最新的資安漏洞資料庫回來核對。
+ 每天的系統定期安檢會自動更新資料庫,並作安全稽核。
+ 詳情請參閱 &man.portaudit.1; 以及 &man.periodic.8; 的線上說明。</para>
+ </warning>
+
+ <para>Ports Collection 會假設你的網路是可正常連線的。
+ 如果沒有的話,那麼需手動把所需的 distfile 檔複製到
+ <filename>/usr/ports/distfiles</filename> 才行。</para>
+
+ <para>開始操作之前,要先進入打算安裝的 port 目錄內:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/sysutils/lsof</userinput></screen>
+
+ <para>一旦進入 <filename>lsof</filename> 目錄後,就可以看到這個 port
+ 的 skeleton 結構。
+ 接下來,就是編譯,也就是 <quote>build</quote> 這個 port。
+ 只需簡單輸入 <command>make</command> 指令,就可輕鬆完成編譯。
+ 完成後,應該可以看到類似下面訊息:</para>
+
+ <screen>&prompt.root; <userinput>make</userinput>
+&gt;&gt; lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
+&gt;&gt; Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/.
+===&gt; Extracting for lsof-4.57
+...
+[extraction output snipped]
+...
+&gt;&gt; Checksum OK for lsof_4.57D.freebsd.tar.gz.
+===&gt; Patching for lsof-4.57
+===&gt; Applying FreeBSD patches for lsof-4.57
+===&gt; Configuring for lsof-4.57
+...
+[configure output snipped]
+...
+===&gt; Building for lsof-4.57
+...
+[compilation output snipped]
+...
+&prompt.root;</screen>
+
+ <para>請注意:編譯完成後,就會回到提示列(prompt)。接下來就是安裝該
+ port 了,要裝的話,只需在原本的 <command>make</command>
+ 指令後面再加上一個字即可,
+ 那個字就是 <command>install</command>:</para>
+
+ <screen>&prompt.root; <userinput>make install</userinput>
+===&gt; Installing for lsof-4.57
+...
+[installation output snipped]
+...
+===&gt; Generating temporary packing list
+===&gt; Compressing manual pages for lsof-4.57
+===&gt; Registering installation for lsof-4.57
+===&gt; SECURITY NOTE:
+ This port has installed the following binaries which execute with
+ increased privileges.
+&prompt.root;</screen>
+
+ <para>一旦回到提示列(prompt),就可以執行剛裝的程式了。
+ 另外,因為 <command>lsof</command> 這程式執行時會有額外權限,
+ 所以會出現安全警告。在編譯、安裝 port 的時候,
+ 請留意任何出現的警告。</para>
+
+ <para>此外,建議刪除編譯用的工作目錄(預設是 <filename>work</filename>),
+ 這目錄內為在編譯過程中所用到的一些臨時檔案,
+ 這些檔案不只佔硬碟空間,而且也可能會在該 port 升級新版時,
+ 造成不必要的困擾。</para>
+
+ <screen>&prompt.root; <userinput>make clean</userinput>
+===&gt; Cleaning for lsof-4.57
+&prompt.root;</screen>
+
+ <note>
+ <para>用 <command>make install clean</command> 就可以一口氣完成剛所說
+ <command>make</command>、<command>make install</command>、
+ <command>make clean</command> 這三個步驟了。</para>
+ </note>
+
+ <note>
+ <para>有些 shell 會依據 <envar>PATH</envar> 環境變數的路徑,
+ 把那些路徑的執行檔 cache 起來,來加速搜尋執行檔。
+ 如果你用的是這類的 shell,那麼在裝完 port 後需要打
+ <command>rehash</command> 指令,才能執行新裝的執行檔,而
+ <command>rehash</command> 指令可以在 <command>tcsh</command>
+ 之類的 shell 上使用,若是 <command>sh</command> 的話,則是
+ <command>hash -r</command>。
+ 詳情請參閱你所使用的 shell 相關文件。</para>
+ </note>
+
+ <para>有些由所謂 third-party 所發行的 DVD-ROM 產品,像是
+ <link xlink:href="http://www.freebsdmall.com/">FreeBSD
+ Mall</link> 所發行的 FreeBSD Toolkit 會包括 distfiles 檔案,
+ 這些檔案可用來搭配 Ports Collection。
+ 把 DVD-ROM 掛載在 <filename>/cdrom</filename>。
+ 若使用其他掛載點的話,要記得設定 <varname>CD_MOUNTPTS</varname>
+ 環境變數為相對應的掛載點。 如此一來,光碟上若有所需的 distfiles
+ 就會自動使用光碟的檔案。</para>
+
+ <note>
+ <para>請注意,有少數 port 並不允許透過光碟來發佈檔案。
+ 可能的原因有:需先填註冊單才能下載或散佈檔案,或其他原因。
+ 如果想安裝在光碟上沒附上的 port,就需連上網路才能繼續進行安裝。
+ </para>
+ </note>
+
+ <para>ports 系統採用 &man.fetch.1; 來下載檔案,
+ 它有許多可調整的環境變數,包括:
+ <envar>FTP_PASSIVE_MODE</envar>、<envar>FTP_PROXY</envar>、
+ <envar>FTP_PASSWORD</envar>。 如果是處於有防火牆的環境,
+ 或者需要使用 FTP/HTTP proxy,那麼就需要設定這些變數。
+ 使用細節請參閱 &man.fetch.3; 說明。</para>
+
+ <para>若無法隨時一直上網的話,那麼可以利用
+ <command>make fetch</command>。
+ 只要在 port 的最上層路徑(<filename>/usr/ports</filename>)
+ 打這指令,那麼所有需要用到的檔案都會下載。
+ 這指令也可以在下層目錄使用,例如:
+ <filename>/usr/ports/net</filename>。
+ 請注意,若該 port 有相依的 library 或者其他 port 的話,
+ 那麼它<emphasis>並不會</emphasis>跟著一起下載其他所相依的檔案。
+ 若想一次下載所有相依的 port 所有檔案,那麼指令參數請改用
+ <buildtarget>fetch-recursive</buildtarget> 而非
+ <buildtarget>fetch</buildtarget>。</para>
+
+ <note><para>可以在某類別或最上層路徑打 <command>make</command>
+ 指令來編譯所有的 port,或者以上述的 <command>make
+ fetch</command> 指令來下載所有檔案。
+ 然而,這樣是相當危險,因為有些 port 不能並存。
+ 也有另一種情況,有些 port 可能會以相同檔名,
+ 但是實際上卻是不同內容的檔案。</para></note>
+
+ <para>在某些罕見情況,可能需加上 <varname>MASTER_SITES</varname>
+ (檔案的原始下載處)之外的下載點,以下載所需的檔案。
+ 可以用下列指令,來更改預設的 <varname>MASTER_SITES</varname>
+ 下載點:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/directory</userinput>
+&prompt.root; <userinput>make MASTER_SITE_OVERRIDE= \
+ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch</userinput></screen>
+
+ <para>上面這例子,是把 <varname>MASTER_SITES</varname> 改設
+ <systemitem class="fqdomainname">ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/</systemitem>
+ 為下載點。</para>
+
+ <note><para>有些 port 允許(或要求)您得指定編譯選項,
+ 以啟用、停用該軟體中非必須的功能、安全選項以及其他可自訂的選項。
+ 具有代表性的包括了
+ <package>www/mozilla</package>、<package>security/gpgme</package>、<package>mail/sylpheed-claws</package>。
+ 若有這類選項時,通常在編譯時會出現相關提示訊息。</para></note>
+
+ <sect3>
+ <title>更改(Override)預設的 Ports 目錄</title>
+
+ <para>有時候,會發現到使用其他目錄作為 port、distfiles
+ 目錄可能相當有用(甚至是必須),可以設定
+ <varname>PORTSDIR</varname> 及 <varname>PREFIX</varname>
+ 環境變數以修改預設的 port 目錄。舉例:</para>
+
+ <screen>&prompt.root; <userinput>make PORTSDIR=/usr/home/example/ports install</userinput></screen>
+
+ <para>以上會在
+ <filename>/usr/home/example/ports</filename> 內進行編譯,
+ 並把所有檔案安裝到 <filename>/usr/local</filename> 內。</para>
+
+ <screen>&prompt.root; <userinput>make PREFIX=/usr/home/example/local install</userinput></screen>
+
+ <para>則會在 <filename>/usr/ports</filename> 目錄內編譯,
+ 並把所有檔案安裝到
+ <filename>/usr/home/example/local</filename> 內。</para>
+
+ <para>當然囉,</para>
+
+ <screen>&prompt.root; <userinput>make PORTSDIR=../ports PREFIX=../local install</userinput></screen>
+
+ <para>則會同時包含兩種設定(還有很多變化以致無法在本頁全部都有寫到,
+ 但您應該已經有抓到大概概念了吧)。</para>
+
+ <para>此外,這些變數也以作為環境變數來設定。
+ 請依您所使用的 shell 去參閱相關說明,以瞭解如何設定。</para>
+ </sect3>
+
+ <sect3>
+ <title>處理 <command>imake</command></title>
+
+ <para>有些 port 會使用 <command>imake</command>(X Window 系統的一部份)
+ 無法正常運用 <varname>PREFIX</varname> 變數,
+ 它們會堅持把檔案都安裝到 <filename>/usr/X11R6</filename> 目錄。
+ 同樣地,也有一些 Perl port 會忽略 <varname>PREFIX</varname>
+ 並把檔案安裝到 Perl 目錄架構內。 讓這些 ports respect
+ <varname>PREFIX</varname> 是相當困難,甚至是不可能的事。</para>
+
+ </sect3>
+
+ <sect3>
+ <title>重新設定 Ports 選項</title>
+
+ <para>在編譯某些 port 時會出現選單畫面(ncurses-based),
+ 可以用來選擇安裝選項。 通常裝好該 port 之後,便不太會需要重加、
+ 移除、更改一些當初安裝的選項。 但日後若有需要的話,
+ 也有許多方式可以調整這些選項。 其中一種方式便是切到該 port 目錄,
+ 並打 <command>make</command> <buildtarget>config</buildtarget>
+ 即可再次回到選項畫面去作調整。 另外還可用 <command>make</command>
+ <buildtarget>showconfig</buildtarget> 以顯示該 port 安裝時所用的選項。
+ 也可以用 <command>make</command> <buildtarget>rmconfig</buildtarget>
+ 來把所有選項回到初始設定。 這些選項跟其他動作都可參閱 &man.ports.7;
+ 內的詳細說明。</para>
+ </sect3>
+ </sect2>
+
+ <sect2 xml:id="ports-removing">
+ <title>移除已安裝的 Ports</title>
+
+ <indexterm>
+ <primary>ports</primary>
+ <secondary>removing</secondary>
+ </indexterm>
+ <para>現在您已經知道如何安裝 port,而開始想瞭解如何移除。
+ 比如裝了一個 port 後才意識到裝錯 port 了。
+ 在此,我們將移除前面例子所裝的那個 port
+ (沒仔細注意的話,我們再提醒一下就是 <command>lsof</command>)。
+ 跟移除 package 時相當類似(在 <link linkend="packages-using">Packages section</link> 有介紹),都是使用
+ &man.pkg.delete.1; 指令:</para>
+
+ <screen>&prompt.root; <userinput>pkg_delete lsof-4.57</userinput></screen>
+
+ </sect2>
+
+ <sect2 xml:id="ports-upgrading">
+ <title>升級已安裝的 Ports</title>
+
+ <indexterm>
+ <primary>ports</primary>
+ <secondary>upgrading</secondary>
+ </indexterm>
+ <para>首先,用 &man.pkg.version.1; 指令來列出目前 Ports Collection
+ 中提供了那些可升級的 port 版本:</para>
+
+ <screen>&prompt.root; <userinput>pkg_version -v</userinput></screen>
+
+ <sect3 xml:id="ports-file-updating">
+ <title><filename>/usr/ports/UPDATING</filename></title>
+
+ <para>每次更新完 Ports Collection 之後,請務必記得在升級 port 前,
+ 先看看 <filename>/usr/ports/UPDATING</filename>,
+ 這裡會寫升級方面的各式問題,比如:檔案格式改變、變更設定檔位置、
+ 與舊版不相容的問題等,以及怎麼解決的完整步驟。</para>
+
+ <para>若 <filename>UPDATING</filename> 內容與你看到的其他文件有些不同
+ 、相衝的話,
+ 那麼請以 <filename>UPDATING</filename> 為準。</para>
+ </sect3>
+
+ <sect3 xml:id="portupgrade">
+ <title>以 Portupgrade 來升級已安裝的 Ports</title>
+
+ <indexterm>
+ <primary>portupgrade</primary>
+ </indexterm>
+
+ <para><application>portupgrade</application> 可以輕鬆升級已裝的軟體。
+ 該工具可從 <package>ports-mgmt/portupgrade</package>
+ port 安裝,
+ 安裝方式就如同其他 port 一樣,用 <command>make install clean
+ </command> 指令就可以了:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/ports-mgmt/portupgrade</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <para>首先最好先以 <command>pkgdb -F</command> 來掃瞄已裝的 ports
+ 資料庫是否有誤,並修正有問題的地方。
+ 在每次做升級之前,最好定期做一下 <command>pkgdb -F</command>
+ 動作會較為妥當。</para>
+
+ <para>跑 <command>portupgrade -a</command> 的話,
+ <application>portupgrade</application> 會升級系統上所有已裝的過舊
+ ports。 若用 <option>-i</option> 則在升級每個 port 過程當中,
+ 會要求確認相關動作是否符合所需。</para>
+
+ <screen>&prompt.root; <userinput>portupgrade -ai</userinput></screen>
+
+ <para>若只想升級某特定程式而非全部,那麼可以用
+ <command>portupgrade pkgname</command>
+ 來做指定。 若想要 <application>portupgrade</application>
+ 優先升級某 port 所相依的相關套件,則請用 <option>-R</option>
+ 參數即可。</para>
+
+ <screen>&prompt.root; <userinput>portupgrade -R firefox</userinput></screen>
+
+ <para>若要用 package 而非 port 來安裝,則需指定
+ <option>-P</option> 才可以。 若有指定這選項,則
+ <application>portupgrade</application> 會搜尋
+ <envar>PKG_PATH</envar> 變數所指定的本機目錄,
+ 若找不到則透過網路來下載安裝。
+ 若本機跟網路都沒有可用的 package 的話,則
+ <application>portupgrade</application> 會使用 port 方式安裝。
+ 若不想如此又變成使用 port 方式安裝,則用 <option>-PP</option>
+ 即可強制避免使用 port 方式安裝。</para>
+
+ <screen>&prompt.root; <userinput>portupgrade -PP gnome2</userinput></screen>
+
+ <para>若只想下載 distfiles(或者若指定 <option>-P</option> 的話,則是
+ package)而不想編譯或安裝檔案,可以使用 <option>-F</option>。
+ 詳情請參閱 &man.portupgrade.1; 的說明。</para>
+ </sect3>
+
+ <sect3 xml:id="portmanager">
+ <title>以 Portmanager 來升級已安裝的 Ports</title>
+
+ <indexterm>
+ <primary>portmanager</primary>
+ </indexterm>
+
+ <para><application>Portmanager</application>
+ 也可以用來輕鬆升級已裝的軟體。 該工具可從 <package>ports-mgmt/portmanager</package> port 安裝:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/ports-mgmt/portmanager</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <para>所有已裝的軟體,都可以輕鬆用類似下列指令來升級:</para>
+
+ <screen>&prompt.root; <userinput>portmanager -u</userinput></screen>
+
+ <para>此外,使用參數可以改為 <option>-ui</option>,如此一來
+ <application>Portmanager</application> 在升級一些有特殊選項的軟體時
+ ,就會詢問該如何升級。 <application>Portmanager</application>
+ 也可以用來裝新 port。與以往常用的
+ <command>make install clean</command> 指令不同之處在於:
+ 它會先升級你要裝的 port 所相依的所有 ports,然後才開始編譯、
+ 安裝要裝的 port。</para>
+
+ <screen>&prompt.root; <userinput>portmanager x11/gnome2</userinput></screen>
+
+ <para>若要裝的 port 之軟體相依關係有問題時,也可以用
+ <application>Portmanager</application> 使它們重歸正軌。 而
+ <application>Portmanager</application> 解決相依問題完畢之後,該 port
+ 也會重新編譯,以因應正確的相依關係。</para>
+
+ <screen>&prompt.root; <userinput>portmanager graphics/gimp -f</userinput></screen>
+
+ <para>其餘運用法門,請參閱 &man.portmanager.1; 說明。</para>
+ </sect3>
+ </sect2>
+
+ <sect2 xml:id="ports-disk-space">
+ <title>Ports 與硬碟空間</title>
+
+ <indexterm>
+ <primary>ports</primary>
+ <secondary>disk-space</secondary>
+ </indexterm>
+ <para>因為使用 Ports Collection 遲早可能會用光硬碟空間,
+ 所以在裝完軟體後,記得要以 <command>make clean
+ </command> 指令來清除臨時的 <filename>work
+ </filename> 目錄。
+ 此外,可以用下列指令來清除整個 Ports Collection 內的臨時目錄:</para>
+
+ <screen>&prompt.root; <userinput>portsclean -C</userinput></screen>
+
+ <para>ports 用久了,您可能會在
+ <filename>distfiles</filename>
+ 目錄內會累積著許多的原始碼檔案。 可以手動刪除這些檔案,
+ 或者用下列指令來清除所有 port 都不使用的舊檔:</para>
+
+ <screen>&prompt.root; <userinput>portsclean -D</userinput></screen>
+
+ <para>或者要清除所有已裝的 port 都不再使用的舊檔:</para>
+
+ <screen>&prompt.root; <userinput>portsclean -DD</userinput></screen>
+
+ <note>
+ <para><command>portsclean</command> 這工具乃是
+ <application>portupgrade</application> 套件的一部分。</para>
+ </note>
+
+ <para>不要忘了移除那些已經安裝,但不再需要用到的 ports。
+ 有個 <package>ports-mgmt/pkg_cutleaves</package>
+ port,正是可自動完成這功能的好工具。</para>
+ </sect2>
+
+ </sect1>
+
+ <sect1 xml:id="ports-nextsteps">
+ <title>安裝之後,有什麼後續注意事項嗎?</title>
+
+ <para>通常,安裝完軟體後,我們可以閱讀所附的一些文件,或需要編輯設定檔,
+ 來確保這個軟體能順利運作,或在機器開機的時候啟動(如果是 daemon 的話)
+ 等等。</para>
+
+ <para>不同的軟體會有不同的設定步驟。不管怎樣,如果裝好了軟體,
+ 但是不知道下一步怎麼辦的時候, 可以試試看這些小技巧:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>善用 &man.pkg.info.1; ,這指令可以顯示:透過套件管理系統
+ (Packages/Ports)裝了哪些軟體、檔案裝在哪邊。舉例來說,若剛裝了
+ FooPackage (版本 1.0.0),那麼下面這指令:</para>
+
+ <screen>&prompt.root; <userinput>pkg_info -L foopackage-1.0.0 | less</userinput></screen>
+
+ <para>就會顯示這軟體所安裝的檔案清單。 請特別注意在
+ <filename>man/</filename> 目錄內是說明檔、
+ <filename>etc/</filename> 目錄內是設定檔、
+ <filename>doc/</filename> 目錄內是完整文件。</para>
+
+ <para>若不確定已裝的套件版本為何,可以用類似下列指令來查:</para>
+
+ <screen>&prompt.root; <userinput>pkg_info | grep -i foopackage</userinput></screen>
+
+ <para>以上將會搜尋所有已裝的套件,列出有符合
+ <replaceable>foopackage</replaceable> 的套件名稱。
+ 請自行依需求,修改 <replaceable>foopackage</replaceable>
+ 為想找的套件名稱。</para>
+ </listitem>
+
+ <listitem>
+ <para>一旦確認該程式的線上說明有安裝,就可以用 &man.man.1; 來翻閱。
+ 同樣地,若該程式有提供的話,也可以參考設定檔樣本,以及其他文件。
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>若該程式有官網的話,還可以透過網站來找文件、常見問答集(FAQ)等。
+ 若不知道網址,請用下列指令:</para>
+
+ <screen>&prompt.root; <userinput>pkg_info foopackage-1.0.0</userinput></screen>
+
+ <para>若該程式有官網的話,則會有一行 <literal>WWW:</literal>
+ 開頭的出現,這行會列出該程式的官網網址(URL)。</para>
+ </listitem>
+
+ <listitem>
+ <para>Port 若須在開機時就會啟動(就像 Internet
+ 主機),通常都會安裝 script 到
+ <filename>/usr/local/etc/rc.d</filename> 目錄。
+ 您可以檢閱這 script 的正確與否,或若有需要,也可以修改、改名。
+ 詳情請參閱 <link linkend="configtuning-starting-services">啟動 Services</link>。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 xml:id="ports-broken">
+ <title>如何處理爛掉(Broken)的 Ports?</title>
+
+ <para>如果發現某個 port 無法順利安裝、運作, 有幾種方法可以試試看:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>從 <link xlink:href="&url.base;/support.html#gnats">Problem Report
+ 資料庫</link> 中挖寶看看,說不定已經有人送可用的 patch 上去囉,
+ 那麼或許就可以順利解決問題哩。</para>
+ </listitem>
+
+ <listitem>
+ <para>向該 port 的 maintainer 尋求協助:請打
+ <command>make maintainer</command> 或翻閱
+ <filename>Makefile</filename> 以查詢 maintainer 的
+ email address。記得寄信給 maintainer 時,要附註該 port
+ 的名稱、版本(或是把 <filename>Makefile</filename> 內的
+ <literal>&dollar;FreeBSD:</literal> 那一整行附上)
+ 以及相關錯誤訊息。</para>
+
+ <note>
+ <para>有些 port 不是由專門的單一 maintainer 負責,而是透過 <link xlink:href="&url.articles.mailing-list-faq;/article.html">mailing
+ list</link> 的專題討論。許多(但非全部)的聯絡 email 格式通常是
+ <email role="nolink">freebsd-list名稱@FreeBSD.org</email>
+ 。發問時,請記得把『freebsd-list名稱』改為相關討論的
+ mailing list 名稱。</para>
+
+ <para>尤其當 port 的 maintainer 欄位是
+ <email role="nolink">freebsd-ports@FreeBSD.org</email>
+ 時,事實上已經沒人當該 port maintainer 了。
+ 因此若該 port 仍有修正或其他技術支援的話,相關討論都會在
+ freebsd-ports 郵遞論壇上出現。
+ 喔,對了,如果有熟悉該軟體者,志願當該 port maintainer
+ 的話,我們也都很歡迎您的加入喔。</para>
+ </note>
+
+ <para>若 port maintainer 沒有回覆您的信件, 則可以用 &man.send-pr.1;
+ 來提交問題報告 PR。(請參閱 <link xlink:href="&url.articles.problem-reports;/article.html">Writing
+ FreeBSD Problem Reports</link>)。</para>
+ </listitem>
+
+ <listitem>
+ <para>試試看修正它吧! <link xlink:href="&url.books.porters-handbook;/index.html">Porter's
+ Handbook</link> 包括了 <quote>Ports</quote>
+ 架構的細節部份,這些書中內容有助您修好有問題的 port
+ 甚至提交自己的 port﹗</para>
+ </listitem>
+
+ <listitem>
+ <para>從較近的 FTP 站點下載編譯好的 package。
+ package collection 的最上游站是在 <systemitem class="fqdomainname">ftp.FreeBSD.org</systemitem> 上的 <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/">packages
+ 目錄</link>內,但請記得先檢查是否已有 <link xlink:href="http://mirrorlist.FreeBSD.org/">local mirror</link>
+ 站! 通常情況下這些 package 都可以直接使用,
+ 而且應該比自行編譯快一些。
+ 用 &man.pkg.add.1; 即可順利安裝 package 。</para>
+ </listitem>
+ </orderedlist>
+ </sect1>
+
+</chapter>
diff --git a/zh_TW.Big5/books/handbook/ppp-and-slip/Makefile b/zh_TW.UTF-8/books/handbook/ppp-and-slip/Makefile
index 4026603f90..4026603f90 100644
--- a/zh_TW.Big5/books/handbook/ppp-and-slip/Makefile
+++ b/zh_TW.UTF-8/books/handbook/ppp-and-slip/Makefile
diff --git a/zh_TW.Big5/books/handbook/ppp-and-slip/chapter.xml b/zh_TW.UTF-8/books/handbook/ppp-and-slip/chapter.xml
index ff33e5d7e9..d7360f74c2 100644
--- a/zh_TW.Big5/books/handbook/ppp-and-slip/chapter.xml
+++ b/zh_TW.UTF-8/books/handbook/ppp-and-slip/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
diff --git a/zh_TW.Big5/books/handbook/preface/preface.xml b/zh_TW.UTF-8/books/handbook/preface/preface.xml
index d5a0004a18..56bdc59069 100644
--- a/zh_TW.Big5/books/handbook/preface/preface.xml
+++ b/zh_TW.UTF-8/books/handbook/preface/preface.xml
@@ -1,178 +1,178 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
$FreeBSD$
Original revision: 1.30
-->
<preface xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="book-preface">
- <title></title>
+ <title>序</title>
- <bridgehead xml:id="preface-audience" renderas="sect1">Ū̪</bridgehead>
+ <bridgehead xml:id="preface-audience" renderas="sect1">給讀者的話</bridgehead>
- <para>YzOĤ@IJ FreeBSD sAiHbѲĤ@ FreeBSD wˤkAPɷ|vB &unix;
- ¦P@DZ`ΡB@qFCӾ\ŪoäAuݭnz믫MsC</para>
+ <para>若您是第一次接觸 FreeBSD 的新手,可以在本書第一部分找到 FreeBSD 的安裝方法,同時會逐步介紹 &unix;
+ 的基礎概念與一些常用、共通的東西。而閱讀這部分並不難,只需要您有探索的精神和接受新概念。</para>
- <para>ŪoǤAUĤGܪgTЪUؼsxDDA۷ȱotκ޲z̥h`NC
- b\Ūodz`eɩһݭnIѡAbӳj̭AYܡAib\Ūewߤ@fC</para>
+ <para>讀完這些之後,手冊中的第二部分花很長篇幅介紹的各種廣泛主題,相當值得系統管理者去注意。
+ 在閱讀這些章節的內容時所需要的背景知識,都註釋在該章的大綱裡面,若不熟的話,可在閱讀前先預習一番。</para>
- <para>\Ū譱AiѾ\ <xref linkend="bibliography"/>C</para>
+ <para>延伸閱讀方面,可參閱 <xref linkend="bibliography"/>。</para>
- <bridgehead xml:id="preface-changes-from2" renderas="sect1">ĤTDn׭q</bridgehead>
+ <bridgehead xml:id="preface-changes-from2" renderas="sect1">第三版的主要修訂</bridgehead>
- <para>zثeݨ쪺oUĤTO FreeBSD pɨ~ߦ大@C
- sDn׭qApUG</para>
+ <para>您目前看到的這本手冊第三版是 FreeBSD 文件計劃的成員歷時兩年完成的心血之作。
+ 新版的主要修訂部分,如下:</para>
<itemizedlist>
<listitem>
- <para><xref linkend="config-tuning"/>, ]wPįծ(Tuning)Aӳ`wse@sApG
- ACPI q޲zBcronBHΨLh kernel tuning ﶵeC</para>
+ <para><xref linkend="config-tuning"/>, 設定與效能調校(Tuning),該章節針對新內容作更新,比如:
+ ACPI 電源管理、cron、以及其他更多的 kernel tuning 選項說明內容。</para>
</listitem>
<listitem>
- <para><xref linkend="security"/>, tΦwgAӳ`W[FpH(VPN)BɮרtΪs(ACL)AHΦwi(Security
- Advisories)eC</para>
+ <para><xref linkend="security"/>, 系統安全篇,該章節增加了虛擬私人網路(VPN)、檔案系統的存取控制(ACL),以及安全公告(Security
+ Advisories)的內容。</para>
</listitem>
<listitem>
- <para><xref linkend="mac"/>, vs(MAC)OҼW[`CСGO MAC HHΦpBΥӨϱz FreeBSD tΧwC</para>
+ <para><xref linkend="mac"/>, 集權式存取控制(MAC)是本版所增加的章節。本章介紹:什麼是 MAC 機制?以及如何運用它來使您的 FreeBSD 系統更安全。</para>
</listitem>
<listitem>
- <para><xref linkend="disks"/>, xs]ƽgAsWFOGUSB HСBɮרtΧַ(snapshot)BɮרtΰtB(quota)
- BɮפκƴɮרtΡBHΦpwФΰϧ@[KԸѡC</para>
+ <para><xref linkend="disks"/>, 儲存設備篇,新增了像是:USB 隨身碟、檔案系統快照(snapshot)、檔案系統配額(quota)
+ 、檔案及網路的備援檔案系統、以及如何對硬碟分割區作加密等詳解。</para>
</listitem>
<listitem>
- <para><xref linkend="vinum-vinum"/>VinumOҷsW`CСGpB Vinum o޿Ϻ(device-independent)
- AHγn RAID-0, RAID-1 M RAID-5 C</para>
+ <para><xref linkend="vinum-vinum"/>Vinum是本版所新增的章節。本章介紹:如何運用 Vinum 這種邏輯磁碟(device-independent)
+ ,以及軟體 RAID-0, RAID-1 和 RAID-5 。</para>
</listitem>
<listitem>
- <para><xref linkend="ppp-and-slip"/>PPP SLIP @W[FGٱưC</para>
+ <para><xref linkend="ppp-and-slip"/>PPP 及 SLIP 一章中增加了故障排除的說明。</para>
</listitem>
<listitem>
- <para><xref linkend="mail"/>qll@sWpϥΨ䥦 MTA {BSMTP {BUUCPBfecthmailBprocmail BΥHΨ䥦iMDC</para>
+ <para><xref linkend="mail"/>電子郵件一章中新增有關如何使用其它的 MTA 程式、SMTP 認証、UUCP、fecthmail、procmail 的運用以及其它進階專題。</para>
</listitem>
<listitem>
- <para><xref linkend="network-servers"/>, AgAOss@Co@ФFp[] Apache HTTP ABFTPdAHΥΩ䴩
- Microsoft Windows client Samba AC䤤ǬqӦۭ<xref linkend="advanced-networking"/>iΤ@C</para>
+ <para><xref linkend="network-servers"/>, 網路伺服器篇,是新版中全新的一章。這一章介紹了如何架設 Apache HTTP 伺服器、FTPd,以及用於支援
+ Microsoft Windows client 的 Samba 伺服器。其中有些段落來自原先的<xref linkend="advanced-networking"/>進階網路應用一章。</para>
</listitem>
<listitem>
- <para><xref linkend="advanced-networking"/>iΤ@sWb FreeBSD ϥŪ޳]ơBw˵LuHΨϥ ATM(Asynchronous Transfer Mode)
- СC</para>
+ <para><xref linkend="advanced-networking"/>進階網路應用一章新增有關在 FreeBSD 中使用藍芽設備、安裝無線網路以及使用 ATM(Asynchronous Transfer Mode)
+ 網路的介紹。</para>
</listitem>
<listitem>
- <para>W[F@J(Glossary)AΥHѤX{NyC</para>
+ <para>增加了一份詞彙表(Glossary),用以說明全書中出現的術語。</para>
</listitem>
<listitem>
- <para>ssѤҦCϪC</para>
+ <para>重新美編書中所列的圖表。</para>
</listitem>
</itemizedlist>
- <bridgehead xml:id="preface-changes" renderas="sect1">ĤGDn׭q</bridgehead>
+ <bridgehead xml:id="preface-changes" renderas="sect1">第二版的主要修訂</bridgehead>
- <para>UĤGO FreeBSD pɨ~ߦ大@CĤG]tFpUDnܰʡJ</para>
+ <para>本手冊的第二版是 FreeBSD 文件計劃的成員歷時兩年完成的心血之作。第二版包含了如下的主要變動︰</para>
<!-- Talk a little about justification and other stylesheet changes? -->
<itemizedlist>
<listitem>
- <para>W[㪺ؿޡC</para>
+ <para>增加完整的目錄索引。</para>
</listitem>
<listitem>
- <para>Ҧ ASCII Ϫ令ɮ榡ϪC</para>
+ <para>所有的 ASCII 圖表均改成圖檔格式的圖表。</para>
</listitem>
<listitem>
- <para>Cӳ`[JzAHKֳtsӳ`eKnBŪ̩ұFѪC</para>
+ <para>每個章節均加入概述,以便快速的瀏覽該章節內容摘要、讀者所欲了解的部分。</para>
</listitem>
<listitem>
- <para>e[cs´Tj: <quote>}lϥ FreeBSD</quote>, <quote>tκ޲z</quote>, and
- <quote></quote>C</para>
+ <para>內容架構重新組織成三大部分: <quote>開始使用 FreeBSD</quote>, <quote>系統管理</quote>, and
+ <quote>附錄</quote>。</para>
</listitem>
<listitem>
- <para><xref linkend="install"/> (<quote>w FreeBSD</quote>) wgsgAå[J\hϤA
- Ĥ@IJ FreeBSD HAݹϴNܲMAI(@ϩdrĪG)C</para>
+ <para><xref linkend="install"/> (<quote>安裝 FreeBSD</quote>) 已經重新改寫,並加入許多說明圖片,
+ 讓第一次接觸 FreeBSD 的人,直接看圖就很清楚明瞭重點(一圖抵千字的效果)。</para>
</listitem>
<listitem>
- <para><xref linkend="basics"/>(<quote>&unix; ¦g</quote>)sWF processes, daemons
- M signals СC</para>
+ <para><xref linkend="basics"/>(<quote>&unix; 基礎概念篇</quote>)新增了 processes, daemons
+ 和 signals 的介紹。</para>
</listitem>
<listitem>
- <para><xref linkend="ports"/> (<quote>nM޲zg</quote>)sWFЦp޲z binary package M󪺸TC</para>
+ <para><xref linkend="ports"/> (<quote>軟體套件管理篇</quote>)新增了介紹如何管理 binary package 套件的資訊。</para>
</listitem>
<listitem>
- <para><xref linkend="x11"/> (<quote>X Window tνg</quote>) gLgAۭb &xfree86; 4.X Wy x11-wmAOG
- <application>KDE</application> M <application>GNOME</application> C</para>
+ <para><xref linkend="x11"/> (<quote>X Window 視窗系統篇</quote>) 經過全面改寫,著重於在 &xfree86; 4.X 上的流行 x11-wm,像是:
+ <application>KDE</application> 和 <application>GNOME</application> 。</para>
</listitem>
<listitem>
- <para><xref linkend="boot"/> (<quote>FreeBSD }y{g</quote>)seC</para>
+ <para><xref linkend="boot"/> (<quote>FreeBSD 開機流程篇</quote>)更新相關內容。</para>
</listitem>
<listitem>
- <para><xref linkend="disks"/> (<quote>xs]ƽg(Storage)</quote>) OHӳ` <quote>Disks</quote>
- P <quote>Backups</quote> ӼgCڭ̻{oˤl|@`ӱoeAѡC٦ RAID(]twBnRAID) q]sWWhFC</para>
+ <para><xref linkend="disks"/> (<quote>儲存設備篇(Storage)</quote>) 分別以兩個章節 <quote>Disks</quote>
+ 與 <quote>Backups</quote> 來撰寫。我們認為這樣子會比單一章節來得容易瞭解。還有關於 RAID(包含硬體、軟體RAID) 的段落也新增上去了。</para>
</listitem>
<listitem>
- <para><xref linkend="serialcomms"/>(<quote>Serial qTg</quote>)[csgAçs FreeBSD 4.X/5.X eC</para>
+ <para><xref linkend="serialcomms"/>(<quote>Serial 通訊篇</quote>)架構重新改寫,並更新至 FreeBSD 4.X/5.X 的內容。</para>
</listitem>
<listitem>
- <para><xref linkend="ppp-and-slip"/> (<quote>PPP SLIP</quote>)۷{תsC</para>
+ <para><xref linkend="ppp-and-slip"/> (<quote>PPP 及 SLIP</quote>)有相當程度的更新。</para>
</listitem>
<listitem>
- <para><xref linkend="advanced-networking"/>(<quote>iνg</quote>)[J\hseC</para>
+ <para><xref linkend="advanced-networking"/>(<quote>進階網路應用篇</quote>)加入許多新內容。</para>
</listitem>
<listitem>
- <para><xref linkend="mail"/> (<quote>qllg</quote>)jqsWF]w <application>sendmail</application> СC</para>
+ <para><xref linkend="mail"/> (<quote>電子郵件篇</quote>)大量新增了設定 <application>sendmail</application> 的介紹。</para>
</listitem>
<listitem>
- <para><xref linkend="linuxemu"/> (<quote>&linux; ۮeg</quote>) W[\hw
- <application>&oracle;</application>
- <application>&sap.r3;</application> СC</para>
+ <para><xref linkend="linuxemu"/> (<quote>&linux; 相容篇</quote>) 增加許多有關安裝
+ <application>&oracle;</application> 及
+ <application>&sap.r3;</application> 的介紹。</para>
</listitem>
<listitem>
- <para>~AĤGٷs[`AHФUCMDG</para>
+ <para>此外,第二版還新加章節,以介紹下列專題:</para>
<itemizedlist>
<listitem>
- <para><xref linkend="config-tuning"/>, ]wPįծ(Tuning)C</para>
+ <para><xref linkend="config-tuning"/>, 設定與效能調校(Tuning)。</para>
</listitem>
<listitem>
- <para><xref linkend="multimedia"/>, hCvT(Multimedia)C</para>
+ <para><xref linkend="multimedia"/>, 多媒體影音娛樂(Multimedia)。</para>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist>
- <bridgehead xml:id="preface-overview" renderas="sect1">Ѭ[c</bridgehead>
+ <bridgehead xml:id="preface-overview" renderas="sect1">本書架構</bridgehead>
- <para>ѥDnjAĤ@y}lϥΡzG FreeBSD wˡB򥻾ާ@C
- Ū̥iھڦۤv{סA`ǩΪ̸L@ǼxDDӾ\ŪF
- ĤGy`ξާ@zG FreeBSD `Υ\AoiHǨŪC
- Ce|zAz|yz`[\eMŪӤwA
- oDnOŪ̥iHDw`\ŪF
- ĤTytκ޲zzG FreeBSD ѤҷP쪺UرMDF
- ĥ|yqTzGh]AMU Server MDFӲĤyzGOUئ FreeBSD 귽C</para>
+ <para>本書主要分為五大部分,第一部份『開始使用』:介紹 FreeBSD 的安裝、基本操作。
+ 讀者可根據自己的程度,循序或者跳過一些熟悉的主題來閱讀;
+ 第二部分『常用操作』:介紹 FreeBSD 常用功能,這部分可以不按順序來讀。
+ 每章前面都會有概述,概述會描述本章節涵蓋的內容和讀者應該已知的,
+ 這主要是讓讀者可以挑喜歡的章節閱讀;
+ 第三部分『系統管理』:介紹 FreeBSD 老手所感興趣的各種專題部分;
+ 第四部分『網路通訊』:則包括網路和各式 Server 專題;而第五部分『附錄』:是各種有關 FreeBSD 的資源。</para>
<variablelist>
<!-- Part I - Introduction -->
<varlistentry>
- <term><emphasis><xref linkend="introduction"/>, ²g</emphasis></term>
+ <term><emphasis><xref linkend="introduction"/>, 簡介篇</emphasis></term>
<listitem>
- <para>Vs⤶ FreeBSDCӽgF FreeBSD pvBؼЩM}oҦC</para>
+ <para>向新手介紹 FreeBSD。該篇說明了 FreeBSD 計劃的歷史、目標和開發模式。</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><emphasis><xref linkend="install"/>, w˽g</emphasis></term>
+ <term><emphasis><xref linkend="install"/>, 安裝篇</emphasis></term>
<listitem>
- <para>Цw˵{ǡC䤤٦Ф@Ƕiw˥DDA]AOpzL serial console ӦwˡC</para>
+ <para>介紹安裝程序。其中還有介紹一些進階的安裝主題,包括像是如何透過 serial console 來安裝。</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><emphasis><xref linkend="basics"/>, &unix; ¦g</emphasis></term>
+ <term><emphasis><xref linkend="basics"/>, &unix; 基礎概念篇</emphasis></term>
<listitem>
<para>Covers the basic commands and functionality of the
FreeBSD operating system. If you are familiar with &linux; or
@@ -181,7 +181,7 @@
</listitem>
</varlistentry>
<varlistentry>
- <term><emphasis><xref linkend="ports"/>, nM޲zg</emphasis></term>
+ <term><emphasis><xref linkend="ports"/>, 軟體套件管理篇</emphasis></term>
<listitem>
<para>Covers the installation of third-party software with
both FreeBSD's innovative <quote>Ports Collection</quote> and standard
@@ -189,7 +189,7 @@
</listitem>
</varlistentry>
<varlistentry>
- <term><emphasis><xref linkend="x11"/>, X Window tνg</emphasis></term>
+ <term><emphasis><xref linkend="x11"/>, X Window 視窗系統篇</emphasis></term>
<listitem>
<para>Describes the X Window System in general and using
X11 on FreeBSD in particular. Also describes common
@@ -224,7 +224,7 @@
</listitem>
</varlistentry>
<varlistentry>
- <term><emphasis><xref linkend="printing"/>, CLg</emphasis></term>
+ <term><emphasis><xref linkend="printing"/>, 列印篇</emphasis></term>
<listitem>
<para>Describes managing printers on FreeBSD, including
information about banner pages, printer accounting, and
@@ -411,41 +411,41 @@
</varlistentry>
</variablelist>
- <bridgehead xml:id="preface-conv" renderas="sect1">Ѫs</bridgehead>
+ <bridgehead xml:id="preface-conv" renderas="sect1">本書的編排體裁</bridgehead>
- <para>K\ŪѡAHUO@ǥѩҿ`sG</para>
+ <para>為方便閱讀本書,以下是一些本書所遵循的編排體裁:</para>
- <bridgehead xml:id="preface-conv-typographic" renderas="sect2">rs</bridgehead>
+ <bridgehead xml:id="preface-conv-typographic" renderas="sect2">文字編排體裁</bridgehead>
<variablelist>
<varlistentry>
- <term><emphasis>r(Italic)</emphasis></term>
+ <term><emphasis>斜體字(Italic)</emphasis></term>
<listitem>
- <para><emphasis>r(Italic)</emphasis> ΩGɦWBؿB}(URL)B
- jջyBHβĤ@Ϊ޳NJC</para>
+ <para><emphasis>斜體字型(Italic)</emphasis> 用於:檔名、目錄、網址(URL)、
+ 強調語氣、以及第一次提及的技術詞彙。</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><literal>wer(Monospace)</literal></term>
+ <term><literal>定寬字(Monospace)</literal></term>
<listitem>
- <para><literal>wer(Monospace)</literal> ΩG
- ~TBOBܼơBport W١BDW(hostname)BbBsաB](device)W١BܼơB
- {XC</para>
+ <para><literal>定寬字(Monospace)</literal> 用於:
+ 錯誤訊息、指令、環境變數、port 名稱、主機名稱(hostname)、帳號、群組、設備(device)名稱、變數、
+ 程式碼等。</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><application>r(Bold)</application></term>
+ <term><application>粗體字型(Bold)</application></term>
<listitem>
- <para>H<application>r</application>ܡGε{BROBC</para>
+ <para>以<application>粗體字</application>表示:應用程式、命令、按鍵。</para>
</listitem>
</varlistentry>
</variablelist>
<!-- Var list -->
- <bridgehead xml:id="preface-conv-commands" renderas="sect2">ϥΪ̿J</bridgehead>
+ <bridgehead xml:id="preface-conv-commands" renderas="sect2">使用者輸入</bridgehead>
- <para>LJH <keycap>r(Bold)</keycap> ܡAHKP@rϹjC
- զXOPɫU@ǫAڭ̥H `<literal>+</literal>' ӪܳsAOG</para>
+ <para>鍵盤輸入以 <keycap>粗體字(Bold)</keycap> 表示,以便與一般文字做區隔。
+ 組合鍵是指同時按下一些按鍵,我們以 `<literal>+</literal>' 來表示連接,像是:</para>
<para>
<keycombo action="simul">
@@ -455,10 +455,10 @@
</keycombo>
</para>
- <para>]NOA@_ <keycap>Ctrl</keycap> B
- <keycap>Alt</keycap> AH <keycap>Del</keycap> C</para>
+ <para>也就是說,一起按 <keycap>Ctrl</keycap> 鍵、
+ <keycap>Alt</keycap> 鍵,以及 <keycap>Del</keycap> 鍵。</para>
- <para>Ynv@A|Hr(,)ӪܡAOG</para>
+ <para>若要逐一按鍵,那麼會以逗號(,)來表示,像是:</para>
<para>
<keycombo action="simul">
@@ -471,40 +471,40 @@
</keycombo>
</para>
- <para>]NOGPɫU <keycap>Ctrl</keycap> P <keycap>X</keycap> A
- M}APɫ <keycap>Ctrl</keycap> P <keycap>S</keycap> C</para>
+ <para>也就是說:先同時按下 <keycap>Ctrl</keycap> 與 <keycap>X</keycap> 鍵,
+ 然後放開後再同時按 <keycap>Ctrl</keycap> 與 <keycap>S</keycap> 鍵。</para>
<!-- How to type in key stokes, etc.. -->
- <bridgehead xml:id="preface-conv-examples" renderas="sect2">|ӹ</bridgehead>
+ <bridgehead xml:id="preface-conv-examples" renderas="sect2">舉個實例</bridgehead>
- <para>UҤlH <filename>E:\&gt;</filename>
- }YN &ms-dos; OC YSSpܡAoǫOӬOb &microsoft.windows; Ҫ
- <quote>ROܦr(Command Prompt)</quote> C</para>
+ <para>下面例子以 <filename>E:\&gt;</filename>
+ 為開頭的代表 &ms-dos; 指令部分。 若沒有特殊情況的話,這些指令應該是在 &microsoft.windows; 環境的
+ <quote>命令提示字元(Command Prompt)</quote> 內執行。</para>
<screen><prompt>E:\&gt;</prompt> <userinput>tools\fdimage floppies\kern.flp A:</userinput></screen>
- <para>ҤlYOH &prompt.root; }YAOܡANOb FreeBSD H root vӤUROC
- AiHH <systemitem class="username">root</systemitem>nJtΨäUOAάOHAۤvbnJAèϥ
- &man.su.1; Өo root vC</para>
+ <para>例子若是先以 &prompt.root; 為開頭再接指令的話,就是指在 FreeBSD 中以 root 權限來下命令。
+ 你可以先以 <systemitem class="username">root</systemitem>登入系統並下指令,或是以你自己的帳號登入,並使用
+ &man.su.1; 來取得 root 權限。</para>
<screen>&prompt.root; <userinput>dd if=kern.flp of=/dev/fd0</userinput></screen>
- <para>ҤlYOH &prompt.user; }YAOܡANOb FreeBSD H@bӤUROYiC
- DLΪkA_hOw] C-shell(csh/tcsh) ykAΨӳ]wܼƥHΤULONC</para>
+ <para>例子若是先以 &prompt.user; 為開頭再接指令的話,就是指在 FreeBSD 中以一般帳號來下命令即可。
+ 除非有提到其他用法,否則都是預設為 C-shell(csh/tcsh) 語法,用來設定環境變數以及下其他指令的意思。</para>
<screen>&prompt.user; <userinput>top</userinput></screen>
- <bridgehead xml:id="preface-acknowledgements" renderas="sect1">P</bridgehead>
+ <bridgehead xml:id="preface-acknowledgements" renderas="sect1">致謝</bridgehead>
- <para>zҬݨ쪺oѬOgLƦʭӤb@ɦUaHҧVOӨӪGC
- LץL̥uOȥ@ǿ~δ槹㪺`AҦIw^mOD`_QΪC</para>
+ <para>您所看到的這本書是經過數百個分散在世界各地的人所努力而來的結果。
+ 無論他們只是糾正一些錯誤或提交完整的章節,所有的點滴貢獻都是非常寶貴有用的。</para>
- <para>]@ǤqzLѸ@̱M`󼶽ZBѥXҦӤ󪺼g@C
- 䤤ABSDi (֤J <link xlink:href="http://www.windriver.com">Wind River Systems</link>)
- U FreeBSD pӱM¾ﵽoѪ 2000 ~ 3 Ĥ@XC(ISBN 1-57176-241-8)
- Wind River Systems PɸUL@̨ӹX[cܦhiAHε峹W[@Ǫ[`Cou@
- 2001 ~ 11 ĤGC(ISBN 1-57176-303-1)
- b 2003-2004 ~A<link xlink:href="http://www.freebsdmall.com">FreeBSD Mall</link> SIioUHϲĤTLꪩXӤuC
+ <para>也有一些公司透過提供資金讓作者專注於撰稿、提供出版資金等模式來支持文件的寫作。
+ 其中,BSDi (之後併入 <link xlink:href="http://www.windriver.com">Wind River Systems</link>)
+ 資助 FreeBSD 文件計劃成員來專職改善這本書直到 2000 年 3 月第一版的出版。(ISBN 1-57176-241-8)
+ Wind River Systems 同時資助其他作者來對輸出架構做很多改進,以及給文章增加一些附加章節。這項工作結束於
+ 2001 年 11 月第二版。(ISBN 1-57176-303-1)
+ 在 2003-2004 兩年中,<link xlink:href="http://www.freebsdmall.com">FreeBSD Mall</link> 把報酬支付給改進這本手冊以使第三版印刷版本能夠出版的志工。
</para>
</preface>
diff --git a/zh_TW.Big5/books/handbook/printing/Makefile b/zh_TW.UTF-8/books/handbook/printing/Makefile
index cbf5a174cc..cbf5a174cc 100644
--- a/zh_TW.Big5/books/handbook/printing/Makefile
+++ b/zh_TW.UTF-8/books/handbook/printing/Makefile
diff --git a/zh_TW.Big5/books/handbook/printing/chapter.xml b/zh_TW.UTF-8/books/handbook/printing/chapter.xml
index 52d45a6a21..f98dbbca8c 100644
--- a/zh_TW.Big5/books/handbook/printing/chapter.xml
+++ b/zh_TW.UTF-8/books/handbook/printing/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Traditional Chinese Documentation Project
@@ -6,7 +6,7 @@
Original revision: 1.96
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="printing">
- <info><title>CL</title>
+ <info><title>列印</title>
<authorgroup>
<author><personname><firstname>Sean</firstname><surname>Kelly</surname></personname><contrib>Contributed by </contrib></author>
<!-- 30 Sept 1995 -->
@@ -19,155 +19,155 @@
<sect1 xml:id="printing-synopsis">
- <title>z</title>
+ <title>概述</title>
<indexterm><primary>LPD spooling system</primary></indexterm>
- <indexterm><primary>LPD wĨt</primary></indexterm>
+ <indexterm><primary>LPD 緩衝系統</primary></indexterm>
<indexterm><primary>printing</primary></indexterm>
- <indexterm><primary>CL</primary></indexterm>
+ <indexterm><primary>列印</primary></indexterm>
- <para>FreeBSD iHMUU˪LftCLA
- q̦ѪwL̷spgLSDA
- zε{iHͥX~誺CLXC</para>
+ <para>FreeBSD 可以和各式各樣的印表機搭配列印,
+ 從最老的撞針式印表機到最新的雷射印表機都沒問題,
+ 讓您的應用程式可以產生出高品質的文件列印輸出。</para>
- <para>]iH FreeBSD ]w@xCLAFoɭԪ FreeBSD
- ౵LqeӪCLu@A]AL FreeBSD qB&windows;
- qH &macos; qC FreeBSD
- |TOPɥu@󥿦bCLAӥBiHέpӨϥΪ̤ξLo̦hA
- ٦NOLXUӬO֪o<quote>D</quote>C</para>
+ <para>也可以把 FreeBSD 設定成一台網路列印伺服器;這時候的 FreeBSD
+ 能接收其他電腦送來的列印工作,包括其他 FreeBSD 的電腦、&windows;
+ 的電腦以及 &macos; 的電腦。 FreeBSD
+ 會確保同時只有一件文件正在列印,而且可以統計哪個使用者及機器印得最多,
+ 還有就是印出接下來是誰的文件這類的<quote>標題</quote>頁等。</para>
- <para>ŪoAzNFѡG</para>
+ <para>讀完這章,您將了解:</para>
<itemizedlist>
<listitem>
- <para>p]w FreeBSD CLhuwijBzC</para>
+ <para>如何設定 FreeBSD 的列印多工緩衝處理器。</para>
</listitem>
<listitem>
- <para>pw˦CLLoHOBzSCLu@A
- ]A⦬쪺ഫzLݱoCL榡C</para>
+ <para>如何安裝列印過濾器以分別處理特殊的列印工作,
+ 包括把收到的文件轉換成您的印表機看得懂的列印格式等。</para>
</listitem>
<listitem>
- <para>FѦpbzCLɶKLXμDC</para>
+ <para>了解如何在您列印時順便印出頁首或標題。</para>
</listitem>
<listitem>
- <para>pQΧOxqWLCLC</para>
+ <para>如何利用別台電腦上的印表機列印。</para>
</listitem>
<listitem>
- <para>pQΪbWLCLC</para>
+ <para>如何利用直接接在網路上的印表機列印。</para>
</listitem>
<listitem>
- <para>p󱱨LvA]ACLu@ɮפjpA
- HΤ\SwϥΪ̦CLC</para>
+ <para>如何控制印表機的權限,包括限制列印工作的檔案大小,
+ 以及不允許特定使用者列印等。</para>
</listitem>
<listitem>
- <para>pOULέpơAHΦUbLϥζqC</para>
+ <para>如何記下印表機的統計資料,以及各帳號的印表機使用量。</para>
</listitem>
<listitem>
- <para>pѨMCLɹJ쪺DC</para>
+ <para>如何解決列印時遇到的問題。</para>
</listitem>
</itemizedlist>
- <para>b}l\ŪoeAzݭnJ</para>
+ <para>在開始閱讀這章之前,您需要︰</para>
<itemizedlist>
<listitem>
- <para>n]wBsĶ kernel ¦
- (<xref linkend="kernelconfig"/>)C</para>
+ <para>要有設定、編譯 kernel 的基礎概念
+ (<xref linkend="kernelconfig"/>)。</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="printing-intro-spooler">
- <title></title>
+ <title>介紹</title>
- <para>nb FreeBSD WϥΦLAzݭn]wn Berkeley
- CLCLwĨtΡAS٬ <application>LPD</application>
- CLwĨtΡAΪ̴NsL <application>LPD</application> aC
- oO FreeBSD зǪLtΡA|Шñбzp]w
- <application>LPD</application>C</para>
+ <para>要在 FreeBSD 上使用印表機,您需要設定好 Berkeley
+ 行列式印表機列印緩衝系統,又稱為 <application>LPD</application>
+ 列印緩衝系統,或者就叫他 <application>LPD</application> 吧。
+ 這是 FreeBSD 標準的印表機控制系統,本章會介紹並教您如何設定
+ <application>LPD</application>。</para>
- <para>pGzwg <application>LPD</application>
- άOLCLwĨtΫܼxFA
- ziH<link linkend="printing-intro-setup">򥻳]w</link>C
+ <para>如果您已經對 <application>LPD</application>
+ 或是其他列印緩衝系統很熟悉了,
+ 您可以直接跳到<link linkend="printing-intro-setup">基本設定</link>。
</para>
- <para><application>LPD</application> ۥDWL@C
- tdoǤu@G</para>
+ <para><application>LPD</application> 控制著主機上印表機的一切。
+ 它負責這些工作:</para>
<itemizedlist>
<listitem>
- <para>κLϥΡC</para>
+ <para>控制本機及網路印表機的使用。</para>
</listitem>
<listitem>
- <para>ϥΪ̥iHCLAeX٬<emphasis>u@</emphasis>C<indexterm><primary>print jobs</primary></indexterm>
+ <para>讓使用者可以列印文件,送出的文件稱為<emphasis>工作</emphasis>。<indexterm><primary>print jobs</primary></indexterm>
</para>
</listitem>
<listitem>
- <para>CxLdzƤ@<emphasis>C</emphasis>A
- קKhӨϥΪ̦PɨϥΦP@xLC</para>
+ <para>為每台印表機準備一個<emphasis>佇列</emphasis>,
+ 避免多個使用者同時使用同一台印表機。</para>
</listitem>
<listitem>
- <para>CL <emphasis>header pages</emphasis> (S٬
+ <para>列印 <emphasis>header pages</emphasis> (又稱為
<emphasis>banner</emphasis> or <emphasis>burst</emphasis>
- pages)AKϥΪ̦bXȹhۤwCLC</para>
+ pages),方便使用者在出紙閘中找到自已列印的文件。</para>
</listitem>
<listitem>
- <para>ⱵbCWLqTѼƳ]wnC</para>
+ <para>把接在串列埠上的印表機的通訊參數設定好。</para>
</listitem>
<listitem>
- <para>QκǰeCLu@OxDW
- <application>LPD</application>C</para>
+ <para>利用網路傳送列印工作給別台主機上的
+ <application>LPD</application>。</para>
</listitem>
<listitem>
- <para>SOLo{NCLu@榡ƥHtXPCLyΦLC
+ <para>執行特別的過濾程式將列印工作格式化以配合不同的列印語言或印表機。
</para>
</listitem>
<listitem>
- <para>έpLϥαpC</para>
+ <para>統計印表機的使用情況。</para>
</listitem>
</itemizedlist>
- <para>ǥѳ]w (<filename>/etc/printcap</filename>) HιLo{UA
- ziHjhƪLtX <application>LPD</application>
- FWzγ\C</para>
+ <para>藉由設定檔 (<filename>/etc/printcap</filename>) 以及過濾程式的幫助,
+ 您可以讓大多數的印表機配合 <application>LPD</application>
+ 達成上述全部或部份的功能。</para>
<sect2 xml:id="printing-intro-why">
- <title>ݭnϥΦhuwijBz</title>
+ <title>為什麼需要使用多工緩衝處理器</title>
- <para>pGztάOӤHϥΡA
- ݭnsvBCLDΪ̲έpϥαp\ɡA
- zi|ıoܩ_Ǭٻݭnh޳oӦhuwijBzC
- MnLi檺A
- LLצpz٬OݭnhuwijBzA]G</para>
+ <para>如果您的系統是個人使用,
+ 不需要控制存取權限、列印標題頁或者統計使用情況等功能時,
+ 您可能會覺得很奇怪為什麼還需要去管這個多工緩衝處理器。
+ 當然要直接控制印表機可行的,
+ 不過無論如何您還是需要多工緩衝處理器,因為:</para>
<itemizedlist>
<listitem>
- <para><application>LPD</application> iHbI (background)
- CLAzݭnb䵥eLC</para>
+ <para><application>LPD</application> 可以在背景 (background)
+ 列印,您不需要在那邊等文件送到印表機。</para>
</listitem>
<listitem>
- <para><application>LPD</application> iHܻPaιLoW[ /
- ɶ󭶭άOSOɮ׮榡 (O &tex;<indexterm><primary>&tex;</primary></indexterm> DVI )
- ഫLݱo榡AzݭnʥhoǨBJC</para>
+ <para><application>LPD</application> 可以很輕鬆地用過濾器增加日期 /
+ 時間於頁首或是把特別的檔案格式 (像是 &tex;<indexterm><primary>&tex;</primary></indexterm> DVI 檔)
+ 轉換成印表機看得懂的的格式,您不需要手動去做這些步驟。</para>
</listitem>
<listitem>
- <para>\hKOΰӷ~n鴣ѪCL\q`OMhuwijBzqC
- zL]wwĨtΡA䴩z{άOYNnw˪LnNܱoeC
+ <para>許多免費或商業軟體提供的列印功能通常都是和多工緩衝處理器溝通。
+ 透過設定緩衝系統,支援您現有或是即將要安裝的其他軟體將變得更容易。
</para>
</listitem>
</itemizedlist>
@@ -175,121 +175,121 @@
</sect1>
<sect1 xml:id="printing-intro-setup">
- <title>¦]w</title>
+ <title>基礎設定</title>
- <para>nΦLft <application>LPD</application>
- huwĨtΡAzݭnLoӵwH
- <application>LPD</application> oMnC
- UѤFⶥq]wG</para>
+ <para>要用印表機搭配 <application>LPD</application>
+ 多工緩衝系統,您需要有印表機這個硬體以及
+ <application>LPD</application> 這套軟體。
+ 本手冊提供了兩階段的設定說明:</para>
<itemizedlist>
<listitem>
- <para>\Ū <link linkend="printing-simple">²L]w</link>
- ӾDzߦpsLBLM <application>LPD</application>
- qHΦCL¤rC</para>
+ <para>閱讀 <link linkend="printing-simple">簡易印表機設定</link>
+ 來學習如何連接印表機、讓印表機和 <application>LPD</application>
+ 溝通以及列印純文字文件。</para>
</listitem>
<listitem>
- <para>\Ū <link linkend="printing-advanced">iL]w</link>
- ӾDzߦpCLUدS榡BCLBCLB
- LvHβέpϥΪpC</para>
+ <para>閱讀 <link linkend="printing-advanced">進階印表機設定</link>
+ 來學習如何列印各種特殊格式文件、列印首頁、網路列印、
+ 控制印表機權限以及統計使用狀況等。</para>
</listitem>
</itemizedlist>
<sect2 xml:id="printing-simple">
- <title>²L]w</title>
+ <title>簡易印表機設定</title>
- <para>`|iDzp]wL]ƩM
- <application>LPD</application> nHϥΦLA
- 򥻱оǤeG</para>
+ <para>本章節會告訴您如何設定印表機設備和
+ <application>LPD</application> 軟體以使用印表機,
+ 基本教學內容:</para>
<itemizedlist>
<listitem>
- <para><link linkend="printing-hardware">w]w</link>
- |ܦpNLWqsC</para>
+ <para><link linkend="printing-hardware">硬體設定</link>
+ 會提示如何將印表機接上電腦的連接埠。</para>
</listitem>
<listitem>
- <para><link linkend="printing-software">n]w</link>
- |ܽdpg <application>LPD</application> wľ]w
- (<filename>/etc/printcap</filename>)C</para>
+ <para><link linkend="printing-software">軟體設定</link>
+ 會示範如何寫 <application>LPD</application> 緩衝器設定檔
+ (<filename>/etc/printcap</filename>)。</para>
</listitem>
</itemizedlist>
- <para>pGznL]wCLƦӤOݪܡAаѦ
+ <para>如果您要把印表機設定接收網路列印資料而不是本機端的話,請參考
<link linkend="printing-advanced-network-net-if">
- Lκƶǿ餶</link>C</para>
+ 印表機及網路資料傳輸介面</link>。</para>
- <para>oӳ`Ms<quote>²L]w</quote>A
- ڤW٬OIC ̧xOALMqW
- <application>LPD</application> wľ`B@C
- @LiH`u@A
- OLάOCLέpoǶi\NFC
+ <para>這個章節雖然叫做<quote>簡易印表機設定</quote>,
+ 實際上還是有點複雜的。 最困難的部份是讓你的印表機和電腦上的
+ <application>LPD</application> 緩衝器能夠正常運作。
+ 一旦印表機可以正常工作之後,
+ 像是印首頁或是做列印統計這些進階的功能就不難做到了。
</para>
<sect3 xml:id="printing-hardware">
- <title>w]w</title>
+ <title>硬體設定</title>
- <para>`QצUسsL PC 覡C
- o̷|줣PsMsuA
- HάF FreeBSD MLqzi|ݭn}Ҫ֤߰ѼƵC
+ <para>本章節討論各種連接印表機到 PC 的方式。
+ 這裡會提到不同種類的連接埠和連接線,
+ 以及為了讓 FreeBSD 能和印表機溝通您可能會需要開啟的核心參數等。
</para>
- <para>pGzwgLWqA
- ӥBbL@~tΤW\CLLܡAiH
- <link linkend="printing-software">n]w</link>C</para>
+ <para>如果您已經把印表機接上電腦,
+ 而且在其他作業系統上有成功列印過的話,可以直接跳至
+ <link linkend="printing-software">軟體設定</link>。</para>
<sect4 xml:id="printing-ports">
- <title>sMƽu</title>
+ <title>連接埠和排線</title>
- <para>ӤHqL@ӻXoTجɭG</para>
+ <para>市售個人電腦印表機一般來說不出這三種界面:</para>
<itemizedlist>
<listitem>
- <para><emphasis>ǦC (Serial)</emphasis><indexterm><primary>printers</primary><secondary>serial</secondary></indexterm>
- ɭAS٬ RS-232 COM A
- αzqWǦCǰeƨLC
- ǦCɭsxq~ɩұĥΡA
- ҥHƽueoAn]wsuäxC
- MӧǦCɭԷ|ݭnϥθSOƽuA
- oɭԴNiݭn]w@ǸqTѼƤFC
- j PC ǦC𪺶ǿt׳̰u 115200&nbsp;bpsA
- ]QnΧǦCӦCLjϬOڪC</para>
+ <para><emphasis>序列 (Serial)</emphasis><indexterm><primary>printers</primary><secondary>serial</secondary></indexterm>
+ 界面,又稱為 RS-232 或 COM 埠,
+ 用您電腦上的序列埠傳送資料到印表機。
+ 序列界面廣泛的為電腦業界所採用,
+ 所以排線容易取得,要設定連線並不困難。
+ 然而序列介面有時候會需要使用較特別的排線,
+ 這時候就有可能需要設定一些較為複雜的通訊參數了。
+ 大部份 PC 序列埠的傳輸速度最高只到 115200&nbsp;bps,
+ 因此想要用序列埠來列印大圖是不切實際的。</para>
</listitem>
<listitem>
- <para><emphasis>æC (Parallel)</emphasis><indexterm><primary>printers</primary><secondary>parallel</secondary></indexterm>
- ɭQιqæCNưeLC
- æC RS-232 ǦC٧֡A]O@عq~ɱ`ΪɭC
- oجɭƽuD`eoAOΤuyC
- q`ӻæCɭèSqTѼƻݭnwA
- ҥH]w_ӶWŮeC</para>
+ <para><emphasis>並列 (Parallel)</emphasis><indexterm><primary>printers</primary><secondary>parallel</secondary></indexterm>
+ 界面利用電腦的並列埠將資料送到印表機。
+ 並列埠比 RS-232 序列埠還快,也是一種電腦業界常用的界面。
+ 這種界面的排線非常容易取得,但是較難用手工打造。
+ 通常來說並列界面並沒有什麼通訊參數需要指定,
+ 所以設定起來超級容易。</para>
- <para>æCɭɭԤ]|Q٬ <quote>Centronics</quote><indexterm><primary>centronics</primary><see>parallel printers</see></indexterm>
- ɭAoOLYW١C</para>
+ <para>並列埠界面有時候也會被稱為 <quote>Centronics</quote><indexterm><primary>centronics</primary><see>parallel printers</see></indexterm>
+ 界面,這是印表機的接頭的名稱。</para>
</listitem>
<listitem>
- <para>USB<indexterm><primary>printers</primary><secondary>USB</secondary></indexterm> ɭA]NOqΧǦC׬yơAǿtvæCɭάO
- RS-232 ǦCɭӱo֡AӥB USB ƽu¤SKyC
- CLu@ӨAUSB RS-232
- ǦCάOæC𳣨ӱonAOb
- &unix; tΤW䴩׸tC ʶRPɨ㦳 USB
- ΨæCجɭLiHקKoذDC</para>
+ <para>USB<indexterm><primary>printers</primary><secondary>USB</secondary></indexterm> 界面,也就是通用序列匯流排,傳輸速率比並列界面或是
+ RS-232 序列界面都來得快,而且 USB 排線單純又便宜。
+ 對列印工作而言,USB 比 RS-232
+ 序列埠或是並列埠都來得好,但是在
+ &unix; 系統上的支援度較差。 購買同時具有 USB
+ 及並列埠兩種界面的印表機可以避免掉這種問題。</para>
</listitem>
</itemizedlist>
- <para>@ӨAæCɭuണѳVǿ
- (qܦL)Aӭn USB ~ണVC MӦb FreeBSD
- UAϥθsæC (EPP M ECP) HΦLAAtXϥ
- IEEE-1284 ۮeƽu]iHVqC</para>
+ <para>一般而言,並列界面只能提供單向傳輸
+ (電腦至印表機),而要用 USB 才能提供雙向。 然而在 FreeBSD
+ 下,使用較新的並列埠 (EPP 和 ECP) 以及印表機,再配合使用
+ IEEE-1284 相容排線也可以做到雙向溝通。</para>
<indexterm><primary>PostScript</primary></indexterm>
- <para>qMLǥѨæCiVq覡ءC
- Ĥ@جOϥίSsBMSwLq FreeBSD LXʵ{C
- oؤ覡bQLWܱ`AΨӦ^sqHΨLATC
- ĤGؤkO &postscript;ApGL䴩ܡC</para>
+ <para>電腦和印表機之間藉由並列埠行進雙向溝通的方式有兩種。
+ 第一種是使用特製的、能和特定印表機溝通的 FreeBSD 印表機驅動程式。
+ 這種方式在噴墨印表機上很常見,用來回報墨水存量以及其他狀態資訊等。
+ 第二種方法是用 &postscript;,如果印表機有支援的話。</para>
<para>&postscript; jobs are
actually programs sent to the printer; they need not produce
diff --git a/zh_TW.Big5/books/handbook/security/Makefile b/zh_TW.UTF-8/books/handbook/security/Makefile
index 3524819d48..3524819d48 100644
--- a/zh_TW.Big5/books/handbook/security/Makefile
+++ b/zh_TW.UTF-8/books/handbook/security/Makefile
diff --git a/zh_TW.Big5/books/handbook/security/chapter.xml b/zh_TW.UTF-8/books/handbook/security/chapter.xml
index 8ecb77bf4a..a75dfaf83c 100644
--- a/zh_TW.Big5/books/handbook/security/chapter.xml
+++ b/zh_TW.UTF-8/books/handbook/security/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
@@ -6,7 +6,7 @@
Original revision: 1.285
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="security">
- <info><title>tΦw</title>
+ <info><title>系統安全</title>
<authorgroup>
<author><personname><firstname>Matthew</firstname><surname>Dillon</surname></personname><contrib>Much of this chapter has been taken from the
security(7) manual page by </contrib></author>
@@ -17,98 +17,98 @@
<indexterm><primary>security</primary></indexterm>
<sect1 xml:id="security-synopsis">
- <title>z</title>
+ <title>概述</title>
- <para>o@NtΦw򥻷i椶СA~AٱNФ@ǦnߺDAH
- &os; U@ǧ`JDCo\he@몺tΩM Internet
- w]AΡCpAInternet wgAHeˬOӤHH@NPz@nF~y͵ҡzC
- tΧwA~hO@zơBz]B_QɶHΨLܦhFA
- ӤܩQJI̩ΤߦscNHѨC</para>
+ <para>這一章將對系統安全的基本概念進行介紹,除此之外,還將介紹一些好的習慣,以及
+ &os; 下的一些更深入的話題。這章的許多內容對於一般的系統和 Internet
+ 安全也適用。如今,Internet 已經不再像以前那樣是個人人都願意與您作好鄰居的『友善場所』。
+ 必須讓系統更安全,才能去保護您的資料、智慧財產、寶貴時間以及其他很多東西,
+ 而不至於被入侵者或心存惡意的人所竊取。</para>
- <para>&os; ѤF@tCuMAӽTOtΩMBwC</para>
+ <para>&os; 提供了一系列工具和相關機制,來確保系統和網路的完整、安全。</para>
- <para>ŪoAzNFѡJ</para>
+ <para>讀完這章,您將了解︰</para>
<itemizedlist>
<listitem>
- <para> &os; tΪ򥻦wC</para>
+ <para> &os; 系統的基本安全概念。</para>
</listitem>
<listitem>
- <para>&os; \hiΪ[KAҦp <acronym>DES</acronym>
- <acronym>MD5</acronym>C</para>
+ <para>&os; 中許多可用的加密機制,例如 <acronym>DES</acronym> 及
+ <acronym>MD5</acronym>。</para>
</listitem>
<listitem>
- <para>pإߤ@(one-time)KXҾC</para>
+ <para>如何建立一次性(one-time)密碼驗證機制。</para>
</listitem>
<listitem>
- <para>p]w <acronym>TCP</acronym> Wrappers
- HKP <command>inetd</command> tXϥΡC</para>
+ <para>如何設定 <acronym>TCP</acronym> Wrappers
+ 以便與 <command>inetd</command> 配合使用。</para>
</listitem>
<listitem>
- <para>pb &os; 5.0. eW]w <application>KerberosIV</application>C</para>
+ <para>如何在 &os; 5.0. 之前的版本上設定 <application>KerberosIV</application>。</para>
</listitem>
<listitem>
- <para>pb &os; 5.0 (t᪩)W]w <application>Kerberos5</application>C</para>
+ <para>如何在 &os; 5.0 (含之後版本)上設定 <application>Kerberos5</application>。</para>
</listitem>
<listitem>
- <para>p]w IPsec HΦb &os;/&windows; Wإ <acronym>VPN</acronym> C</para>
+ <para>如何設定 IPsec 以及在 &os;/&windows; 上建立 <acronym>VPN</acronym> 網路。</para>
</listitem>
<listitem>
- <para>p]wBB <application>OpenSSH</application>AH &os;
- <acronym>SSH</acronym> @覡(implementation)</para>
+ <para>如何設定、運用 <application>OpenSSH</application>,以及 &os; 的
+ <acronym>SSH</acronym> 實作方式(implementation)</para>
</listitem>
<listitem>
- <para>FɮרtΪ <acronym>ACL</acronym>s AHΦpBΡC</para>
+ <para>了解檔案系統的 <acronym>ACL</acronym>s 機制為何,以及如何運用。</para>
</listitem>
<listitem>
- <para>pϥ <application>Portaudit</application>
- u(audit) q Ports Collection w˪nwʡC</para>
+ <para>如何使用 <application>Portaudit</application>
+ 工具來檢驗(audit) 從 Ports Collection 安裝的軟體安全性。</para>
</listitem>
<listitem>
- <para>p󵽥 &os; wi(Security Advisories)AñĨIC</para>
+ <para>如何善用 &os; 安全公告(Security Advisories),並採取相應措施。</para>
</listitem>
<listitem>
- <para>A Process Accounting Φpb &os; WҰʡC</para>
+ <para>瞭解 Process Accounting 機制及如何在 &os; 上啟動。</para>
</listitem>
</itemizedlist>
- <para>b}l\ŪoeAzݭnJ</para>
+ <para>在開始閱讀這章之前,您需要︰</para>
<itemizedlist>
<listitem>
- <para>A &os; Internet 򥻷C</para>
+ <para>瞭解 &os; 及 Internet 的基本概念。</para>
</listitem>
</itemizedlist>
- <para>ѤL`A]Цw譱LDCҦpG
- b <xref linkend="mac"/> ͨ Mandatory Access ControlA Internet Firewalls hb <xref linkend="firewalls"/>C</para>
+ <para>本書中其他章節,也有介紹安全方面的其他話題。例如:
+ 在 <xref linkend="mac"/> 有談到 Mandatory Access Control, Internet Firewalls 則在 <xref linkend="firewalls"/>。</para>
</sect1>
<sect1 xml:id="security-intro">
- <title></title>
+ <title>介紹</title>
- <para>wAtκ޲z̦ӨAOܩlܲ׳̰򥻪nDCѩҦ BSD &unix; multi-user
- tγѤFPͭѨӪ򥻦wAҥHإߡB@B~wAHTOϥΪ̪yiazA
- i]NOtκ޲z̻ݭnV䪺}ȤFCwʨMzҫإߪwIA
- ӳ\hw譱ҶqAh|PH̨ϥιqɪKQۥ٬ޡC@ӻA &unix;
- tΥiPɰ\hƥت{ process AåB䤤\h process ]PɥH Server ݨӹB@C
- ww oNۡA~P̤۳sAòͤʡC{b@A
- wgFHepDƦܤjDʯAH۳oǹqsMbjd򤺤۳s
- Aw]F@ӤqYmDC</para>
+ <para>安全,對系統管理者而言,是至始至終最基本的要求。由於所有的 BSD &unix; multi-user
+ 系統都提供了與生俱來的基本安全,所以建立、維護額外的安全機制,以確保使用者的『可靠』,
+ 可能也就是系統管理員最需要慎思的艱巨任務了。機器的安全性取決於您所建立的安全措施,
+ 而許多安全方面的考量,則會與人們使用電腦時的便利相矛盾。一般來說, &unix;
+ 系統可同時執行許多數目的程式 process ,並且其中許多 process 也同時以 Server 端來運作。
+ ── 這意味著,外部實體機器能夠與它們互相連接,並產生互動。現在的一般桌機,
+ 已經能夠達到以前小型主機甚至大型主機的性能,而隨著這些電腦的網路連接和在更大範圍內互相連接
+ ,安全也成為了一個日益嚴峻的課題。</para>
- <para>w̦n覡AOzLyvz˪hh@ҦC
- ²AӾi઺إߦhhw@AäpߦaʵUwtΪJIIC
+ <para>安全最好的方式,是能夠透過像『洋蔥』那樣的層層防護模式。
+ 簡單講,應該儘可能的建立多層次安全防護,並小心地監視各類針對系統的入侵疑點。
You do not want to
overbuild your security or you will interfere with the detection
side, and detection is one of the single most important aspects of
@@ -129,23 +129,23 @@
<orderedlist>
<listitem>
- <para>AȪ_(DoS)</para>
+ <para>服務阻斷攻擊(DoS)</para>
</listitem>
<listitem>
- <para>ѨLϥΪ̪bC</para>
+ <para>竊取其他使用者的帳號。</para>
</listitem>
<listitem>
- <para>zLU Server WҴѪ Service Ѩ root bC</para>
+ <para>透過各式 Server 上所提供的 Service 來竊取 root 帳號。</para>
</listitem>
<listitem>
- <para>zLϥΪ̱bѨ root bC</para>
+ <para>透過使用者帳號竊取 root 帳號。</para>
</listitem>
<listitem>
- <para>}C</para>
+ <para>開後門。</para>
</listitem>
</orderedlist>
@@ -275,7 +275,7 @@
</sect1>
<sect1 xml:id="securing-freebsd">
- <title>&os; tΦw</title>
+ <title>&os; 的系統安全</title>
<indexterm>
<primary>security</primary>
<secondary>securing &os;</secondary>
@@ -743,12 +743,12 @@
</sect2>
<sect2>
- <title>DoS(Denial of Service)AȪ_</title>
+ <title>DoS(Denial of Service)服務阻斷攻擊</title>
<indexterm><primary>Denial of Service (DoS)</primary></indexterm>
- <para>o@`NЪAȪ_C DoS q`OHʥ]覡iA
- ޴XGSkӪjqyʥ]Ӻɺ귽A
- q`iHzL@Ǥ覡ӭCol`Aϥ̵LkAC</para>
+ <para>這一節將介紹服務阻斷攻擊。 DoS 攻擊通常是以封包的方式進行攻擊,
+ 儘管幾乎沒有任何辦法來阻止大量的偽造封包耗盡網路資源,
+ 但通常可以透過一些方式來降低這類攻擊的損害,使它們無法擊垮伺服器。</para>
<orderedlist>
<listitem>
@@ -756,8 +756,8 @@
</listitem>
<listitem>
- <para>Limiting springboard attacks (ICMP response Aping
- broadcast)</para>
+ <para>Limiting springboard attacks (ICMP response 攻擊,ping
+ broadcast等等)</para>
</listitem>
<listitem>
@@ -1444,52 +1444,52 @@ permit port ttyd0</programlisting>
<indexterm><primary>TCP Wrappers</primary></indexterm>
- <para>CӼ &man.inetd.8; HXG|ťL <acronym>TCP</acronym>
- Wrappers oӪFAܤ֤H৹AѥbҤWnΦbC
- jhƪH|˨ӫO@AMAγ~D`sxAëDUC
- ҦpGY^Ǥ@qrsuӷ̵C <acronym>TCP</acronym>
- noiHoIA٦LhƱCbHUqAڭ̱N~򤶲
- <acronym>TCP</acronym> Wrappers Ѫ\AHΤ@ǹڹBΪҤlC</para>
+ <para>每個熟 &man.inetd.8; 的人幾乎都會聽過 <acronym>TCP</acronym>
+ Wrappers 這個東西,但很少人能完全瞭解它在網路環境上的好用在哪。
+ 大多數的人都會裝防火牆來保護網路,雖然,防火牆用途非常廣泛,但並非萬能。
+ 例如:若打算回傳一段文字給連線來源者等之類的。而 <acronym>TCP</acronym>
+ 軟體卻可以做到這點,還有其他更多事情。在以下段落內,我們將繼續介紹
+ <acronym>TCP</acronym> Wrappers 提供的功能,以及一些實際運用的例子。</para>
- <para><acronym>TCP</acronym> Wrappers iH <command>inetd</command>
- Һ޲zC server daemon A|b <acronym>TCP</acronym> Wrappers
- xUCzL <acronym>TCP</acronym> Wrappers oؤ覡iH䴩su(logging)
- B^Ǥ@qrsuӷ̡BiH daemon usuC
- M䤤\Ψ]iHA <acronym>TCP</acronym> Wrappers
- uOW[F@hO@AٴѤFҿ줣쪺ƱC</para>
+ <para><acronym>TCP</acronym> Wrappers 可以讓 <command>inetd</command>
+ 所管理的每個 server daemon ,都會在 <acronym>TCP</acronym> Wrappers
+ 的掌握之下。透過 <acronym>TCP</acronym> Wrappers 這種方式可以支援連線紀錄(logging)
+ 、回傳一段文字給連線來源者、可以讓 daemon 只接受內部連線等等。
+ 雖然其中部份功能用防火牆也可以做到,但 <acronym>TCP</acronym> Wrappers
+ 不只是增加了一層保護,還提供了防火牆所辦不到的事情。</para>
- <para>MӡA <acronym>TCP</acronym> Wrappers ҴѪoB~w\A
- ӵuq𪺴NסCӵX <acronym>TCP</acronym> Wrappers
- ΨBL[jwIӤ@ֹBΤ~Aoˤ~iHtδѦhhw@C</para>
+ <para>然而, 由 <acronym>TCP</acronym> Wrappers 所提供的這些額外安全功能,
+ 不應該視為優秀防火牆的替代方案。應該結合 <acronym>TCP</acronym> Wrappers
+ 及防火牆、其他加強安全措施來一併運用才對,這樣才可以為系統提供多層安全防護。</para>
- <para>ѩodz]wODnw
- <command>inetd</command> ҴѪAҥHڭ̫ijzѾ\ <link linkend="network-inetd">inetd ]w</link> @`C</para>
+ <para>由於這些設定是主要針對
+ <command>inetd</command> 所提供的,所以我們建議您先參閱 <link linkend="network-inetd">inetd 設定</link> 一節。</para>
<note>
- <para>M &man.inetd.8; ұҰʪ{ëDOu
- ydaemonszA@Aڭ̳٬O|٩IydaemonszA
- Uڭ̤NϥγorӪFC</para>
+ <para>雖然 &man.inetd.8; 所啟動的程式並非全部都是真正的
+ 『daemons』,但一般來講,我們都還是會稱呼為『daemons』,
+ 下面我們仍將使用這字眼來表達。</para>
</note>
<sect2>
<title>Initial Configuration</title>
- <para>Ynb &os; ϥ <acronym>TCP</acronym>
- Wrappers ܡAunTw <command>inetd</command>
- bҰʮɡAb <filename>/etc/rc.conf</filename> [W
- <option>-Ww</option> ѼƧYiAoӳ]wbtιw]NFC
- MٻݭnAק <filename>/etc/hosts.allow</filename> ]wɡA
- &man.syslogd.8; |bt log ɤAƤUӡC</para>
+ <para>若要在 &os; 中使用 <acronym>TCP</acronym>
+ Wrappers 的話,只要確定 <command>inetd</command>
+ 在啟動時,有在 <filename>/etc/rc.conf</filename> 加上
+ <option>-Ww</option> 的參數即可,這個設定在系統預設就有了。
+ 當然還需要適當修改 <filename>/etc/hosts.allow</filename> 設定檔,但
+ &man.syslogd.8; 仍會在系統 log 檔內,紀錄相關資料下來。</para>
<note>
- <para>FreeBSD <acronym>TCP</acronym> Wrappers @覡PL@~tΤW
- <acronym>TCP</acronym> Wrappers Ӥ@ˡAثe FreeBSD wgo󤣥
- <filename>/etc/hosts.deny</filename> AӤ@ߧ
- <filename>/etc/hosts.allow</filename>C</para>
+ <para>FreeBSD 的 <acronym>TCP</acronym> Wrappers 實作方式與其他作業系統上的
+ <acronym>TCP</acronym> Wrappers 不太一樣,目前 FreeBSD 已經廢棄不用
+ <filename>/etc/hosts.deny</filename> ,而一律改用
+ <filename>/etc/hosts.allow</filename>。</para>
</note>
- <para>²檺]w覡OACӹ daemon su
- <filename>/etc/hosts.allow</filename> ӨMwO_\ΩڵC The default
+ <para>最簡單的設定方式是,每個對 daemon 的連線都由
+ <filename>/etc/hosts.allow</filename> 來決定是否允許或拒絕。 The default
configuration in &os; is to allow a connection to every daemon
started with <command>inetd</command>. Changing this will be
discussed only after the basic configuration is covered.</para>
@@ -1518,9 +1518,9 @@ permit port ttyd0</programlisting>
<programlisting># This line is required for POP3 connections:
qpopper : ALL : allow</programlisting>
- <para>[WWo椧AsҰ <command>inetd</command>CsҰʪ覡iH
- &man.kill.1; OAΥy <filename>/etc/rc.d/inetd</filename> <parameter>restart</parameter>
- z ӧC</para>
+ <para>加上上面這行之後,必須重新啟動 <command>inetd</command>。重新啟動的方式可以用
+ &man.kill.1; 指令,或打『 <filename>/etc/rc.d/inetd</filename> <parameter>restart</parameter>
+ 』 來完成。</para>
</sect2>
<sect2>
diff --git a/zh_TW.Big5/books/handbook/serialcomms/Makefile b/zh_TW.UTF-8/books/handbook/serialcomms/Makefile
index 3dbd97ce6d..3dbd97ce6d 100644
--- a/zh_TW.Big5/books/handbook/serialcomms/Makefile
+++ b/zh_TW.UTF-8/books/handbook/serialcomms/Makefile
diff --git a/zh_TW.Big5/books/handbook/serialcomms/chapter.xml b/zh_TW.UTF-8/books/handbook/serialcomms/chapter.xml
index 8a42da92eb..48fd4b3b86 100644
--- a/zh_TW.Big5/books/handbook/serialcomms/chapter.xml
+++ b/zh_TW.UTF-8/books/handbook/serialcomms/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
diff --git a/zh_TW.Big5/books/handbook/txtfiles.ent b/zh_TW.UTF-8/books/handbook/txtfiles.ent
index 21c16416b5..e45198fa0e 100644
--- a/zh_TW.Big5/books/handbook/txtfiles.ent
+++ b/zh_TW.UTF-8/books/handbook/txtfiles.ent
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
Creates entities for each .txt screenshot that is included in the
Handbook.
diff --git a/zh_TW.Big5/books/handbook/users/Makefile b/zh_TW.UTF-8/books/handbook/users/Makefile
index b44bd80628..b44bd80628 100644
--- a/zh_TW.Big5/books/handbook/users/Makefile
+++ b/zh_TW.UTF-8/books/handbook/users/Makefile
diff --git a/zh_TW.Big5/books/handbook/users/chapter.xml b/zh_TW.UTF-8/books/handbook/users/chapter.xml
index 9cfe82ac5f..2cc93f289a 100644
--- a/zh_TW.Big5/books/handbook/users/chapter.xml
+++ b/zh_TW.UTF-8/books/handbook/users/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
@@ -6,7 +6,7 @@
Original revision: 1.58
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="users">
- <info><title>ϥΪ̻P򥻱b޲z</title>
+ <info><title>使用者與基本帳號管理</title>
<authorgroup>
<author><personname><firstname>Neil</firstname><surname>Blakey-Milner</surname></personname><contrib>Contributed by </contrib></author>
</authorgroup>
@@ -16,185 +16,185 @@
<sect1 xml:id="users-synopsis">
- <title>z</title>
+ <title>概述</title>
- <para>FreeBSD \hӨϥΪ̦PɨϥιqC MA
- oäOܦhHPɧbP@xqe
+ <para>FreeBSD 允許多個使用者同時使用電腦。 當然,
+ 這並不是很多人同時坐在同一台電腦前
<footnote>
- <para>Well..Dzs multiple terminalsAoرpڭ̷|b <xref linkend="serialcomms"/> C</para>
- </footnote>AӬOLϥΪ̥iHzLӨϥΦP@xqHL̪u@C
- nϥΨtΪܡACӤHo@ӱbC</para>
+ <para>Well..除非您連接 multiple terminals,這種情況我們會在 <xref linkend="serialcomms"/> 講到。</para>
+ </footnote>,而是其他使用者可以透過網路來使用同一台電腦以完成他們的工作。
+ 要使用系統的話,那麼每個人都得有一個帳號。</para>
- <para>ŪoAzNFѡG</para>
+ <para>讀完這章,您將了解:</para>
<itemizedlist>
<listitem>
- <para>b FreeBSD tΤWPbϧOC</para>
+ <para>在 FreeBSD 系統上不同帳號之間的區別。</para>
</listitem>
<listitem>
- <para>pW[bC</para>
+ <para>如何增加帳號。</para>
</listitem>
<listitem>
- <para>pRbC</para>
+ <para>如何刪除帳號。</para>
</listitem>
<listitem>
- <para>pb򥻸ơAObWAάOϥΪ shell
- C</para>
+ <para>如何更改帳號的基本資料,像是帳號全名,或是使用的 shell
+ 種類。</para>
</listitem>
<listitem>
- <para>pwbBsըӳ]ApG\sO CPU
- 귽h赥C</para>
+ <para>如何針對帳號、群組來設限,比如:允許存取記憶體或 CPU
+ 資源多寡等。</para>
</listitem>
<listitem>
- <para>pBθsաAӧea޲zbC</para>
+ <para>如何運用群組,來更容易地管理帳號。</para>
</listitem>
</itemizedlist>
- <para>b}l\ŪoeAzݭnG</para>
+ <para>在開始閱讀這章之前,您需要:</para>
<itemizedlist>
<listitem>
- <para>A &unix; FreeBSD (<xref linkend="basics"/>)¦C</para>
+ <para>瞭解 &unix; 及 FreeBSD (<xref linkend="basics"/>)的基礎概念。</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="users-introduction">
- <title></title>
+ <title>介紹</title>
- <para>tΪҦsOgѱbӶiAөҦ{ process
- OѨϥΪ̨ӶiAҥHϥΪ̤αb޲zADO FreeBSD
- tΤWiίʪIC</para>
+ <para>系統的所有存取是經由帳號來進行,而所有的程式 process
+ 是由使用者來進行,所以使用者及帳號的管理,乃是 FreeBSD
+ 系統上不可或缺的重點。</para>
- <para>Ҧ FreeBSD tΤbҥ]tUCTΨӿѨC</para>
+ <para>所有於 FreeBSD 系統中的帳號皆包含下列相關資訊用來辨識身份。</para>
<variablelist>
<varlistentry>
- <term>ϥΪ̦W</term>
+ <term>使用者名稱</term>
<listitem>
- <para>ϥΪ̦W٭nJb <prompt>login:</prompt> ܥX{C
- ϥΪ̦W٥OW@LGA
- ঳ƪϥΪ̦W١C
- ܩpإߦĨϥΪ̦W٪WhAаѾ\ &man.passwd.5; A
- q`ϥΪ̦W٬OHKӥHpgrҲզC</para>
+ <para>使用者名稱要輸入在 <prompt>login:</prompt> 提示出現後。
+ 使用者名稱必須是獨一無二,
+ 不能有重複的使用者名稱。
+ 至於如何建立有效使用者名稱的規則,請參閱 &man.passwd.5; 說明,
+ 通常使用者名稱是以八個以內的小寫字母所組成。</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>KX</term>
+ <term>密碼</term>
<listitem>
- <para>Cӱbi֦@ձKXC KX]iH]A
- pNݱKXYinJtΡAq`oëDA
- Cӱb]w@ձKXC</para>
+ <para>每個帳號都可擁有一組密碼。 密碼也可以不設,
+ 如此就不需密碼即可登入系統,但通常這並非妙策,
+ 每個帳號都應設定一組密碼。</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>ϥΪ̥N (User ID, UID)</term>
+ <term>使用者代號 (User ID, UID)</term>
<listitem>
- <para>UID OtΥΨӿѨϥΪ̪ƦrAq`dOq 0 65535 <footnote xml:id="users-largeuidgid">
- <para>UID/GID ̤jiϥΦ 4294967295Ao˪ ID
- i|w]d򪺳nyYDC</para>
- </footnote>C FreeBSD Oϥ UID ӿѨϥΪ &mdash;
- FreeBSD bwϥΪ̪OeA|ϥΪ̦Wഫ
- UIDC ]NOApiHƭӤPϥΪ̦W١A
- OϥΦP@ UIDA FreeBSD ӻAoDZbuNP@ϥΪ̡C
- LAڤWݭno˰iʤjC</para>
+ <para>UID 是系統用來辨識使用者的數字,通常範圍是從 0 到 65535 <footnote xml:id="users-largeuidgid">
+ <para>UID/GID 最大可使用至 4294967295,但這樣的 ID
+ 可能會對已假設範圍的軟體造成嚴重問題。</para>
+ </footnote>。 FreeBSD 內部是使用 UID 來辨識使用者 &mdash;
+ FreeBSD 在執行任何指定使用者的指令之前,都會先把使用者名稱轉換為
+ UID。 也就是說,比如可以有數個不同的使用者名稱,
+ 但是都使用同一個 UID,對 FreeBSD 來說,這些帳號都只代表同一使用者。
+ 不過,實際上需要這樣做的可能性不大。</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>sեN (Group ID, GID)</term>
+ <term>群組代號 (Group ID, GID)</term>
<listitem>
- <para>GID OtΥΨӿѨϥΪ̩ݸsժƦrAq`dOq 0 65535<footnoteref linkend="users-largeuidgid"/>
- C θsըӱ귽sAiĴ֤@dz]wɪjpC
- ~AϥΪ٥iHPݩhӤPsաC</para>
+ <para>GID 是系統用來辨識使用者所屬群組的數字,通常範圍是從 0 到 65535<footnoteref linkend="users-largeuidgid"/>
+ 。 用群組來控制資源存取,可有效減少一些設定檔的大小。
+ 此外,使用者還可以同時屬於多個不同的群組。</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>nJ(Login classes)</term>
+ <term>登入分類(Login classes)</term>
<listitem>
<para>
- nJOsժA
- ѤFPϥΪ̧uʪC</para>
+ 登入分類是群組的延伸機制,
+ 提供了不同的使用者更彈性的。</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>KXܧ</term>
+ <term>密碼變更期限</term>
<listitem>
- <para>FreeBSD w]änDϥΪ̶gʪKXCziHjYǩ
- ϥΪ̦bwLᥲKXC</para>
+ <para>FreeBSD 預設並不要求使用者週期性的更改密碼。您可以強制某些或
+ 全部的使用者在指定的期間過後必須更改密碼。</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>b</term>
+ <term>帳號期限</term>
<listitem>
- <para>FreeBSD bSw]ApGzwDbϥδA
- ҦpAǮդѾǥͨϥΪbAibإ߱bɫwbC
- bL|LknJtΡAӱbؿɮ׫h|OdC</para>
+ <para>FreeBSD 的帳號沒有預設的期限,如果您已知道帳號的使用期限,
+ 例如,學校中提供學生使用的帳號,可在建立帳號時指定帳號的期限。
+ 當帳號過期後會無法登入系統,但該帳號的目錄及檔案則會保留。</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>ϥΪ̥W</term>
+ <term>使用者全名</term>
<listitem>
- <para>FreeBSD bϥΨϥΪ̦W٥ΨӿѡAϥΪ̦W٨ä@wN
- uϥΪ̪mWCbһݪTC</para>
+ <para>FreeBSD 的帳號使用使用者名稱用來辨識,但使用者名稱並不一定代表
+ 真實使用者的姓名。為帳號所需的相關資訊。</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>aؿ</term>
+ <term>家目錄</term>
<listitem>
- <para>aؿϥΪ̵nJtήɪҦbؿ|C
- q`|NҦϥΪ̪aؿm
- <filename>/home/ϥΪ̦W</filename>
- <filename>/usr/home/ϥΪ̦W</filename>C
- ϥΪ̥iHNӤHƩmaؿAåiHbؿU
- إ߷sؿ</para>
+ <para>家目錄為使用者登入系統時的所在目錄的完整路徑。
+ 通常會將所有使用者的家目錄放置於
+ <filename>/home/使用者名稱</filename>
+ 或 <filename>/usr/home/使用者名稱</filename>。
+ 使用者可以將其個人的資料放置於其家目錄之中,並可以在此目錄底下
+ 建立新的目錄</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>ϥΪ Shell</term>
+ <term>使用者 Shell</term>
<listitem>
- <para>Shell ѹw]ϥΪ̻PtΤʡC
- Shell ֦ƺؤP, iѶiϥΪ̨̨ϥβߺDܡC</para>
+ <para>Shell 提供預設的環境讓使用者與系統互動。
+ Shell 擁有數種不同的種類, 可供進階使用者依使用習慣選擇。</para>
</listitem>
</varlistentry>
</variablelist>
<!--
- Superuser: tκ޲ẕb
- System users: tαb
- user accounts: ϥΪ̱b
+ Superuser: 系統管理者帳號
+ System users: 系統帳號
+ user accounts: 使用者帳號
-->
- <para>bDnUCT: <link linkend="users-superuser">tκ޲ẕb</link>, <link linkend="users-system">tαb</link>A <link linkend="users-user">ϥΪ̱b</link>C tκ޲ẕbb
- q` <systemitem class="username">root</systemitem>A֦̤jvӺ޲ztΡC
- tαbΨӰAAȡC̫AϥΪ̱bѯuϥΪ̨ϥΡA
- inJBŪHC</para>
+ <para>帳號主要分為下列三類: <link linkend="users-superuser">系統管理者帳號</link>, <link linkend="users-system">系統帳號</link>,及 <link linkend="users-user">使用者帳號</link>。 系統管理者帳號的帳號
+ 通常為 <systemitem class="username">root</systemitem>,擁有最大的權限來管理系統。
+ 系統帳號用來執行伺服器服務。最後,使用者帳號供真正的使用者使用,
+ 可登入、讀信等等。</para>
</sect1>
<sect1 xml:id="users-superuser">
- <title>tκ޲ẕb</title>
+ <title>系統管理者帳號</title>
<indexterm>
<primary>accounts</primary>
@@ -227,7 +227,7 @@
</sect1>
<sect1 xml:id="users-system">
- <title>tαb</title>
+ <title>系統帳號</title>
<indexterm>
<primary>accounts</primary>
@@ -263,7 +263,7 @@
</sect1>
<sect1 xml:id="users-user">
- <title>ϥΪ̱b</title>
+ <title>使用者帳號</title>
<indexterm>
<primary>accounts</primary>
@@ -286,15 +286,15 @@
</sect1>
<sect1 xml:id="users-modifying">
- <title>b</title>
+ <title>更改帳號</title>
<indexterm>
<primary>accounts</primary>
<secondary>modifying</secondary>
</indexterm>
- <para>b &unix; ҤѤFUPO޲zϥΪ̱bA
- HU`ϥΪOKnΧԲӪϥνdҡC
+ <para>在 &unix; 的環境之中提供了各式不同的指令管理使用者帳號,
+ 以下為較常使用的指令摘要及更詳細的使用範例。
</para>
<informaltable frame="none" pgwide="1">
@@ -304,30 +304,30 @@
<thead>
<row>
- <entry>O</entry>
- <entry>Kn</entry>
+ <entry>指令</entry>
+ <entry>摘要</entry>
</row>
</thead>
<tbody>
<row>
<entry>&man.adduser.8;</entry>
- <entry>sWϥΪ̡C</entry>
+ <entry>新增使用者。</entry>
</row>
<row>
<entry>&man.rmuser.8;</entry>
- <entry>ϥΪ̡C</entry>
+ <entry>移除使用者。</entry>
</row>
<row>
<entry>&man.chpass.1;</entry>
- <entry>ϥΪ̸ơC</entry>
+ <entry>更改使用者資料。</entry>
</row>
<row>
<entry>&man.passwd.1;</entry>
- <entry>ϥΪ̱KXC</entry>
+ <entry>更改使用者密碼。</entry>
</row>
<row>
<entry>&man.pw.8;</entry>
- <entry>קϥΪ̪UظơC</entry>
+ <entry>修改使用者的各種資料。</entry>
</row>
</tbody>
</tgroup>
@@ -347,15 +347,15 @@
<primary><filename>/usr/share/skel</filename></primary>
</indexterm>
<indexterm><primary>skeleton directory</primary></indexterm>
- <para>&man.adduser.8; O@sWϥΪ̪²{C
- |إ߸ƩtΪ <filename>passwd</filename> P
+ <para>&man.adduser.8; 是一支新增使用者的簡單程式。
+ 它會建立資料於系統的 <filename>passwd</filename> 與
<filename>group</filename>
- ɮפC Pɤ]|إߨϥΪ̪aؿAq <filename>
- /usr/share/skel</filename> ƻsw]պA(<quote>dotfiles</quote>)A
- åiHܩʪlqsϥΪwTC</para>
+ 檔案之中。 同時也會建立使用者的家目錄,從 <filename>
+ /usr/share/skel</filename> 複製預設的組態檔(<quote>dotfiles</quote>),
+ 並可以選擇性的郵件通知新使用者歡迎訊息。</para>
<example>
- <title>b &os; sWϥΪ</title>
+ <title>在 &os; 內新增使用者</title>
<screen>&prompt.root; <userinput>adduser</userinput>
Username: <userinput>jru</userinput>
@@ -389,8 +389,8 @@ Goodbye!
</example>
<note>
- <para>zJKXä|^ùAҥH|HP
- C нTwzҿJKXL~C</para>
+ <para>您輸入的密碼並不會回應到螢幕,所以不會以星號顯示
+ 。 請確定您所輸入的密碼無誤。</para>
</note>
</sect2>
@@ -403,50 +403,50 @@ Goodbye!
<secondary>removing</secondary>
</indexterm>
- <para>ziHϥ &man.rmuser.8; ӱNϥΪ̱qtΤ
- &man.rmuser.8; |HUʧ@:</para>
+ <para>您可以使用 &man.rmuser.8; 來將使用者從系統之中完全移除
+ &man.rmuser.8; 會執行以下動作:</para>
<procedure>
<step>
- <para>ӨϥΪ̪ &man.crontab.1; (pGsb)C</para>
+ <para>移除該使用者的 &man.crontab.1; 資料 (如果存在)。</para>
</step>
<step>
- <para>ҦݩӨϥΪ̪ &man.at.1; u@C</para>
+ <para>移除所有屬於該使用者的 &man.at.1; 工作。</para>
</step>
<step>
- <para>ҦӨϥΪ֦̾{ǡC</para>
+ <para>中止所有該使用者擁有的程序。</para>
</step>
<step>
- <para>tΥKXɤӨϥΪ̪ơC</para>
+ <para>移除系統本機密碼檔中該使用者的資料。</para>
</step>
<step>
- <para>ӨϥΪ̪aؿ (pGӨϥΪ̩Ҧ)C</para>
+ <para>移除該使用者的家目錄 (如果為該使用者所有)。</para>
</step>
<step>
- <para> <filename>/var/mail</filename> ݩӨϥΪ̪lC</para>
+ <para>移除 <filename>/var/mail</filename> 中屬於該使用者的郵件。</para>
</step>
<step>
- <para>ȦsŶ (p: <filename>/tmp</filename>) ҦݩӨϥΪ̪ɮסC</para>
+ <para>移除暫存空間 (如: <filename>/tmp</filename>) 中所有屬於該使用者的檔案。</para>
</step>
<step>
- <para>̫Ab <filename>/etc/group</filename> ɤӨϥΪ̱bC
+ <para>最後,在 <filename>/etc/group</filename> 檔內移除該使用者帳號。
</para>
<note>
- <para>YӸsդwLAΪ̬OsզWٻPӨϥΪ̦W٬ۦPɡA
- hsձN|QF ާ@|P &man.adduser.8;
- ҫإߪbsլ۹C</para>
+ <para>若該群組已無成員,或者是群組名稱與該使用者名稱相同時,
+ 則群組將會被移除; 此操作會與 &man.adduser.8;
+ 所建立的帳號群組相對應。</para>
</note>
</step>
</procedure>
- <para>&man.rmuser.8; Lktκ޲ẕbbA
- ]oYNY}a欰C</para>
+ <para>&man.rmuser.8; 無法移除系統管理者帳號帳號,
+ 因為這即代表嚴重的破壞行為。</para>
- <para>FT{zާ@Aw]ĤʼҦC</para>
+ <para>為了確認您的操作,預設採互動模式。</para>
<example>
- <title><command>rmuser</command> b</title>
+ <title><command>rmuser</command> 帳號移除</title>
<screen>&prompt.root; <userinput>rmuser jru</userinput>
Matching password entry:
@@ -467,19 +467,19 @@ Removing files belonging to jru from /var/tmp/vi.recover: done.
<title><command>chpass</command></title>
<indexterm><primary><command>chpass</command></primary></indexterm>
- <para>&man.chpass.1; iϥΪ̸Ʀp: KXBShellέӤHTC</para>
+ <para>&man.chpass.1; 可更改使用者資料如: 密碼、Shell及個人資訊。</para>
- <para>Ȩtκ޲z̧Ytκ޲ẕbiQ &man.chpass.1; LϥΪ̪TαKX</para>
+ <para>僅系統管理者即系統管理者帳號可利用 &man.chpass.1; 更改其他使用者的資訊及密碼</para>
- <para>FwϥΪ̦W١A[ѼƮɡA&man.chpass.1; |NϥΪ̸Tܩs边C
- éϥΪ}s边ɧsϥΪ̸TC</para>
+ <para>除了指定使用者名稱,當不加參數時,&man.chpass.1; 會將使用者資訊顯示於編輯器當中。
+ 並於使用者離開編輯器時更新使用者資訊。</para>
<note>
- <para>YzëDtκ޲ẕbAb}s边e|߰ݱzKXC</para>
+ <para>若您並非系統管理者帳號,在離開編輯器前會詢問您的密碼。</para>
</note>
<example>
- <title>tκ޲ẕb <command>chpass</command></title>
+ <title>系統管理者帳號 <command>chpass</command></title>
<screen>#Changing user database information for jru.
Login: jru
@@ -498,10 +498,10 @@ Home Phone:
Other information:</screen>
</example>
- <para>@ϥΪ̶ȥiۤvֳTC</para>
+ <para>一般使用者僅可更改自己的少部份資訊。</para>
<example>
- <title>@ϥΪ <command>chpass</command></title>
+ <title>一般使用者 <command>chpass</command></title>
<screen>#Changing user database information for jru.
Shell: /usr/local/bin/zsh
@@ -513,10 +513,10 @@ Other information:</screen>
</example>
<note>
- <para>&man.chfn.1; P &man.chsh.1; Y &man.chpass.1;A]P
- &man.ypchpass.1;B&man.ypchfn.1; P &man.ypchsh.1;C
- NIS 䴩O۰ʪAҥHLݦbOe[W <literal>yp</literal>C
- Yo|xZzAФߡA<xref linkend="network-servers"/> N\ NIS C</para>
+ <para>&man.chfn.1; 與 &man.chsh.1; 即為 &man.chpass.1;,也同
+ &man.ypchpass.1;、&man.ypchfn.1; 與 &man.ypchsh.1;。
+ NIS 支援是自動的,所以無需在指令前加上 <literal>yp</literal>。
+ 若這會困擾您,請不必擔心,<xref linkend="network-servers"/> 將函蓋 NIS 的部份的說明。</para>
</note>
</sect2>
<sect2 xml:id="users-passwd">
@@ -527,15 +527,15 @@ Other information:</screen>
<primary>accounts</primary>
<secondary>changing password</secondary>
</indexterm>
- <para>&man.passwd.1; OKX`Ϊ覡AFWź޲z̥iLϥΪ̪KX~
- ϥΪ̶ȯۤvKXC</para>
+ <para>&man.passwd.1; 是更改密碼常用的方式,除了超級管理者可更改其他使用者的密碼外
+ 使用者僅能更改自己的密碼。</para>
<note>
- <para>FקKN~ΥgPNקAbsKXeݿJKXC</para>
+ <para>為了避免意外或未經同意的修改,在更新密碼前需輸入原密碼。</para>
</note>
<example>
- <title>zKX</title>
+ <title>更改您的密碼</title>
<screen>&prompt.user; <userinput>passwd</userinput>
Changing local password for jru.
@@ -547,7 +547,7 @@ passwd: done</screen>
</example>
<example>
- <title>Htκ޲ẕbhLϥΪ̪KX</title>
+ <title>以系統管理者帳號去更改其他使用者的密碼</title>
<screen>&prompt.root; <userinput>passwd jru</userinput>
Changing local password for jru.
@@ -558,8 +558,8 @@ passwd: done</screen>
</example>
<note>
- <para>&man.chpass.1;B
- &man.yppasswd.1; Y &man.passwd.1;AҤ䴩 NISC</para>
+ <para>&man.chpass.1;、
+ &man.yppasswd.1; 即為 &man.passwd.1;,皆支援 NIS。</para>
</note>
</sect2>
@@ -568,9 +568,9 @@ passwd: done</screen>
<title><command>pw</command></title>
<indexterm><primary><command>pw</command></primary></indexterm>
- <para>&man.pw.8; ΨӫإߡBBקάdߨϥΪ̤θsաC
- \YtΨϥΪ̤θsɮתeݡC&man.pw.8; ֦jqOѼ
- AXϥΩ shell script Asӻ|OLO\hC
+ <para>&man.pw.8; 用來建立、移除、修改及查詢使用者及群組。
+ 其功能即為系統使用者及群組檔案的前端。&man.pw.8; 擁有大量的指令參數
+ 較適合使用於 shell script 中,對新手來說會此指令較其他指令複雜許多。
</para>
</sect2>
@@ -578,7 +578,7 @@ passwd: done</screen>
</sect1>
<sect1 xml:id="users-limiting">
- <title>ϥΪ̸귽</title>
+ <title>使用者資源限制</title>
<indexterm><primary>limiting users</primary></indexterm>
<indexterm>
@@ -586,13 +586,13 @@ passwd: done</screen>
<secondary>limiting</secondary>
</indexterm>
<!--
- login class: nJ
- login capability: nJeq
+ login class: 登入分級
+ login capability: 登入容量
-->
<para>
- Yz֦\hϥΪ̡AU|QӦp󭭨ϥΪ귽C
- FreeBSD Ѻ޲z̳\hkӭtΪ귽CӤHϥΡC
- oǭӳ: ϺЭBAHΨL귽C
+ 若您擁有許多使用者,接下會想到該如何限制使用的資源。
+ FreeBSD 提供管理者許多方法來限制系統的資源給每個人使用。
+ 這些限制分為兩個部份: 磁碟限額,以及其他資源限制。
</para>
<indexterm><primary>quotas</primary></indexterm>
@@ -601,46 +601,46 @@ passwd: done</screen>
<secondary>quotas</secondary>
</indexterm>
<indexterm><primary>disk quotas</primary></indexterm>
- <para>ϺЭBiHϥΪ̪ϺХζqA
- ѤF@ؤkiHֳtˬdípζq
- ӤݨCspA
- ϺЭBN <xref linkend="quotas"/> |QסC</para>
+ <para>磁碟限額可以限制使用者的磁碟用量,
+ 它提供了一種方法可以快速的檢查並計算用量
+ 而不需每次重新計算,
+ 關於磁碟限額將於 <xref linkend="quotas"/> 會討論。</para>
- <para>L귽]tF CPUBOBHΨLCӨϥΪ̥iϥ
- 귽Aoǭiϥ Login class өwqébQסC</para>
+ <para>其他資源限制包含了 CPU、記憶體、以及其他每個使用者可使用
+ 的資源做限制,這些限制可使用 Login class 來定義並於在本章討論。</para>
<indexterm>
<primary><filename>/etc/login.conf</filename></primary>
</indexterm>
- <para>Login class wq
- <filename>/etc/login.conf</filename>C TyN|b`
- ԲӪyz|b &man.login.conf.5; 󤤡C CϥΪ̹w]Q
- t@ Login class (w] <literal>default</literal>)A
- ӨC Login class 귽(Login capabilitiy)C
- Login capabilitiy H <literal>W=</literal> A
- <replaceable>W</replaceable> N귽A <replaceable></replaceable>
- NrAW٪ѼơC ]w Login class Login capability ۷²AæP˦b
- &man.login.conf.5; ԲӻC</para>
+ <para>Login class 定義於
+ <filename>/etc/login.conf</filename>。 明確語意不會在本節說明
+ 但詳細的描述會在 &man.login.conf.5; 文件中。 每使用者預設被
+ 分配到一個 Login class 中 (預設為 <literal>default</literal>),
+ 而每個 Login class 都有其資源的限制(Login capabilitiy)。
+ Login capabilitiy 以 <literal>名稱=值</literal> 成對,
+ <replaceable>名稱</replaceable> 代表資源的種類,而 <replaceable>值</replaceable>
+ 為任意的字串,為對應名稱的參數。 設定 Login class 及 Login capability 相當簡單,並同樣在
+ &man.login.conf.5; 中詳細說明。</para>
<note>
- <para>tΤ|Ū <filename>/etc/login.conf</filename> պA
- ӬOŪѬd߸֪ <filename>/etc/login.conf.db</filename> ƮwɡC
- nq <filename>/etc/login.conf</filename> <filename>/etc/login.conf.db</filename>
- ݭnHUO:</para>
+ <para>系統不會直接讀取 <filename>/etc/login.conf</filename> 的組態
+ 而是讀取提供查詢較快的 <filename>/etc/login.conf.db</filename> 資料庫檔。
+ 要從 <filename>/etc/login.conf</filename> 產生 <filename>/etc/login.conf.db</filename>
+ 需要執行以下指令:</para>
<screen>&prompt.root; <userinput>cap_mkdb /etc/login.conf</userinput></screen>
</note>
- <para>귽@몺 Login capability IPC
- Ĥ@ACحnʭεwʭC
- nʭiѨϥΪ̩ε{վAపwʭC
- ̭iQϥΪ̭CALkAC
- ĤGAhƸ귽OwCӨϥΪ̪ӧO{AӤOϥΪ̪Ҧ{C
- `NAoǮtOѫw{ޡAëD@ Login capability [c
- (ҦpAoǤO <emphasis>u</emphasis> nJeqS)C</para>
+ <para>資源限制於一般的 Login capability 有兩點不同。
+ 第一,每種限制分為軟性限制及硬性限制。
+ 軟性限制可由使用者或應用程式調整,但不能高於硬性限制。
+ 後者限制可被使用者降低,但無法再提高。
+ 第二,多數資源限制是針對每個使用者的個別行程限制,而不是使用者的所有行程。
+ 注意,這些差異是由指定的限制程式托管,並非實作於 Login capability 的架構
+ (例如,這些不是 <emphasis>真正</emphasis> 登入容量的特例)。</para>
- <para>t~AFקK·СAHUXӱ`Ϊ귽
- (ѤUΨL Login capability ib &man.login.conf.5; 컡)C</para>
+ <para>另外,為了避免麻煩,以下為幾個常用的資源限制
+ (剩下及其他的 Login capability 可在 &man.login.conf.5; 中找到說明)。</para>
<variablelist>
<varlistentry>
@@ -855,7 +855,7 @@ passwd: done</screen>
</sect1>
<sect1 xml:id="users-groups">
- <title>s</title>
+ <title>群組</title>
<indexterm><primary>groups</primary></indexterm>
<indexterm>
diff --git a/zh_TW.Big5/books/handbook/vinum/Makefile b/zh_TW.UTF-8/books/handbook/vinum/Makefile
index b970524581..b970524581 100644
--- a/zh_TW.Big5/books/handbook/vinum/Makefile
+++ b/zh_TW.UTF-8/books/handbook/vinum/Makefile
diff --git a/zh_TW.Big5/books/handbook/vinum/chapter.xml b/zh_TW.UTF-8/books/handbook/vinum/chapter.xml
index 4d4e8cc7cd..534d9b67b0 100644
--- a/zh_TW.Big5/books/handbook/vinum/chapter.xml
+++ b/zh_TW.UTF-8/books/handbook/vinum/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The Vinum Volume Manager
By Greg Lehey (grog at lemis dot com)
diff --git a/zh_TW.Big5/books/handbook/virtualization/Makefile b/zh_TW.UTF-8/books/handbook/virtualization/Makefile
index 7f5a1fd58b..7f5a1fd58b 100644
--- a/zh_TW.Big5/books/handbook/virtualization/Makefile
+++ b/zh_TW.UTF-8/books/handbook/virtualization/Makefile
diff --git a/zh_TW.Big5/books/handbook/virtualization/chapter.xml b/zh_TW.UTF-8/books/handbook/virtualization/chapter.xml
index 9e28f2edbe..1eea7a6c59 100644
--- a/zh_TW.Big5/books/handbook/virtualization/chapter.xml
+++ b/zh_TW.UTF-8/books/handbook/virtualization/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
The FreeBSD Traditional Chinese Documentation Project
@@ -7,7 +7,7 @@
Original revision: 1.16
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="virtualization">
- <info><title>Virtualization()</title>
+ <info><title>Virtualization(虛擬機器)</title>
<authorgroup>
<author><personname><firstname>Murray</firstname><surname>Stokely</surname></personname><contrib>Contributed by </contrib></author>
</authorgroup>
@@ -19,52 +19,52 @@
<sect1 xml:id="virtualization-synopsis">
<title>Synopsis</title>
- <para>niHP@xoHPɰhا@~tΡC b PC WA
- q`otγObJD(host)W˵nAӶ]@ guest OS
- C</para>
+ <para>虛擬機器軟體可以讓同一台機器得以同時執行多種作業系統。 在 PC 上,
+ 通常這類系統都是在宿主(host)機器上裝虛擬機器軟體,來跑一堆 guest OS
+ 。</para>
- <para>ŪoAzNFѡJ</para>
+ <para>讀完這章,您將了解︰</para>
<itemizedlist>
<listitem>
- <para>host OS H guest OS ϧOC</para>
+ <para>host OS 以及 guest OS 的區別。</para>
</listitem>
<listitem>
- <para>pbf &intel; CPU &apple; &macintosh; qWw FreeBSD
- C</para>
+ <para>如何在搭載 &intel; CPU 的 &apple; &macintosh; 電腦上安裝 FreeBSD
+ 。</para>
</listitem>
<listitem>
- <para>pb Linux WH <application>&xen;</application> Ӧw
- FreeBSDC</para>
+ <para>如何在 Linux 上以 <application>&xen;</application> 來安裝
+ FreeBSD。</para>
</listitem>
<listitem>
- <para>pb &microsoft.windows; WH <application>Virtual PC</application>
- w FreeBSDC</para>
+ <para>如何在 &microsoft.windows; 上以 <application>Virtual PC</application>
+ 安裝 FreeBSD。</para>
</listitem>
<listitem>
- <para>pb FreeBSD tΧ@ʯծաAHǫήįC</para>
+ <para>如何在虛擬機器對 FreeBSD 系統作性能調校,以取得最佳效能。</para>
</listitem>
</itemizedlist>
- <para>b}l\ŪoeAzݭnJ</para>
+ <para>在開始閱讀這章之前,您需要︰</para>
<itemizedlist>
<listitem>
- <para>A &unix; FreeBSD 򥻷
- (<xref linkend="basics"/>)C</para>
+ <para>瞭解 &unix; 及 FreeBSD 相關基本概念
+ (<xref linkend="basics"/>)。</para>
</listitem>
- <listitem><para>Dpw FreeBSD(<xref linkend="install"/>)C</para></listitem>
+ <listitem><para>知道如何安裝 FreeBSD(<xref linkend="install"/>)。</para></listitem>
- <listitem><para>Dp]w(<xref linkend="advanced-networking"/>)C</para></listitem>
+ <listitem><para>知道如何設定網路(<xref linkend="advanced-networking"/>)。</para></listitem>
- <listitem><para>DpH ports/packages Ӧwε{
- (<xref linkend="ports"/>)C</para></listitem>
+ <listitem><para>知道如何以 ports/packages 來安裝應用程式
+ (<xref linkend="ports"/>)。</para></listitem>
</itemizedlist>
</sect1>
@@ -72,24 +72,24 @@
<sect1 xml:id="virtualization-guest">
- <title>w FreeBSD Guest OS</title>
+ <title>安裝 FreeBSD 為 Guest OS</title>
<sect2 xml:id="virtualization-guest-parallels">
- <title>MacOS W Parallels</title>
+ <title>MacOS 上的 Parallels</title>
- <para>&mac; <application>Parallels Desktop</application>
- DOiΩft &intel; CPU H &macos; 10.4.6 HW &apple; &mac;
- qӷ~nC FreeBSD O䦳䴩 guest OS @C b
- &macos; X ˦n <application>Parallels</application> A
- wұw˪ guest OS ӧ@]wC</para>
+ <para>&mac; 版的 <application>Parallels Desktop</application>
+ 乃是可用於搭配 &intel; CPU 以及 &macos; 10.4.6 以上的 &apple; &mac;
+ 電腦的商業軟體。 FreeBSD 是其有完整支援的 guest OS 之一。 在
+ &macos; X 裝好 <application>Parallels</application> 後,
+ 必須針對所欲安裝的 guest OS 來作相關的虛擬機器設定。</para>
<sect3 xml:id="virtualization-guest-parallels-install">
- <title>b Parallels/&macos; X Ww FreeBSD</title>
+ <title>在 Parallels/&macos; X 上安裝 FreeBSD</title>
- <para>b &macos; X/<application>Parallels</application> Ww FreeBSD
- Ĥ@BOsWC pUҥܡAbܵбN
- <guimenu>Guest OS Type</guimenu> Ŀאּ
- <guimenuitem>FreeBSD</guimenuitem>G</para>
+ <para>在 &macos; X/<application>Parallels</application> 上安裝 FreeBSD
+ 的第一步是新增虛擬機器。 如下所示,在提示視窗內請將
+ <guimenu>Guest OS Type</guimenu> 勾選為
+ <guimenuitem>FreeBSD</guimenuitem>:</para>
<mediaobject>
<imageobject>
@@ -97,9 +97,9 @@
</imageobject>
</mediaobject>
- <para>è̾ڦۨݨDӳWwЮeqO骺tC jhƦb
- <application>Parallels</application> ϥΪpӨAj 4GB
- wХH 512MB RAM NΤFG</para>
+ <para>並依據自身需求來規劃硬碟容量跟記憶體的分配。 對大多數在
+ <application>Parallels</application> 使用的情況而言,大約 4GB
+ 硬碟以及 512MB RAM 就夠用了:</para>
<mediaobject>
<imageobject>
@@ -125,7 +125,7 @@
</imageobject>
</mediaobject>
- <para>UӡAܺHκdG</para>
+ <para>接下來,選擇網路種類以及網路卡:</para>
<mediaobject>
<imageobject>
@@ -139,7 +139,7 @@
</imageobject>
</mediaobject>
- <para>̫Axs]wɴN]wFG</para>
+ <para>最後,儲存設定檔就完成設定了:</para>
<mediaobject>
<imageobject>
@@ -153,13 +153,13 @@
</imageobject>
</mediaobject>
- <para>b FreeBSD sWANiH~Hw FreeBSDC
- wˤ譱An@kOϥΩx誺 FreeBSD ЩΪ̱qx FTP
- U ISO image ɡC Yz &mac; wg ISO ɡA
- Ϊ &mac; оwˤANiHb FreeBSD
- <application>Parallels</application> kUUФϥܡC
- ۷|X{@ӵAiHо]w ISO ɡA
- Ϊ̬OоC</para>
+ <para>在 FreeBSD 虛擬機器新增後,就可以繼續以其安裝 FreeBSD。
+ 安裝方面,比較好的作法是使用官方的 FreeBSD 光碟或者從官方 FTP
+ 站下載 ISO image 檔。 若您的 &mac; 本機已經有該 ISO 檔,
+ 或者 &mac; 的光碟機內有放安裝片,那麼就可以在 FreeBSD 的
+ <application>Parallels</application> 視窗右下角按下光碟片圖示。
+ 接著會出現一個視窗,可以把虛擬機器內的光碟機設定到該 ISO 檔,
+ 或者是實體光碟機。</para>
<mediaobject>
<imageobject>
@@ -167,9 +167,9 @@
</imageobject>
</mediaobject>
- <para>]nФӷANiHU}ϥܥH} FreeBSD
- C <application>Parallels</application> |HS BIOS
- }AûPq BIOS @˷|ˬdO_оC</para>
+ <para>設好光碟片來源之後,就可以按下重開機圖示以重開 FreeBSD
+ 虛擬機器。 <application>Parallels</application> 會以特殊 BIOS
+ 開機,並與普通的 BIOS 一樣會先檢查是否有光碟機。</para>
<mediaobject>
<imageobject>
@@ -177,9 +177,9 @@
</imageobject>
</mediaobject>
- <para>ɡAN| FreeBSD wˤAö}lb <xref linkend="install"/> ҤШ쪺
- <application>sysinstall</application> w˹L{C oɭԤ]iK
- X11Ani]wC</para>
+ <para>此時,它就會找到 FreeBSD 安裝片,並開始在 <xref linkend="install"/> 內所介紹到的
+ <application>sysinstall</application> 安裝過程。 這時候也可順便裝
+ X11,但先不要進行相關設定。</para>
<mediaobject>
<imageobject>
@@ -187,7 +187,7 @@
</imageobject>
</mediaobject>
- <para>w˹L{ANiH}˪ FreeBSD C</para>
+ <para>完成安裝過程之後,就可以重開剛裝的 FreeBSD 虛擬機器。</para>
<mediaobject>
<imageobject>
@@ -197,45 +197,45 @@
</sect3>
<sect3 xml:id="virtualization-guest-parallels-configure">
- <title>b &macos; X/Parallels W]w FreeBSD</title>
+ <title>在 &macos; X/Parallels 上設定 FreeBSD</title>
- <para> FreeBSD \˨ &macos; X
- <application>Parallels</application> Aٻݭn@@dz]wBJA
- HKN FreeBSD ̨ΤơC</para>
+ <para>把 FreeBSD 成功裝到 &macos; X 的
+ <application>Parallels</application> 之後,還需要作一些設定步驟,
+ 以便將虛擬機器內的 FreeBSD 最佳化。</para>
<procedure>
<step>
- <title>]w boot loader Ѽ</title>
+ <title>設定 boot loader 參數</title>
- <para>̭nBJDOǥѽխ <option>kern.hz</option> ӭC
- <application>Parallels</application> Ҥ FreeBSD CPU
- βvC iHb <filename>/boot/loader.conf</filename>
- [WUC]wYiG</para>
+ <para>最重要的步驟乃是藉由調降 <option>kern.hz</option> 來降低
+ <application>Parallels</application> 環境內 FreeBSD 的 CPU
+ 佔用率。 可以在 <filename>/boot/loader.conf</filename>
+ 內加上下列設定即可:</para>
<programlisting>kern.hz=100</programlisting>
- <para>Y@o]wAO idle A FreeBSD
+ <para>若不作這設定,那麼光是 idle 狀態的 FreeBSD
(<application>Parallels</application> guest OS)
- N|bȳ@Bz &imac; WFj 15% CPU βvC
- @Wzק蠟AβvN|ܤj 5%C</para>
+ 就會在僅單一處理器的 &imac; 上佔了大約 15% 的 CPU 佔用率。
+ 作上述修改之後,佔用率就會降至大約 5%。</para>
</step>
<step>
- <title>]ws kernel ]w</title>
+ <title>設定新的 kernel 設定檔</title>
- <para>iHߧҦ SCSIBFireWireBUSB
- ]ƳC <application>Parallels</application>
- &man.ed.4; dA]AF &man.ed.4; H
- &man.miibus.4; H~Ld]iHq kernel C</para>
+ <para>可以放心把所有 SCSI、FireWire、USB
+ 相關設備都移除。 <application>Parallels</application>
+ 有提供 &man.ed.4; 的虛擬網卡,因此,除了 &man.ed.4; 以及
+ &man.miibus.4; 以外的其他網路卡也都可以從 kernel 中移除。</para>
</step>
<step>
- <title>]w</title>
+ <title>設定網路</title>
- <para>iH² DHCP ӳ]wP &mac; ۦP LAN
- ҡAunb <filename>/etc/rc.conf</filename>
- [W <literal>ifconfig_ed0="DHCP"</literal> YiC
- Li]w覡AаѦ <xref linkend="advanced-networking"/>C</para>
+ <para>可以替虛擬機器簡單用 DHCP 來設定與 &mac; 相同的 LAN
+ 網路環境,只要在 <filename>/etc/rc.conf</filename>
+ 內加上 <literal>ifconfig_ed0="DHCP"</literal> 即可完成。
+ 其他進階的網路設定方式,請參考 <xref linkend="advanced-networking"/>。</para>
</step>
</procedure>
@@ -244,7 +244,7 @@
</sect2>
<sect2 xml:id="virtualization-guest-xen">
- <info><title>b Linux zL &xen; ] FreeBSD</title>
+ <info><title>在 Linux 透過 &xen; 跑 FreeBSD</title>
<authorgroup>
<author><personname><firstname>Fukang</firstname><surname>Chen (Loader)</surname></personname><contrib>Contributed by </contrib></author>
</authorgroup>
@@ -253,50 +253,50 @@
- <para><application>&xen;</application> hypervisor DO}񷽽X
- paravirtualization ~AåѰӷ~q(XenSource)Ѥ䴩C
- Guest OS q`Q٬ domU domainsA host OS hOQ٬ dom0C
- b Linux Wإ FreeBSD Ĥ@BAhOw Linux dom0
- <application>&xen;</application>C bҤA host OS DO Slackware
- LinuxC</para>
+ <para><application>&xen;</application> hypervisor 乃是開放源碼的
+ paravirtualization 產品,並由商業公司(XenSource)提供支援。
+ Guest OS 通常被稱為 domU domains,而 host OS 則是被稱為 dom0。
+ 在 Linux 上建立 FreeBSD 虛擬機器的第一步,則是安裝 Linux dom0 的
+ <application>&xen;</application>。 在本例中, host OS 乃是 Slackware
+ Linux。</para>
<sect3 xml:id="xen-slackware-dom0">
- <title>b Linux dom0 W]w &xen; 3</title>
+ <title>在 Linux dom0 上設定 &xen; 3</title>
<procedure>
<step>
- <title>q XenSource U &xen; 3.0</title>
+ <title>從 XenSource 網站下載 &xen; 3.0</title>
- <para>q <uri xlink:href="http://www.xensource.com/">http://www.xensource.com/</uri> U
- <link xlink:href="http://bits.xensource.com/oss-xen/release/3.0.4-1/src.tgz/xen-3.0.4_1-src.tgz">xen-3.0.4_1-src.tgz</link>C</para>
+ <para>從 <uri xlink:href="http://www.xensource.com/">http://www.xensource.com/</uri> 下載
+ <link xlink:href="http://bits.xensource.com/oss-xen/release/3.0.4-1/src.tgz/xen-3.0.4_1-src.tgz">xen-3.0.4_1-src.tgz</link>。</para>
</step>
<step>
- <title>Y</title>
+ <title>解壓縮</title>
<screen>&prompt.root; <userinput>cd xen-3.0.4_1-src</userinput>
&prompt.root; <userinput>KERNELS="linux-2.6-xen0 linux-2.6-xenU" make world</userinput>
&prompt.root; <userinput>make install</userinput></screen>
<note>
- <para> dom0 ssĶ kernelG</para>
+ <para>為 dom0 重新編譯 kernel:</para>
<screen>&prompt.root; <userinput>cd xen-3.0.4_1-src/linux-2.6.16.33-xen0</userinput>
&prompt.root; <userinput>make menuconfig</userinput>
&prompt.root; <userinput>make</userinput>
&prompt.root; <userinput>make install</userinput></screen>
- <para>ª <application>&xen;</application> iݭn
+ <para>舊版的 <application>&xen;</application> 可能需要用
<command>make ARCH=xen menuconfig</command></para>
</note>
</step>
<step>
- <title>W[ﶵ Grub menu.lst </title>
+ <title>增加選項到 Grub 的 menu.lst 選單</title>
- <para>ק <filename>/boot/grub/menu.lst</filename>
- [WUC]wG</para>
+ <para>修改 <filename>/boot/grub/menu.lst</filename>
+ 加上下列設定:</para>
<programlisting>title Xen-3.0.4
root (hd0,0)
@@ -305,20 +305,20 @@ module /boot/vmlinuz-2.6.16.33-xen0 root=/dev/hda1 ro</programlisting>
</step>
<step>
- <title>}öiJ &xen;</title>
+ <title>重開機並進入 &xen;</title>
- <para>Aק
+ <para>首先,修改
<filename>/etc/xen/xend-config.sxp</filename>
- [WUC]wG</para>
+ 加上下列設定:</para>
<programlisting>(network-script 'network-bridge netdev=eth0')</programlisting>
- <para>UӡANiHҰ <application>&xen;</application>G</para>
+ <para>接下來,就可以啟動 <application>&xen;</application>:</para>
<screen>&prompt.root; <userinput>/etc/init.d/xend start</userinput>
&prompt.root; <userinput>/etc/init.d/xendomains start</userinput></screen>
- <para>{b dom0 wg}lB@G</para>
+ <para>現在 dom0 已經開始運作:</para>
<screen>&prompt.root; <userinput>xm list</userinput>
Name ID Mem VCPUs State Time(s)
@@ -330,9 +330,9 @@ Domain-0 0 256 1 r----- 54452.9</sc
<sect3>
<title>FreeBSD 7-CURRENT domU</title>
- <para>q <link xlink:href="http://www.fsmware.com/">http://www.fsmware.com/</link>
- Uft <application>&xen; 3.0</application> FreeBSD domU
- kernel ɮ</para>
+ <para>從 <link xlink:href="http://www.fsmware.com/">http://www.fsmware.com/</link>
+ 下載搭配 <application>&xen; 3.0</application> 的 FreeBSD domU
+ kernel 相關檔案</para>
<itemizedlist>
<listitem>
@@ -348,9 +348,9 @@ Domain-0 0 256 1 r----- 54452.9</sc
</listitem>
</itemizedlist>
- <para> <filename>xmexample1.bsd</filename> ]wɩ
- <filename>/etc/xen/</filename>Aíק kernel disk image mC
- HUOܽdҤlG</para>
+ <para>把 <filename>xmexample1.bsd</filename> 設定檔放到
+ <filename>/etc/xen/</filename>,並修改 kernel 及 disk image 相關位置。
+ 以下是示範的例子:</para>
<programlisting>kernel = "/opt/kernel-current"
memory = 256
@@ -363,11 +363,11 @@ extra += ",boot_single"
extra += ",kern.hz=100"
extra += ",vfs.root.mountfrom=ufs:/dev/xbd769a"</programlisting>
- <para>䤤 <filename>mdroot-7.0.bz2</filename> ɭnOoYC</para>
+ <para>其中 <filename>mdroot-7.0.bz2</filename> 檔要記得解壓縮之。</para>
- <para>UӡAnק <filename>kernel-current</filename> ]wɪ
- __xen_guest p`Aå[W <application>&xen; 3.0.3</application> һݪ
- VIRT_BASEG</para>
+ <para>接下來,要修改 <filename>kernel-current</filename> 設定檔的
+ __xen_guest 小節,並加上 <application>&xen; 3.0.3</application> 所需的
+ VIRT_BASE:</para>
<screen>&prompt.root; <userinput>objcopy kernel-current -R __xen_guest</userinput>
&prompt.root; <userinput>perl -e 'print "LOADER=generic,GUEST_OS=freebsd,GUEST_VER=7.0,XEN_VER=xen-3.0,BSD_SYMTAB,VIRT_BASE=0xC0000000\x00"' &gt; tmp</userinput>
@@ -385,7 +385,7 @@ Contents of section __xen_guest:
0040 445f5359 4d544142 2c564952 545f4241 D_SYMTAB,VIRT_BA
0050 53453d30 78433030 30303030 3000 SE=0xC0000000. </screen>
- <para>{biHsWñҰ domU oG</para>
+ <para>現在可以新增並啟動 domU 囉:</para>
<screen>&prompt.root; <userinput>xm create /etc/xen/xmexample1.bsd -c</userinput>
Using config file "/etc/xen/xmexample1.bsd".
@@ -448,14 +448,14 @@ FreeBSD/i386 (demo.freebsd.org) (xc0)
login: </screen>
- <para>{b domU ӥiH] &os;&nbsp;7.0-CURRENT kernelG</para>
+ <para>現在 domU 應該可以跑 &os;&nbsp;7.0-CURRENT kernel:</para>
<screen>&prompt.root; <userinput>uname -a</userinput>
FreeBSD demo.freebsd.org 7.0-CURRENT FreeBSD 7.0-CURRENT #113: Wed Jan 4 06:25:43 UTC 2006
kmacy@freebsd7.gateway.2wire.net:/usr/home/kmacy/p4/freebsd7_xen3/src/sys/i386-xen/compile/XENCONF i386</screen>
- <para>UӬO]w domU A&os; domU |ΥN
- <filename>xn0</filename> SdG</para>
+ <para>接下來是設定 domU 的網路,&os; domU 會用代號為
+ <filename>xn0</filename> 的特殊網路卡:</para>
<screen>&prompt.root; <userinput>ifconfig xn0 10.10.10.200 netmask 255.0.0.0</userinput>
&prompt.root; <userinput>ifconfig</userinput>
@@ -467,8 +467,8 @@ lo0: flags=8049&lt;UP,LOOPBACK,RUNNING,MULTICAST&gt; mtu 16384
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
inet 127.0.0.1 netmask 0xff000000 </screen>
- <para>b dom0 Slackware Wӷ|X{@ <application>&xen;</application>
- MΪdG</para>
+ <para>在 dom0 Slackware 上應該會出現一些 <application>&xen;</application>
+ 專用的網路卡:</para>
<screen>&prompt.root; <userinput>ifconfig</userinput>
eth0 Link encap:Ethernet HWaddr 00:07:E9:A0:02:C2
@@ -526,21 +526,21 @@ xenbr1 8000.feffffffffff no vif0.1
</sect2>
<sect2 xml:id="virtualization-guest-virtualpc">
- <title>&windows; W Virtual PC</title>
+ <title>&windows; 上的 Virtual PC</title>
- <para><application>Virtual PC</application> O &microsoft;
- &windows; n鲣~AiHKOUϥΡC tλݨDAаѾ\ <link xlink:href="http://www.microsoft.com/windows/downloads/virtualpc/sysreq.mspx">
- system requirements</link> C b &microsoft.windows; ˧
- <application>Virtual PC</application> A
- wұw˪ӧ@]wC</para>
+ <para><application>Virtual PC</application> 是 &microsoft; 的
+ &windows; 軟體產品,可以免費下載使用。 相關系統需求,請參閱 <link xlink:href="http://www.microsoft.com/windows/downloads/virtualpc/sysreq.mspx">
+ system requirements</link> 說明。 在 &microsoft.windows; 裝完
+ <application>Virtual PC</application> 之後,
+ 必須針對所欲安裝的虛擬機器來作相關設定。</para>
<sect3 xml:id="virtualization-guest-virtualpc-install">
- <title>b Virtual PC/&microsoft.windows; Ww FreeBSD</title>
+ <title>在 Virtual PC/&microsoft.windows; 上安裝 FreeBSD</title>
- <para>b &microsoft.windows;/<application>Virtual PC</application>
- Ww FreeBSD Ĥ@BOsWC pUҥܡA
- bܵп <guimenuitem>Create a virtual
- machine</guimenuitem>G</para>
+ <para>在 &microsoft.windows;/<application>Virtual PC</application>
+ 上安裝 FreeBSD 的第一步是新增虛擬機器。 如下所示,
+ 在提示視窗內請選擇 <guimenuitem>Create a virtual
+ machine</guimenuitem>:</para>
<mediaobject>
<imageobject>
@@ -554,8 +554,8 @@ xenbr1 8000.feffffffffff no vif0.1
</imageobject>
</mediaobject>
- <para>Mb <guimenuitem>Operating system</guimenuitem> B
- <guimenuitem>Other</guimenuitem>G</para>
+ <para>然後在 <guimenuitem>Operating system</guimenuitem> 處選
+ <guimenuitem>Other</guimenuitem>:</para>
<mediaobject>
<imageobject>
@@ -563,9 +563,9 @@ xenbr1 8000.feffffffffff no vif0.1
</imageobject>
</mediaobject>
- <para>è̾ڦۨݨDӳWwЮeqO骺tC
- jhƦb <application>Virtual PC</application> ϥ FreeBSD
- pӨAj 4GB wЪŶH 512MB RAM NΤFG</para>
+ <para>並依據自身需求來規劃硬碟容量跟記憶體的分配。
+ 對大多數在 <application>Virtual PC</application> 使用 FreeBSD
+ 的情況而言,大約 4GB 硬碟空間以及 512MB RAM 就夠用了:</para>
<mediaobject>
<imageobject>
@@ -579,7 +579,7 @@ xenbr1 8000.feffffffffff no vif0.1
</imageobject>
</mediaobject>
- <para>xs]wɡG</para>
+ <para>儲存設定檔:</para>
<mediaobject>
<imageobject>
@@ -587,8 +587,8 @@ xenbr1 8000.feffffffffff no vif0.1
</imageobject>
</mediaobject>
- <para>UӿҷsW FreeBSD AëU
- <guimenu>Settings</guimenu>AH]wHκdG</para>
+ <para>接下來選剛剛所新增的 FreeBSD 虛擬機器,並按下
+ <guimenu>Settings</guimenu>,以設定網路種類以及網路卡:</para>
<mediaobject>
<imageobject>
@@ -602,15 +602,15 @@ xenbr1 8000.feffffffffff no vif0.1
</imageobject>
</mediaobject>
- <para>b FreeBSD sWANiH~Hw FreeBSDC
- wˤ譱An@kOϥΩx誺 FreeBSD ЩΪ̱qx FTP
- U ISO image ɡC Yz &windows; ɮרtΤwg ISO
- ɡA Ϊ̥оwˤANiHb FreeBSD
- WsUAH}lҰʡC ۦb
- <application>Virtual PC</application>
- <guimenu>CD</guimenu> A <guimenu>Capture ISO Image...</guimenu>
- C ۷|X{@ӵAiHо]w ISO ɡA
- Ϊ̬OоC</para>
+ <para>在 FreeBSD 虛擬機器新增後,就可以繼續以其安裝 FreeBSD。
+ 安裝方面,比較好的作法是使用官方的 FreeBSD 光碟或者從官方 FTP
+ 站下載 ISO image 檔。 若您的 &windows; 檔案系統內已經有該 ISO
+ 檔, 或者光碟機內有放安裝片,那麼就可以在 FreeBSD
+ 虛擬機器上連按兩下,以開始啟動。 接著在
+ <application>Virtual PC</application> 視窗內按
+ <guimenu>CD</guimenu> 再按 <guimenu>Capture ISO Image...</guimenu>
+ 。 接著會出現一個視窗,可以把虛擬機器內的光碟機設定到該 ISO 檔,
+ 或者是實體光碟機。</para>
<mediaobject>
<imageobject>
@@ -624,10 +624,10 @@ xenbr1 8000.feffffffffff no vif0.1
</imageobject>
</mediaobject>
- <para>]nФӷANiH}A]NO
- <guimenu>Action</guimenu> A <guimenu>Reset</guimenu> YiC
- <application>Virtual PC</application> |HS BIOS }AûPq
- BIOS @˷|ˬdO_оC</para>
+ <para>設好光碟片來源之後,就可以重開機,也就是先按
+ <guimenu>Action</guimenu> 再按 <guimenu>Reset</guimenu> 即可。
+ <application>Virtual PC</application> 會以特殊 BIOS 開機,並與普通
+ BIOS 一樣會先檢查是否有光碟機。</para>
<mediaobject>
<imageobject>
@@ -635,8 +635,8 @@ xenbr1 8000.feffffffffff no vif0.1
</imageobject>
</mediaobject>
- <para>ɡAN| FreeBSD wˤAö}lb <xref linkend="install"/> ҤШ쪺 <application>sysinstall</application>
- w˹L{C oɭԤ]iK X11Ani]wC</para>
+ <para>此時,它就會找到 FreeBSD 安裝片,並開始在 <xref linkend="install"/> 內所介紹到的 <application>sysinstall</application>
+ 安裝過程。 這時候也可順便裝 X11,但先不要進行相關設定。</para>
<mediaobject>
<imageobject>
@@ -644,8 +644,8 @@ xenbr1 8000.feffffffffff no vif0.1
</imageobject>
</mediaobject>
- <para>wˤAOoФhXΪ ISO image hC ̫A
- ˦n FreeBSD }YiC</para>
+ <para>完成安裝之後,記得把光碟片退出或者 ISO image 退片。 最後,
+ 把裝好的 FreeBSD 虛擬機器重開機即可。</para>
<mediaobject>
<imageobject>
@@ -655,45 +655,45 @@ xenbr1 8000.feffffffffff no vif0.1
</sect3>
<sect3 xml:id="virtualization-guest-virtualpc-configure">
- <title>վ &microsoft.windows;/Virtual PC W FreeBSD</title>
+ <title>調整 &microsoft.windows;/Virtual PC 上的 FreeBSD</title>
- <para>b &microsoft.windows; WH <application>Virtual
- PC</application> ˦n FreeBSD Aٻݭn@@dz]wBJA
- HKN FreeBSD ̨ΤơC</para>
+ <para>在 &microsoft.windows; 上以 <application>Virtual
+ PC</application> 裝好 FreeBSD 後,還需要作一些設定步驟,
+ 以便將虛擬機器內的 FreeBSD 最佳化。</para>
<procedure>
<step>
- <title>]w boot loader Ѽ</title>
+ <title>設定 boot loader 參數</title>
- <para>̭nBJDOǥѽխ <option>kern.hz</option> ӭC
- <application>Virtual PC</application> Ҥ FreeBSD CPU
- βvC iHb <filename>/boot/loader.conf</filename>
- [WUC]wYiG</para>
+ <para>最重要的步驟乃是藉由調降 <option>kern.hz</option> 來降低
+ <application>Virtual PC</application> 環境內 FreeBSD 的 CPU
+ 佔用率。 可以在 <filename>/boot/loader.conf</filename>
+ 內加上下列設定即可:</para>
<programlisting>kern.hz=100</programlisting>
- <para>Y@o]wAO idle A FreeBSD
+ <para>若不作這設定,那麼光是 idle 狀態的 FreeBSD
<application>Virtual PC</application> guest OS
- N|bȳ@BzqWFj 40% CPU βvC
- @Wzק蠟AβvN|ܤj 3%C</para>
+ 就會在僅單一處理器的電腦上佔了大約 40% 的 CPU 佔用率。
+ 作上述修改之後,佔用率就會降至大約 3%。</para>
</step>
<step>
- <title>]ws kernel ]w</title>
+ <title>設定新的 kernel 設定檔</title>
- <para>iHߧҦ SCSIBFireWireBUSB ]ƳC
- <application>Virtual PC</application> &man.de.4;
- dA]F &man.de.4; H &man.miibus.4;
- H~Ld]iHq kernel C</para>
+ <para>可以放心把所有 SCSI、FireWire、USB 相關設備都移除。
+ <application>Virtual PC</application> 有提供 &man.de.4;
+ 的虛擬網卡,因此除了 &man.de.4; 以及 &man.miibus.4;
+ 以外的其他網路卡也都可以從 kernel 中移除。</para>
</step>
<step>
- <title>]w</title>
+ <title>設定網路</title>
- <para>iH² DHCP ӳ]wP host(&microsoft.windows;)
- ۦP LAN ҡAunb <filename>/etc/rc.conf</filename>
- [W <literal>ifconfig_de0="DHCP"</literal> YiC
- Li]w覡AаѾ\ <xref linkend="advanced-networking"/>C</para>
+ <para>可以替虛擬機器簡單用 DHCP 來設定與 host(&microsoft.windows;)
+ 相同的 LAN 網路環境,只要在 <filename>/etc/rc.conf</filename>
+ 加上 <literal>ifconfig_de0="DHCP"</literal> 即可完成。
+ 其他進階的網路設定方式,請參閱 <xref linkend="advanced-networking"/>。</para>
</step>
</procedure>
@@ -702,19 +702,19 @@ xenbr1 8000.feffffffffff no vif0.1
</sect2>
<sect2 xml:id="virtualization-guest-vmware">
- <title>b MacOS W VMware</title>
+ <title>在 MacOS 上的 VMware</title>
- <para>&mac; W <application>VMWare Fusion</application> DOiΩft
- &intel; CPU H &macos; 10.4.9 &apple; &mac; HW &apple; &mac;
- qӷ~nC FreeBSD O䦳䴩 guest OS @C b &macos;
- X W˧ <application>VMWare Fusion</application> A
- wұw˪ guest OS ӧ@]wC</para>
+ <para>&mac; 上的 <application>VMWare Fusion</application> 乃是可用於搭配
+ &intel; CPU 以及 &macos; 10.4.9 之 &apple; &mac; 以上的 &apple; &mac;
+ 電腦之商業軟體。 FreeBSD 是其有完整支援的 guest OS 之一。 在 &macos;
+ X 上裝完 <application>VMWare Fusion</application> 之後,
+ 必須針對所欲安裝的 guest OS 來作相關的虛擬機器設定。</para>
<sect3 xml:id="virtualization-guest-vmware-install">
- <title>b VMWare/&macos; X Ww FreeBSD</title>
+ <title>在 VMWare/&macos; X 上安裝 FreeBSD</title>
- <para> VMWare FusionAӨ Virtual Machine Library
- ]|H@ָJAoɽЫ "New" ӫإ VM()G</para>
+ <para>首先執行 VMWare Fusion,而其 Virtual Machine Library
+ 也會隨之一併載入,這時請按 "New" 來建立 VM(虛擬機器):</para>
<mediaobject>
<imageobject>
@@ -722,8 +722,8 @@ xenbr1 8000.feffffffffff no vif0.1
</imageobject>
</mediaobject>
- <para>۷| New Virtual Machine Assistant ӨUzإ VMAЫ
- Continue ~G</para>
+ <para>接著會有 New Virtual Machine Assistant 來協助您建立 VM,請按
+ Continue 繼續:</para>
<mediaobject>
<imageobject>
@@ -731,12 +731,12 @@ xenbr1 8000.feffffffffff no vif0.1
</imageobject>
</mediaobject>
- <para>b <guimenuitem>Operating System</guimenuitem>
- <guimenuitem>Other</guimenuitem>AH <guimenu>Version</guimenu>
- BпܬO_n
- <guimenuitem>FreeBSD</guimenuitem>
- <guimenuitem>FreeBSD 64-bit</guimenuitem>AoШ̦ۨݨDO_n
- 64-bit 䴩өwG</para>
+ <para>在 <guimenuitem>Operating System</guimenuitem> 選
+ <guimenuitem>Other</guimenuitem>,以及 <guimenu>Version</guimenu>
+ 處請選擇是否要
+ <guimenuitem>FreeBSD</guimenuitem> 或
+ <guimenuitem>FreeBSD 64-bit</guimenuitem>,這部份請依自身需求是否有要
+ 64-bit 支援而定:</para>
<mediaobject>
<imageobject>
@@ -744,7 +744,7 @@ xenbr1 8000.feffffffffff no vif0.1
</imageobject>
</mediaobject>
- <para>۳]w VM image ɭnsBAHΨMwW١G</para>
+ <para>接著設定 VM image 檔要存到何處,以及決定名稱:</para>
<mediaobject>
<imageobject>
@@ -752,7 +752,7 @@ xenbr1 8000.feffffffffff no vif0.1
</imageobject>
</mediaobject>
- <para>Mw VM wЭnΦhjG</para>
+ <para>決定該 VM 的虛擬硬碟要用多大:</para>
<mediaobject>
<imageobject>
@@ -760,7 +760,7 @@ xenbr1 8000.feffffffffff no vif0.1
</imageobject>
</mediaobject>
- <para>ܭn VM 覡An ISO image ɩΪ̥оG</para>
+ <para>選擇要裝 VM 的方式為何,要用 ISO image 檔或者光碟機:</para>
<mediaobject>
<imageobject>
@@ -768,7 +768,7 @@ xenbr1 8000.feffffffffff no vif0.1
</imageobject>
</mediaobject>
- <para> Finish HA۴N|Ұʸ VMG</para>
+ <para>按 Finish 以完畢,接著就會啟動該 VM:</para>
<mediaobject>
<imageobject>
@@ -776,8 +776,8 @@ xenbr1 8000.feffffffffff no vif0.1
</imageobject>
</mediaobject>
- <para>۴NӥHw &os; 覡ӸˡAYܽаѾ\
- <xref linkend="install"/>G</para>
+ <para>接著就照以往安裝 &os; 的方式來裝,若不熟的話請參閱
+ <xref linkend="install"/>:</para>
<mediaobject>
<imageobject>
@@ -785,10 +785,10 @@ xenbr1 8000.feffffffffff no vif0.1
</imageobject>
</mediaobject>
- <para>˧ANiHק@ VM ]wAOOjpG</para>
+ <para>裝完之後,就可以修改一些 VM 設定,像是記憶體大小:</para>
<note>
- <para>VM bB@ɡAק VM w]wC</para>
+ <para>VM 在運作之時,不能修改 VM 的硬體設定。</para>
</note>
<mediaobject>
@@ -797,7 +797,7 @@ xenbr1 8000.feffffffffff no vif0.1
</imageobject>
</mediaobject>
- <para>վ VM CPU ƶqG</para>
+ <para>調整 VM 的 CPU 數量:</para>
<mediaobject>
<imageobject>
@@ -805,7 +805,7 @@ xenbr1 8000.feffffffffff no vif0.1
</imageobject>
</mediaobject>
- <para>оAAq`AݭnΪɭԡANiH_P VM sG</para>
+ <para>光碟機狀態,通常不再需要用的時候,就可以切斷其與 VM 的連接:</para>
<mediaobject>
<imageobject>
@@ -813,11 +813,11 @@ xenbr1 8000.feffffffffff no vif0.1
</imageobject>
</mediaobject>
- <para>̫n諸hO VM ]wC YF Host OS ~]s
- VMAп <guimenuitem>Connect directly to the physical network
- (Bridged)</guimenuitem>A_hN <guimenuitem>Share the host's
- internet connection (NAT)</guimenuitem> Yi VM s InternetA
- ~hLksJ VMC</para>
+ <para>最後要改的則是 VM 的網路設定。 若除了 Host OS 之外的機器也能連到
+ VM,那麼請選 <guimenuitem>Connect directly to the physical network
+ (Bridged)</guimenuitem>,否則就選 <guimenuitem>Share the host's
+ internet connection (NAT)</guimenuitem> 即可讓 VM 連到 Internet,
+ 但外面則無法連入該 VM。</para>
<mediaobject>
<imageobject>
@@ -825,48 +825,48 @@ xenbr1 8000.feffffffffff no vif0.1
</imageobject>
</mediaobject>
- <para>粒Wz]wANiHҰʷs˧ FreeBSD C</para>
+ <para>改完上述設定之後,就可以啟動新裝妥的 FreeBSD 虛擬機器。</para>
</sect3>
<sect3 xml:id="virtualization-guest-vmware-configure">
- <title>վ &macos; X/VMWare W FreeBSD</title>
+ <title>調整 &macos; X/VMWare 上的 FreeBSD</title>
- <para> FreeBSD \˨ &macos; X <application>VMWare</application>
- Aٻݭn@@dz]wBJA HKN FreeBSD ̨ΤơC</para>
+ <para>把 FreeBSD 成功裝到 &macos; X 的 <application>VMWare</application>
+ 之後,還需要作一些設定步驟, 以便將虛擬機器內的 FreeBSD 最佳化。</para>
<procedure>
<step>
- <title>]w boot loader Ѽ</title>
+ <title>設定 boot loader 參數</title>
- <para>̭nBJDOǥѽխ <option>kern.hz</option> ӭC
- <application>VMWare</application> Ҥ FreeBSD CPU βvC
- iHb <filename>/boot/loader.conf</filename>
- [WUC]wYiG</para>
+ <para>最重要的步驟乃是藉由調降 <option>kern.hz</option> 來降低
+ <application>VMWare</application> 環境內 FreeBSD 的 CPU 佔用率。
+ 可以在 <filename>/boot/loader.conf</filename>
+ 內加上下列設定即可:</para>
<programlisting>kern.hz=100</programlisting>
- <para>Y@o]wAO idle A FreeBSD
- (<application>VMWare</application> guest OS) N|bȳ@Bz
- &imac; WFj 15% CPU βvC @Wzק蠟A
- βvN|ܤj 5%C</para>
+ <para>若不作這設定,那麼光是 idle 狀態的 FreeBSD
+ (<application>VMWare</application> guest OS) 就會在僅單一處理器的
+ &imac; 上佔了大約 15% 的 CPU 佔用率。 作上述修改之後,
+ 佔用率就會降至大約 5%。</para>
</step>
<step>
- <title>]ws kernel ]w</title>
+ <title>設定新的 kernel 設定檔</title>
- <para>iHߧҦ FireWireBUSB ]ƳC
- <application>VMWare</application> &man.em.4; dA
- ]AF &man.em.4; H &man.miibus.4; H~LdA
- ]iHq kernel C</para>
+ <para>可以放心把所有 FireWire、USB 相關設備都移除。
+ <application>VMWare</application> 有提供 &man.em.4; 的虛擬網卡,
+ 因此,除了 &man.em.4; 以及 &man.miibus.4; 以外的其他網路卡,
+ 也都可以從 kernel 中移除。</para>
</step>
<step>
- <title>]w</title>
+ <title>設定網路</title>
- <para>iH² DHCP ӳ]wP host &mac; ۦP LAN
- ҡAunb <filename>/etc/rc.conf</filename> [W
- <literal>ifconfig_em0="DHCP"</literal> YiC
- Li]w覡AаѦ <xref linkend="advanced-networking"/>C</para>
+ <para>可以替虛擬機器簡單用 DHCP 來設定與 host &mac; 相同的 LAN
+ 網路環境,只要在 <filename>/etc/rc.conf</filename> 加上
+ <literal>ifconfig_em0="DHCP"</literal> 即可。
+ 其他進階的網路設定方式,請參考 <xref linkend="advanced-networking"/>。</para>
</step>
</procedure>
</sect3>
@@ -874,12 +874,12 @@ xenbr1 8000.feffffffffff no vif0.1
</sect1>
<sect1 xml:id="virtualization-host">
- <title>H FreeBSD Host OS</title>
+ <title>以 FreeBSD 為 Host OS</title>
- <para>ثeA|n馳x䴩 FreeBSD @ host OSA
- ZhHbª <application>VMware</application> ҴѪo\C
- LAثewgH <application>&xen;</application> H FreeBSD
- host OS ؼСAӶiu@C</para>
+ <para>目前,尚未有任何虛擬機器軟體有官方支援 FreeBSD 作為 host OS,
+ 但蠻多人都有在用舊版 <application>VMware</application> 所提供的這項功能。
+ 不過,目前已經有人為讓 <application>&xen;</application> 能夠以 FreeBSD
+ 為 host OS 為目標,而進行相關工作。</para>
</sect1>
diff --git a/zh_TW.Big5/books/handbook/x11/Makefile b/zh_TW.UTF-8/books/handbook/x11/Makefile
index 040a7ae2b2..040a7ae2b2 100644
--- a/zh_TW.Big5/books/handbook/x11/Makefile
+++ b/zh_TW.UTF-8/books/handbook/x11/Makefile
diff --git a/zh_TW.Big5/books/handbook/x11/chapter.xml b/zh_TW.UTF-8/books/handbook/x11/chapter.xml
index ada2fb3816..8a03630116 100644
--- a/zh_TW.Big5/books/handbook/x11/chapter.xml
+++ b/zh_TW.UTF-8/books/handbook/x11/chapter.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
The FreeBSD Documentation Project
@@ -6,7 +6,7 @@
Original revision: 1.186
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="x11">
- <info><title>X Window t</title>
+ <info><title>X Window 視窗系統</title>
<authorgroup>
<author><personname><firstname>Ken</firstname><surname>Tom</surname></personname><contrib>Updated for X.Org's X11 server by </contrib></author>
<author><personname><firstname>Marc</firstname><surname>Fonvieille</surname></personname></author>
@@ -16,185 +16,185 @@
<sect1 xml:id="x11-synopsis">
- <title>z</title>
+ <title>概述</title>
- <para>FreeBSD ϥ X11 ӴѨϥΪ̬۷nΪ GUI C
- X11 O X Window tΡA]A <application>&xorg;</application>
- H <application>&xfree86;</application> @ۥѳn骩
- (HΨLbЪn)C &os; @ &os;&nbsp;5.2.1-RELEASE
- ibw]w˵{h <application>&xfree86;</application>
- ( The &xfree86; Project, Inc o檺 X11 server)C
- &os;&nbsp;5.3-RELEASE _Aw] X11 אּ
- <application>&xorg;</application>( X.Org |Ҷ}o
- X11 serverAñĥλP &os; ۷ license)C ~AM]ӷ~
- X servers &os; C</para>
+ <para>FreeBSD 使用 X11 來提供使用者相當好用的 GUI 介面。
+ X11 是 X Window 系統,包括 <application>&xorg;</application>
+ 以及 <application>&xfree86;</application> 實作的自由軟體版本
+ (以及其他未在本章有介紹的軟體)。 &os; 一直到 &os;&nbsp;5.2.1-RELEASE
+ 都仍可在預設的安裝程式內去裝 <application>&xfree86;</application>
+ (由 The &xfree86; Project, Inc 發行的 X11 server)。
+ 而 &os;&nbsp;5.3-RELEASE 起,預設的 X11 改為
+ <application>&xorg;</application>(由 X.Org 基金會所開發的
+ X11 server,並採用與 &os; 相當類似的 license)。 此外,當然也有商業
+ X servers 的 &os; 版。</para>
- <para>DnO X11 (Dnۭ <application>&xorg;</application>
- &xorg.version; )w˻P]wC YA
- <application>&xfree86;</application> ԲӸ( &os; A
- <application>&xfree86;</application> DOw] X11 M)AаѾ\ª
- &os; HandbookA} <uri xlink:href="http://docs.FreeBSD.org/doc/">http://docs.FreeBSD.org/doc/</uri>
- C</para>
+ <para>本章主要是介紹 X11 (主要著重於 <application>&xorg;</application>
+ &xorg.version; 版部分)的安裝與設定。 若欲瞭解
+ <application>&xfree86;</application> 的詳細資料(早期的 &os; 內,
+ <application>&xfree86;</application> 乃是預設的 X11 套件),請參閱舊版的
+ &os; Handbook,網址為 <uri xlink:href="http://docs.FreeBSD.org/doc/">http://docs.FreeBSD.org/doc/</uri>
+ 。</para>
- <para> X11 ܤ譱w骺䴩pAаѾ\ <link xlink:href="http://www.x.org/">&xorg;</link> C</para>
+ <para>欲知 X11 對於顯示方面硬體的支援情況,請參閱 <link xlink:href="http://www.x.org/">&xorg;</link> 網站。</para>
- <para>ŪoAzNFѡG</para>
+ <para>讀完這章,您將了解:</para>
<itemizedlist>
<listitem>
- <para>X Window tΪUզAHΥ̬OpۤB@C</para>
+ <para>X Window 系統的各組成部份,以及它們是如何相互運作。</para>
</listitem>
<listitem>
- <para>pwˡB]w X11C</para>
+ <para>如何安裝、設定 X11。</para>
</listitem>
<listitem>
- <para>pw˨èϥΤP window managersC</para>
+ <para>如何安裝並使用不同的 window managers。</para>
</listitem>
<listitem>
- <para>pb X11 Wϥ &truetype; rC</para>
+ <para>如何在 X11 上使用 &truetype; 字型。</para>
</listitem>
<listitem>
- <para>p]wtΥHϥιϧεnJC
+ <para>如何設定系統以使用圖形登入介面。
(<application>XDM</application>)</para>
</listitem>
</itemizedlist>
- <para>b}l\ŪoeAzݭnJ</para>
+ <para>在開始閱讀這章之前,您需要︰</para>
<itemizedlist>
- <listitem><para>DpB portsBpackages Ӧw˳nC
+ <listitem><para>知道如何運用 ports、packages 來安裝軟體。
(<xref linkend="ports"/>)</para></listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="x-understanding">
- <title>A X @</title>
+ <title>瞭解 X 的世界</title>
- <para>Ĥ@IJ X HAj|Ǿ_١AרOxL GUI (O
- &microsoft.windows; &macos;)ϥΪ̡C</para>
+ <para>第一次接觸 X 的人,大概都會有些震撼,尤其是熟悉其他 GUI 介面(像是
+ &microsoft.windows; 或 &macos;)的使用者。</para>
- <para>M X U󪺩ҦӸ`ιB@覡AäOnDC
- 復̦ǰ򥻷|eWC</para>
+ <para>雖然 X 各元件的所有細節及運作方式,並不是必須要知道的。
+ 但對它們有些基本概念會更容易上手。</para>
<sect2>
- <title>s XH</title>
+ <title>為何叫做 X?</title>
- <para>X ëD &unix; WĤ@MtΡAoO̼syǹBΡC
- 쥻 X oζbo X e}ot@MtΡC MtΥs
- <quote>W</quote>( <quote>Window</quote> Ĥ@Ӧr)C
- X hO W ᪺U@ùrC</para>
+ <para>X 並非 &unix; 上第一套視窗系統,但它卻是最廣為流傳運用。
+ 原本的 X 研發團隊在研發 X 之前有開發另一套視窗系統。 那套系統叫做
+ <quote>W</quote>(取 <quote>Window</quote> 的第一個字)。
+ 而 X 則是 W 之後的下一個羅馬字母。</para>
- <para>X Q٤ <quote>X</quote>B<quote>X Window System</quote>B
- <quote>X11</quote>AHΨL@ǵJC ϥ <quote>X Windows</quote>
- orӺ٩I X11Ai|ǤHnFoӸ`iѾ\ &man.X.7;
- C</para>
+ <para>X 亦被稱之為 <quote>X</quote>、<quote>X Window System</quote>、
+ <quote>X11</quote>,以及其他一些詞彙。 使用 <quote>X Windows</quote>
+ 這字眼來稱呼 X11,可能會讓有些人不爽;這部分細節可參閱 &man.X.7;
+ 說明。</para>
</sect2>
<sect2>
- <title>X Client/Server [c</title>
+ <title>X 的 Client/Server 架構</title>
- <para>X @}lO]p[cҡAñĥ
- <quote>client-server</quote> [cC</para>
+ <para>X 一開始是設計為網路架構環境,並採用
+ <quote>client-server</quote> 架構。</para>
- <para>b X [cUA
- <quote>X server</quote> ObLBùBƹqWB@C
- server hOtdOܳ޲zB
- BzӦLBƹΨL](蹳OHøϪOӿJB
- Ϊ̬Oܨv)JA
- C X {(O <application>XTerm</application>A
- <application>&netscape;</application>)O <quote>client</quote>C
- client |ǰT server WApG<quote>Please draw a
- window at these coordinates</quote>A server |Ǧ^TApG
- <quote>The user just clicked on the OK button</quote>C</para>
+ <para>在 X 架構下,
+ <quote>X server</quote> 是在有鍵盤、螢幕、滑鼠的電腦上運作。
+ 而 server 部份則是負責像是顯示部份的管理、
+ 處理來自鍵盤、滑鼠及其他設備(比方像是以繪圖板來輸入、
+ 或者是顯示到投影機)的輸入等等,
+ 每個 X 程式(像是 <application>XTerm</application>,或
+ <application>&netscape;</application>)都是 <quote>client</quote>。
+ client 會傳訊息到 server 上,比如:<quote>Please draw a
+ window at these coordinates</quote>,接著 server 會傳回訊息,比如:
+ <quote>The user just clicked on the OK button</quote>。</para>
- <para>baxΤp줽ҡAq` X server X client
- ObP@xqW檺C MӡA]iHbꪺW X serverA
- æbjBQqW] X {(client)ӰƱC
- boسAX client P server qNݳzLӶiC</para>
+ <para>在家庭或小辦公室環境,通常 X server 跟 X client
+ 都是在同一台電腦上執行的。 然而,也可以在比較爛的桌機上執行 X server,
+ 並在比較強、比較貴的電腦上跑 X 程式(client)來做事情。
+ 在這種場景,X client 與 server 之間的溝通就需透過網路來進行。</para>
- <para>oIi|ǤHͧxbA] X NyPḼ쥻{nۤϡC
- Ḽ쥻H <quote>X server</quote> OnḇjW]~A
- <quote>X client</quote> hObL̮W]C ڤWoOoˡC</para>
+ <para>這點可能會讓有些人產生困惑,因為 X 術語與他們原本的認知剛好相反。
+ 他們原本以為 <quote>X server</quote> 是要在最強悍的機器上跑才行,而
+ <quote>X client</quote> 則是在他們桌機上面跑。 實際上卻不是這樣。</para>
- <para>I۷nAаO X server ObùBLWB@A
- X client hOܳoǵ{C</para>
+ <para>有點相當重要,請記住 X server 是在有接螢幕、鍵盤的機器上運作,
+ 而 X client 則是顯示這些視窗的程式。</para>
- <para>w(protocol)õLjWw client H server
- oOP@@~tΡAΪ̱oOP~iHC
- yܻA]iHb &microsoft.windows; īGq(Apple) &macos;
- W] X serverAӥBiHzL\hKOΰӷ~n駹oǦwˡB]wC
+ <para>協定(protocol)內並無強制規定 client 以及 server
+ 兩邊機器都得是同一作業系統,或者得是同型機器才可以。
+ 換句話說,也可以在 &microsoft.windows; 或蘋果電腦(Apple)的 &macos;
+ 上跑 X server,而且可以透過許多免費或商業軟體完成這些安裝、設定。
</para>
</sect2>
<sect2>
<title>The Window Manager</title>
- <para>X ]pǻP &unix; ]pǬ۷AO
- <quote>tools, not policy</quote>C ]NOAX
- |չϱjWwYӭnp󧹦AӬOuѨϥΪ̤@ǤuA
- ܩpBγoǤuAhOϥΪ̥ƤFC</para>
+ <para>X 設計哲學與 &unix; 設計哲學相當類似,都是
+ <quote>tools, not policy</quote>。 也就是說,X
+ 不會試圖強制規定某任務應該要如何完成,而是只提供使用者一些工具,
+ 至於如何運用這些工具,則是使用者本身的事了。</para>
- <para>X oǡAäWwGùWӪˡBnp󲾰ʷƹСB
- ӥΤզXӤU(pGb &microsoft.windows;
+ <para>X 延續這哲學,它並不規定:螢幕上的視窗該長什麼樣、要如何移動滑鼠指標、
+ 該用什麼組合鍵來切換各視窗(比如:在 &microsoft.windows; 的
<keycombo action="simul">
<keycap>Alt</keycap>
<keycap>Tab</keycap>
- </keycombo>)BUDCۡAHάO_ӦsC</para>
+ </keycombo>鍵)、各視窗的標題列長相,以及是否該有關閉鈕等等。</para>
- <para>ƹWAX o浹ҿת <quote>Window Manager</quote> Ӻ޲zC
- @ window manager {AO: <application>AfterStep</application>
- B<application>Blackbox</application>B<application>ctwm</application>
- B<application>Enlightenment</application>B
- <application>fvwm</application>B<application>Sawfish</application>B
- <application>twm</application>B
- <application>Window Maker</application> CC@ window manager
- ѤPϥθgF ٥iϥ <quote>virtual desktops(ୱ)
- </quote>FǫhiۭqզXӺ޲zୱFǷ| <quote>Start(}l)
- </quote>sΨL]pFǫhO <quote>i󴫧GDD</quote>A
- iۦw˷sGDDH󴫥~[C oǸL
- window manager b Ports Collection
- <filename>x11-wm</filename> ؿC</para>
+ <para>事實上,X 把這部分交給所謂的 <quote>Window Manager</quote> 來管理。
+ 有一堆 window manager 程式,像是: <application>AfterStep</application>
+ 、<application>Blackbox</application>、<application>ctwm</application>
+ 、<application>Enlightenment</application>、
+ <application>fvwm</application>、<application>Sawfish</application>、
+ <application>twm</application>、
+ <application>Window Maker</application> 等等。每一種 window manager
+ 都提供不同的使用經驗; 有些還可使用 <quote>virtual desktops(虛擬桌面)
+ </quote>;有些則可自訂組合鍵來管理桌面;有些會有 <quote>Start(開始)
+ </quote>鈕或其他類似設計;有些則是 <quote>可更換佈景主題</quote>,
+ 可自行安裝新的佈景主題以更換外觀。 這些跟其他的
+ window manager 在 Ports Collection 內的
+ <filename>x11-wm</filename> 目錄內都有。</para>
- <para>~A<application>KDE</application>
- <application>GNOME</application> ୱҫhݨþX㪺
- window managerC</para>
+ <para>此外,<application>KDE</application> 及
+ <application>GNOME</application> 桌面環境則有其自屬並整合完整的
+ window manager。</para>
- <para>C window manager ]U䤣P]wFǻݤʼg]wɡA
- ӦhizL GUI uӧj]wC|ӨҤlG
- <application>Sawfish</application> NH Lisp yg]wɡC
+ <para>每個 window manager 也各有其不同的設定機制;有些需手動寫設定檔,
+ 而有的則可透過 GUI 工具來完成大部分的設定。舉個例子:
+ <application>Sawfish</application> 就有以 Lisp 語言寫的設定檔。
</para>
<note>
<title>Focus Policy</title>
- <para>window manager t@SNOtdƹЪ
- <quote>focus policy</quote>C C@صtγݭnܧ@ε覡
- AHLJAHΨMwثeӵOBϥΤAC</para>
+ <para>window manager 的另一特色就是負責滑鼠指標的
+ <quote>focus policy</quote>。 每一種視窗系統都需要選擇作用視窗的方式
+ ,以接受鍵盤輸入,以及決定目前哪個視窗是處於使用中的狀態。</para>
- <para>q`Hx focus policy s <quote>click-to-focus</quote>A
- oO &microsoft.windows; ұĥΪҦA]NOЦbӵ@UܡA
- ӵN|BϥΤAC</para>
+ <para>通常較為人熟悉的 focus policy 叫做 <quote>click-to-focus</quote>,
+ 這是 &microsoft.windows; 所採用的模式,也就是指標在該視窗按一下的話,
+ 該視窗就會處於使用中的狀態。</para>
- <para>X ä䴩@ǯS focus policyC yܻAwindow manager
- |ӵbɬO@ΤC P window manager
- P䴩覡C ̳䴩 click-to-focusA
- ӥBjhƳ䴩hؤ覡C</para>
+ <para>X 並不支援一些特殊的 focus policy。 換句話說,window manager
+ 會控制哪個視窗在何時是作用中。 不同的 window manager
+ 有不同的支援方式。 但它們都支援 click-to-focus,
+ 而且大多數都有支援多種方式。</para>
- <para>HUOثe̬y檺 focus policyG</para>
+ <para>以下是目前最流行的 focus policy:</para>
<variablelist>
<varlistentry>
<term>focus-follows-mouse</term>
<listitem>
- <para>ƹӵNOϥθӵC
- ӵ@wLWA
- unƹӵNiHܧ@ΤA
- ӤݦbWIC</para>
+ <para>滑鼠移到哪個視窗就是使用該視窗。
+ 該視窗不一定位於其他視窗上面,
+ 但只要把滑鼠移到該視窗就可以改變作用中的視窗,
+ 而不需在它上面點擊。</para>
</listitem>
</varlistentry>
@@ -202,12 +202,12 @@
<term>sloppy-focus</term>
<listitem>
- <para> policy Ow focus-follows-mouse ppC
- focus-follows-mouse ӨAYв̪쪺(ήୱ)A
- ҦL|BD@ΤAӥBҦLJ]|ġC
- YO sloppy-focusAhubвsɡA
- @Τ~|ܦsA
- ӥu}ثe@Τ|ܧ@ΪAC</para>
+ <para>該 policy 是針對 focus-follows-mouse 的小小延伸。
+ 對於 focus-follows-mouse 而言,若把游標移到最初的視窗(或桌面),
+ 那所有其他視窗都會處於非作用中,而且所有鍵盤輸入也會失效。
+ 若是選用 sloppy-focus,則只有在游標移到新視窗時,
+ 作用中的視窗才會變成新的,
+ 而只離開目前作用中的視窗仍不會改變作用狀態。</para>
</listitem>
</varlistentry>
@@ -215,15 +215,15 @@
<term>click-to-focus</term>
<listitem>
- <para>ѴI~|Mw@ΤC åBӵ|Q
- <quote>raised(Y)</quote> ҦLeA
- YϴвLAҦLJ|ѸӵұC</para>
+ <para>由游標點擊才會決定作用中的視窗。 並且該視窗會被
+ <quote>raised(凸顯)</quote> 到所有其他視窗之前,
+ 即使游標移到其他視窗,所有的鍵盤輸入仍會由該視窗所接收。</para>
</listitem>
</varlistentry>
</variablelist>
- <para>\h window manager ]䴩L policyAPoǬۤ_ӤSǤPA
- Ӹ`аѾ\ window manager 󻡩C</para>
+ <para>許多 window manager 也支援其他 policy,與這些相比起來又有些不同,
+ 細節部分請參閱該 window manager 的文件說明。</para>
</note>
</sect2>
@@ -262,45 +262,45 @@
</sect1>
<sect1 xml:id="x-install">
- <title>w X11</title>
+ <title>安裝 X11</title>
- <para><application>&xorg;</application> O &os; w] X11 @C
- <application>&xorg;</application> O X.Org |ҵo椧}񷽽Xn
- X Window tι@ X serverC <application>&xorg;</application>
- DOH <application>&xfree86;&nbsp;4.4RC2</application> H X11R6.6
- ¦ҲͪC ثe &os; Ports Collection
- <application>&xorg;</application> &xorg.version;C</para>
+ <para><application>&xorg;</application> 是 &os; 預設的 X11 實作。
+ <application>&xorg;</application> 是由 X.Org 基金會所發行之開放源碼軟體
+ X Window 系統實作的 X server。 <application>&xorg;</application>
+ 乃是以 <application>&xfree86;&nbsp;4.4RC2</application> 以及 X11R6.6
+ 為基礎所產生的。 目前 &os; Ports Collection 內的
+ <application>&xorg;</application> 版本為 &xorg.version;。</para>
- <para>q Ports Collection Ӧw <application>&xorg;</application>
- wˤ覡G</para>
+ <para>從 Ports Collection 來安裝 <application>&xorg;</application>
+ 的安裝方式:</para>
<screen>&prompt.root; <userinput>cd /usr/ports/x11/xorg</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
<note>
- <para>YnsĶ㪺 <application>&xorg;</application>A
- ХT{ܤ֦ 4&nbsp;GB ϺЪŶC</para>
+ <para>若要編譯完整的 <application>&xorg;</application>,
+ 請先確認至少有 4&nbsp;GB 的磁碟空間。</para>
</note>
- <para>~ X11 ]izL package 覡ӦwˡAiϥ &man.pkg.add.1;
- Ӧw˽sĶn X11 MAOobzLwˮɤnwYiA
- &man.pkg.add.1; |۰ʧӮM̷sM^ӡC</para>
+ <para>此外 X11 也可直接透過 package 方式來安裝,可使用 &man.pkg.add.1;
+ 來安裝編譯好的 X11 套件,記得在透過網路安裝時不要指定版本即可,
+ &man.pkg.add.1; 會自動抓該套件最新版的套件回來。</para>
- <para>Yn۰ʳzL package 覡Ӹ <application>&xorg;</application>
- AUoYiG</para>
+ <para>若要自動透過 package 方式來裝 <application>&xorg;</application>
+ ,直接打下面這行即可:</para>
<screen>&prompt.root; <userinput>pkg_add -r xorg</userinput></screen>
- <note><para>WҤl|˧㪺 X11 MA]A serverBclientBrC
- ~A٦L X11 lMizL package port
- 覡ӳWwˡC</para></note>
+ <note><para>上面的例子會裝完整的 X11 套件,包括 server、client、字型等。
+ 此外,還有其他的 X11 子套件可透過 package 或 port
+ 方式來單獨安裝。</para></note>
- <para>lNЦp]w X11A
- HΦp󥴳yͲOୱҡC</para>
+ <para>本章其餘部分將介紹如何設定 X11,
+ 以及如何打造高生產力的桌面環境。</para>
</sect1>
<sect1 xml:id="x-config">
- <info><title>]w X11</title>
+ <info><title>設定 X11</title>
<authorgroup>
<author><personname><firstname>Christopher</firstname><surname>Shumway</surname></personname><contrib>Contributed by </contrib></author>
</authorgroup>
@@ -312,26 +312,26 @@
<indexterm><primary>X11</primary></indexterm>
<sect2>
- <title>b}le</title>
+ <title>在開始之前</title>
- <para>b}l]w X11 eAnAѩҭn˪ƬG</para>
+ <para>在開始設定 X11 之前,要先瞭解所要裝的機器資料為何:</para>
<itemizedlist>
- <listitem><para>ùW</para></listitem>
- <listitem><para>ܥdW</para></listitem>
- <listitem><para>ܥdOeq</para></listitem>
+ <listitem><para>螢幕規格</para></listitem>
+ <listitem><para>顯示卡的晶片規格</para></listitem>
+ <listitem><para>顯示卡的記憶體容量</para></listitem>
</itemizedlist>
<indexterm><primary>horizontal scan rate</primary></indexterm>
<indexterm><primary>vertical scan rate</primary></indexterm>
- <para>X11 |̿ùWӨMwѪRץHΧsWvC
- odzWq`iqùҪμtӺWoC
- ̭nOnDBsWvC</para>
+ <para>X11 會依螢幕規格來決定解析度以及更新頻率。
+ 這些規格通常可從螢幕所附的文件或廠商網站上取得。
+ 最重要的是要知道水平、垂直更新頻率為何。</para>
- <para>ܥdhMw X11 nέ@Xʵ{ҲաC
- jhƪiH۰ʰA̦n٬OnDOشA
- HKU@۰ʰѡC</para>
+ <para>而顯示卡晶片則決定 X11 要用哪一種驅動程式模組。
+ 大多數的晶片都可以自動偵測,但最好還是要知道是何種晶片,
+ 以免萬一自動偵測失敗。</para>
<para>Video memory on the graphic adapter determines the
resolution and color depth which the system can run at. This is
@@ -340,39 +340,39 @@
</sect2>
<sect2>
- <title>]w X11</title>
+ <title>設定 X11</title>
- <para><application>&xorg;</application> 7.3
- _Aݥ]wɡAunUCYiG</para>
+ <para><application>&xorg;</application> 自 7.3
+ 版起不再需任何設定檔,只要打下列即可:</para>
<screen>&prompt.user; <userinput>startx</userinput></screen>
- <para>YoOιw]]wLkϥΡANݭnʳ]w X11C
- ]w X11 ݭnXӨBJAOHtκ޲ẕbӫإߪl]wɡG</para>
+ <para>若這指令不行或預設設定無法使用,那麼就需要手動設定 X11。
+ 設定 X11 需要幾個步驟,首先是以系統管理者帳號來建立初始設定檔:</para>
<screen>&prompt.root; <userinput>Xorg -configure</userinput></screen>
- <para>o|b <filename>/root</filename> ؿ
- <filename>xorg.conf.new</filename> ]w(L׬O &man.su.1;
- ΪnJ rootA| root w] <envar>$HOME</envar> ܼ)C
- X11 {۷|tΪܥdwAñNwTgJ]wɡA
- HKJTXʵ{C</para>
+ <para>這會在 <filename>/root</filename> 目錄內產生
+ <filename>xorg.conf.new</filename> 設定檔(無論是用 &man.su.1;
+ 或直接登入為 root,都會改變 root 預設的 <envar>$HOME</envar> 環境變數)。
+ X11 程式接著會偵測系統的顯示卡相關硬體,並將偵測到硬體訊息寫入設定檔,
+ 以便載入正確的驅動程式。</para>
- <para>U@BOղ{]wɡAHKT{ <application>&xorg;</application>
- iHPܥdBùw饿TB@G</para>
+ <para>下一步是測試現有的設定檔,以便確認 <application>&xorg;</application>
+ 可以與顯示卡、螢幕相關硬體正確運作:</para>
<screen>&prompt.root; <userinput>Xorg -config xorg.conf.new</userinput></screen>
- <para>Yݱo@¦ǧeAH X ΪƹСA
- ]wɴNO\C nhXաAunPɫU
+ <para>若看得到一堆黑灰夾雜的網格畫面,以及 X 形的滑鼠游標,
+ 那麼設定檔就是成功的。 要退出測試,只要同時按下
<keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>Alt</keycap>
<keycap>Backspace</keycap>
- </keycombo> YiC</para>
+ </keycombo> 即可。</para>
- <note><para>YƹTB@Aݭn@]wC аѾ\
- &os; wˤ@ <xref linkend="mouse"/> C</para></note>
+ <note><para>若滑鼠不正確運作,那麼需要先對其作設定。 請參閱
+ &os; 安裝一章中的 <xref linkend="mouse"/> 說明。</para></note>
<indexterm><primary>X11 tuning</primary></indexterm>
@@ -466,8 +466,8 @@ EndSection</programlisting>
<screen>&prompt.root; <userinput>cp xorg.conf.new /etc/X11/xorg.conf</userinput></screen>
<para>The X11 configuration process is now
- complete. <application>&xorg;</application> ثeizL &man.startx.1;
- ӱҰʤC
+ complete. <application>&xorg;</application> 目前可透過 &man.startx.1;
+ 來啟動之。
The X11 server may also be started with the use of
&man.xdm.1;.</para>
@@ -486,17 +486,17 @@ EndSection</programlisting>
</sect2>
<sect2>
- <title>i]wM</title>
+ <title>進階設定專欄</title>
<sect3>
- <title>]w &intel; i810 øϴ</title>
+ <title>設定 &intel; i810 繪圖晶片組</title>
<indexterm><primary>Intel i810 graphic chipset</primary></indexterm>
<para>Configuration with &intel; i810 integrated chipsets
requires the <filename>agpgart</filename>
AGP programming interface for X11
- to drive the card. ԱаѾ\ &man.agp.4; C</para>
+ to drive the card. 詳情請參閱 &man.agp.4; 說明。</para>
<para>This will allow configuration of the hardware as any other
graphics board. Note on systems without the &man.agp.4;
@@ -507,18 +507,18 @@ EndSection</programlisting>
</sect3>
<sect3>
- <title>eùyξA</title>
+ <title>為寬螢幕打造更舒適環境</title>
<indexterm><primary>widescreen flatpanel configuration</primary></indexterm>
- <para>`]UwgǷLi]w\OC
- pGյۨϥΤWz]wu|DܡAЦhQά log
- (|OT)HKXѪkC
- MѪkL{Ai|ݭnΨrs边@UC</para>
+ <para>本節假設各位已經有些微進階設定的功力。
+ 如果試著使用上述設定工具會有問題的話,請多利用相關 log 檔
+ (會記錄相關訊息)以便找出解法。
+ 找尋解法過程中,可能會需要用到文字編輯器作為輔助。</para>
- <para>ثeeù (WSXGA, WSXGA+, WUXGA, WXGA, WXGA+ )
- 䴩 16:10 10:9 ҡAHΤ@ǥi঳DҡC
- HUO@DZ` 16:10 ùѪRסG</para>
+ <para>目前的寬螢幕 (WSXGA, WSXGA+, WUXGA, WXGA, WXGA+ 等)
+ 都有支援 16:10 及 10:9 比例,以及一些可能有問題的比例。
+ 以下是一些常見的 16:10 螢幕解析度:</para>
<itemizedlist>
<listitem><para>2560x1600</para></listitem>
@@ -528,9 +528,9 @@ EndSection</programlisting>
<listitem><para>1280x800</para></listitem>
</itemizedlist>
- <para>Y譱ӨAnW[oǸѪR׳]w]O۷eA
- unb <literal>Section "Screen"</literal>
- <literal>Mode</literal> [WhNnApG</para>
+ <para>某方面而言,要增加這些解析度設定也是相當容易的,
+ 只要在 <literal>Section "Screen"</literal> 內的
+ <literal>Mode</literal> 加上去就好,比如:</para>
<programlisting>Section "Screen"
Identifier "Screen0"
@@ -544,15 +544,15 @@ SubSection "Display"
EndSubSection
EndSection</programlisting>
- <para><application>&xorg;</application> iHzL I2C/DDC
- ӱoӼeùҤ䴩ѪR׵TA
- ]NॿTXӿùү䴩WvBѪRסC</para>
+ <para><application>&xorg;</application> 可以透過 I2C/DDC
+ 來得知該寬螢幕所支援的解析度等相關資訊,
+ 因此就能正確偵測出該螢幕所能支援的頻率、解析度。</para>
- <para>YXʵ{å]A <literal>ModeLine</literal> TܡA
- Nn <application>&xorg;</application> dz]w~C
- ڭ̥iHzL <filename>/var/log/Xorg.0.log</filename> ɨӨo
- <literal>ModeLine</literal> ]wơAYiù`ܡC
- ӥiHݨUTG</para>
+ <para>若驅動程式並未包括 <literal>ModeLine</literal> 訊息的話,
+ 那麼就要為 <application>&xorg;</application> 做些設定才行。
+ 我們可以透過 <filename>/var/log/Xorg.0.log</filename> 檔來取得
+ <literal>ModeLine</literal> 相關設定資料,即可讓螢幕正常顯示。
+ 應該可以看到類似下面的訊息:</para>
<programlisting>(II) MGA(0): Supported additional Video Mode:
(II) MGA(0): clock: 146.2 MHz Image Size: 433 x 271 mm
@@ -560,13 +560,13 @@ EndSection</programlisting>
(II) MGA(0): v_active: 1050 v_sync: 1053 v_sync_end 1059 v_blanking: 1089 v_border: 0
(II) MGA(0): Ranges: V min: 48 V max: 85 Hz, H min: 30 H max: 94 kHz, PixClock max 170 MHz</programlisting>
- <para>oǰTQ٬ EDID TC iHǥѳoǸơA
- ftUCTǨӲ <literal>ModeLine</literal> ]wG</para>
+ <para>這些訊息被稱為 EDID 訊息。 可以藉由這些資料,
+ 搭配下列的正確順序來產生 <literal>ModeLine</literal> 設定:</para>
<programlisting> ModeLine &lt;name&gt; &lt;clock&gt; &lt;4 horiz. timings&gt; &lt;4 vert. timings&gt;</programlisting>
- <para>ҥHoӮר <literal>Section "Monitor"</literal>
- <literal>ModeLine</literal> N|OUoˡG</para>
+ <para>所以這個案例 <literal>Section "Monitor"</literal> 的
+ <literal>ModeLine</literal> 就會是像下面這樣:</para>
<programlisting>Section "Monitor"
Identifier "Monitor1"
@@ -576,13 +576,13 @@ ModeLine "1680x1050" 146.2 1680 1784 1960 2240 1050 1053 1059 1089
Option "DPMS"
EndSection</programlisting>
- <para>oˤlN²槹FAX NiHyseùoC</para>
+ <para>這樣子就簡單完成了,X 視窗就可以打造為新的寬螢幕環境囉。</para>
</sect3>
</sect2>
</sect1>
<sect1 xml:id="x-fonts">
- <info><title>b X11 ϥΦr</title>
+ <info><title>在 X11 中使用字型</title>
<authorgroup>
<author><personname><firstname>Murray</firstname><surname>Stokely</surname></personname><contrib>Contributed by </contrib></author>
</authorgroup>
@@ -590,7 +590,7 @@ EndSection</programlisting>
<sect2 xml:id="type1">
- <title>Type1 W檺r</title>
+ <title>Type1 規格的字型</title>
<para>The default fonts that ship with
X11 are less than ideal for typical
desktop publishing applications. Large presentation fonts show up
@@ -642,7 +642,7 @@ EndSection</programlisting>
</sect2>
<sect2 xml:id="truetype">
- <title>&truetype; W檺r</title>
+ <title>&truetype; 規格的字型</title>
<indexterm><primary>TrueType Fonts</primary></indexterm>
<indexterm><primary>fonts</primary>
@@ -696,7 +696,7 @@ EndSection</programlisting>
</sect2>
<sect2 xml:id="antialias">
- <info><title>Anti-Aliased W檺r</title>
+ <info><title>Anti-Aliased 規格的字型</title>
<authorgroup>
<author><personname><firstname>Joe Marcus</firstname><surname>Clarke</surname></personname><contrib>Updated by </contrib></author>
</authorgroup>
@@ -1155,7 +1155,7 @@ DisplayManager.requestPort: 0</screen>
</sect1>
<sect1 xml:id="x11-wm">
- <info><title>ୱ</title>
+ <info><title>桌面環境</title>
<authorgroup>
<author><personname><firstname>Valentino</firstname><surname>Vaschetto</surname></personname><contrib>Contributed by </contrib></author>
<!-- June 2001 -->
@@ -1164,16 +1164,16 @@ DisplayManager.requestPort: 0</screen>
- <para>|Цb FreeBSD X YAǤPୱҡC
- <quote>ୱ</quote>dܼsAq²檺 window manager
- 㪺ୱε{AҦp <application>KDE</application> <application>GNOME</application>C
+ <para>本章會介紹在 FreeBSD 中的 X 裡頭,有哪些不同的桌面環境。
+ <quote>桌面環境</quote>範圍很廣,從簡單的 window manager 到
+ 完整的桌面應用程式,例如 <application>KDE</application> 或 <application>GNOME</application>。
</para>
<sect2 xml:id="x11-wm-gnome">
<title>GNOME</title>
<sect3 xml:id="x11-wm-gnome-about">
- <title> GNOME</title>
+ <title>關於 GNOME</title>
<indexterm><primary>GNOME</primary></indexterm>
<para><application>GNOME</application> is a user-friendly
@@ -1197,22 +1197,22 @@ DisplayManager.requestPort: 0</screen>
<sect3 xml:id="x11-wm-gnome-install">
<title>Installing GNOME</title>
- <para>izL package Ports Collection 覡ӻPwˡG</para>
+ <para>可透過 package 或 Ports Collection 的方式來輕鬆安裝:</para>
- <para>zLQ package w <application>GNOME</application>G</para>
+ <para>透過網路利用 package 安裝 <application>GNOME</application>:</para>
<screen>&prompt.root; <userinput>pkg_add -r gnome2</userinput></screen>
- <para>q ports tree zLlXsĶw <application>GNOME</application>G</para>
+ <para>從 ports tree 透過原始碼編譯安裝 <application>GNOME</application>:</para>
<screen>&prompt.root; <userinput>cd /usr/ports/x11/gnome2</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
- <para> <application>GNOME</application> w˧A
- iD X server Ұ <application>GNOME</application> ӫD쥻 window managerC</para>
+ <para>當 <application>GNOME</application> 安裝完成後,
+ 必須告訴 X server 啟動 <application>GNOME</application> 而非原本的 window manager。</para>
- <para>Ұ <application>GNOME</application> ²檺kOQ
- <application>GDM</application>(GNOME Display Manager)C
+ <para>啟動 <application>GNOME</application> 最簡單的方法是利
+ 用 <application>GDM</application>(GNOME Display Manager)。
<application>GDM</application>, which is installed as a part
of the <application>GNOME</application> desktop (but is
disabled by default), can be enabled by adding
@@ -1349,10 +1349,10 @@ DisplayManager.requestPort: 0</screen>
</sect3>
<sect3 xml:id="x11-wm-kde-install">
- <title>w KDE</title>
+ <title>安裝 KDE</title>
- <para>pP <application>GNOME</application> ΨLୱ޲zn@ˡA
- ]iHPzL package Ports Collection ӦwˡG</para>
+ <para>如同 <application>GNOME</application> 或其他桌面管理軟體一樣,
+ 也可以輕鬆透過 package 或 Ports Collection 來安裝:</para>
<para>To install the <application>KDE</application> package
from the network, simply type:</para>
diff --git a/zh_TW.Big5/books/porters-handbook/Makefile b/zh_TW.UTF-8/books/porters-handbook/Makefile
index 50b8633a0b..50b8633a0b 100644
--- a/zh_TW.Big5/books/porters-handbook/Makefile
+++ b/zh_TW.UTF-8/books/porters-handbook/Makefile
diff --git a/zh_TW.Big5/books/porters-handbook/book.xml b/zh_TW.UTF-8/books/porters-handbook/book.xml
index 9dc6a73689..6daa695a85 100644
--- a/zh_TW.Big5/books/porters-handbook/book.xml
+++ b/zh_TW.UTF-8/books/porters-handbook/book.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
<!--
@@ -12,7 +12,7 @@
<authorgroup>
- <author><orgname>FreeBSD p</orgname></author>
+ <author><orgname>FreeBSD 文件計劃</orgname></author>
</authorgroup>
<pubdate>April 2000</pubdate>
@@ -27,7 +27,7 @@
<year>2006</year>
<year>2007</year>
<year>2008</year>
- <holder role="mailto:doc@FreeBSD.org">FreeBSD p</holder>
+ <holder role="mailto:doc@FreeBSD.org">FreeBSD 文件計劃</holder>
</copyright>
&trademarks;
@@ -38,67 +38,67 @@
</info>
<chapter xml:id="why-port">
- <title>l</title>
+ <title>楔子</title>
- <para>XGC FreeBSD RΪ̳OzL FreeBSD Ports Collection
- Ӹ˦Uε{("ports")CpP FreeBSD L@ˡA
- o ports DnӦ۳\hӤuVOGAҥHb\ŪoɡA
- аȥPbߡC</para>
+ <para>幾乎每個 FreeBSD 愛用者都是透過 FreeBSD Ports Collection
+ 來裝各式應用程式("ports")。如同 FreeBSD 的其他部分一樣,
+ 這些 ports 都主要來自許多志工的努力成果,所以在閱讀這份文件時,
+ 請務必感恩在心。</para>
- <para>b FreeBSD WACӤHiHs portA
- ΰp port èSH@ܡAiH@@ &mdash;
- oIäݭn commit vANiHӰoƱC</para>
+ <para>在 FreeBSD 上面,每個人都可以提交新的 port,
+ 或假如該 port 並沒有人維護的話,可以自願維護 &mdash;
+ 這點並不需要任何 commit 的權限,就可以來做這件事情。</para>
</chapter>
<chapter xml:id="own-port">
- <title>ۦ楴y port</title>
+ <title>自行打造 port</title>
- <para>A}lۦs@ port Χs@ǿFܡHӦnoI</para>
+ <para>那麼,開始對自行製作 port 或更新有一些興趣了嗎?太好囉!</para>
- <para>UNФ@ǫإ port ɸӪ`NƶCpGOQɯŲ{ port
- A]аѾ\ <xref linkend="port-upgrading"/> C</para>
+ <para>下面將介紹一些建立 port 時該注意的事項。如果是想升級現有的 port
+ ,那麼也請參閱 <xref linkend="port-upgrading"/> 說明。</para>
- <para>]oioOQԲӡAiݭnѦ
- <filename>/usr/ports/Mk/bsd.port.mk</filename> oɬOҦ port
- Makefile ɳ|Ψ쪺C NAOCѤ_ hacking Makefiles
- A]iHǥѥӹ port BMakefile AѡA
- ̭۷ԲӡC ~AYLSw port DA]iH
- &a.ports; oסC</para>
+ <para>因為這份文件可能講得不是十分詳細,可能需要參考
+ <filename>/usr/ports/Mk/bsd.port.mk</filename> 這檔是所有 port 的
+ Makefile 檔都會用到的。 就算你不是每天不斷 hacking Makefiles
+ ,也都可以藉由它來對整個 port 機制、Makefile 更瞭解,
+ 裡面的註釋相當詳細。 此外,若有其他特定 port 的問題,也可以到
+ &a.ports; 來獲得答案。</para>
<note>
- <para>夺ҴΪܼ
- (<varname><replaceable>VAR</replaceable></varname>)A
- u@ǥiH(overridden)Cjܼ(D)q`|gb
- <filename>/usr/ports/Mk/bsd.port.mk</filename> AL]OthC
- Ъ`NGɨëDϥΤ@몺 tab ]wȡAӬOĥ 1 tab 4
- spaceC <application>Emacs</application> P
- <application>Vim</application> ӳ|bJɮɶKŪ]wȡC
- &man.vi.1; &man.ex.1; oӵ{]iH
- <command>:set tabstop=4</command> Hק]wȡC</para>
+ <para>本文內所提及的環境變數
+ (<varname><replaceable>VAR</replaceable></varname>)部份,
+ 只有一些可以替換(overridden)。大部份的環境變數(非全部)通常都會寫在
+ <filename>/usr/ports/Mk/bsd.port.mk</filename> 內,其他的也是差不多。
+ 請注意:該檔並非使用一般的 tab 設定值,而是採用 1 個 tab 等於 4 個
+ space。 <application>Emacs</application> 與
+ <application>Vim</application> 應該都會在載入該檔時順便讀取相關設定值。
+ &man.vi.1; 及 &man.ex.1; 這兩個程式也都可以打
+ <command>:set tabstop=4</command> 以修改設定值。</para>
</note>
</chapter>
<chapter xml:id="quick-porting">
- <title>y Port ֳtWg</title>
+ <title>打造 Port 快速上手篇</title>
- <para>`DnЦpӧֳty portAMӡA
- ܦhɭԳoǤeäOܰΡAij\Ū󤤧`aC</para>
+ <para>本節主要介紹如何來快速打造 port,然而,
+ 很多時候這些內容並不是很夠用,建議閱讀本文件中更深奧的地方。</para>
- <para>oε{l{XY(tarball)Aç⥦
- <varname>DISTDIR</varname>Aw]|ӬO
- <filename>/usr/ports/distfiles</filename>C</para>
+ <para>首先取得該應用程式的原始程式碼壓縮檔(tarball),並把它放到
+ <varname>DISTDIR</varname>,預設路徑應該是
+ <filename>/usr/ports/distfiles</filename>。</para>
<note>
- <para>UҤlAO]äݭnAקε{lXANiHb
- FreeBSD WsĶ\Fpٻݭnt~ק~ন\sĶܡA
- аѦҤU@C</para>
+ <para>下面的例子,是假設並不需要再修改該應用程式的原始碼,就可以在
+ FreeBSD 上編譯成功的;假如還需要另外修改才能成功編譯的話,
+ 那麼請參考下一章的說明。</para>
</note>
<sect1 xml:id="porting-makefile">
- <title>sg <filename>Makefile</filename></title>
+ <title>編寫 <filename>Makefile</filename></title>
- <para>²檺 <filename>Makefile</filename> jOoˡG</para>
+ <para>最簡單的 <filename>Makefile</filename> 大概是像這樣:</para>
<programlisting># New ports collection makefile for: oneko
# Date created: 5 December 1994
@@ -121,39 +121,39 @@ USE_IMAKE= yes
.include &lt;bsd.port.mk&gt;</programlisting>
- <para>AjPNOoˡAݬݧAwgⲤh֤FOH
- ݨ <literal>&dollar;FreeBSD&dollar;</literal> o@檺ܡAOQӦh
- AO RCS ID γ~A port iJ port tree ɡA
- CVS N|۰ഫroC oIӸ`AiHѾ\ <link linkend="porting-samplem">sample Makefile</link> `C</para>
+ <para>嗯,大致就是這樣,看看你已經領略多少了呢?
+ 看到 <literal>&dollar;FreeBSD&dollar;</literal> 這一行的話,別想太多
+ ,它是 RCS ID 用途,當該 port 正式進入 port tree 時,
+ CVS 就會自動轉換為相關字串囉。 有關這點的細節部份,可以參閱 <link linkend="porting-samplem">sample Makefile</link> 章節。</para>
</sect1>
<sect1 xml:id="porting-desc">
- <title>gӳn骺</title>
+ <title>撰寫該軟體的說明檔</title>
- <para>L׬O_A[u packageA 2 ɮ׬O port (Slave
- porth@w)nƪC o 2 ɤOO
- <filename>pkg-descr</filename> ɤ <filename>pkg-plist</filename>
- ɡC oɮɦWe <filename>pkg-</filename>
- HLɮװϧOC</para>
+ <para>無論是否打算再加工做成 package,有 2 個檔案是任何實體 port (Slave
+ port則不一定)都必須要具備的。 這 2 個檔分別是
+ <filename>pkg-descr</filename> 檔及 <filename>pkg-plist</filename>
+ 檔。 這兩個檔案檔名前面都有 <filename>pkg-</filename>
+ 以跟其他檔案做區別。</para>
<sect2>
<title><filename>pkg-descr</filename></title>
- <para>oO port ԲӻɡAХΤ@qδXqrӻ port
- @ΡAêW WWW }(Y)C</para>
+ <para>這是此 port 的詳細說明檔,請用一段或幾段文字來說明該 port
+ 的作用,並附上 WWW 網址(若有的話)。</para>
<note>
- <para>Ъ`NAoɵDuӳn骺UvάOupsĶBϥθ
- port vC YOqӳn骺 <filename>README</filename>
- manpage ƻsLӪܡAЪ`NA]̳q`goӸԲӡB
- 榡SO(p manpage |۰ʽվť)A
- оqקKoǤصαĥίS榡CYӳn馳x誩ܡA
- ЦbCXӡC CӺ}Х <literal>WWW:</literal> @}YA
- oˤlu{N|۰ʳBzC</para>
+ <para>請注意,這檔絕非「該軟體的說明手冊」或是「如何編譯、使用該
+ port 的說明」。 若是從該軟體的 <filename>README</filename>
+ 或 manpage 直接複製過來的話,請注意,因為它們通常都寫得太詳細、
+ 格式較特別(比如 manpage 會自動調整空白),
+ 請儘量避免這些冗長贅詞或採用特殊格式。若該軟體有官方版首頁的話,
+ 請在此列出來。 每個網址請用 <literal>WWW:</literal> 作為開頭,
+ 這樣子相關工具程式就會自動處理完畢。</para>
</note>
- <para> port <filename>pkg-descr</filename> eAjPpUҤl
- G</para>
+ <para>該 port 的 <filename>pkg-descr</filename> 內容,大致如下面例子
+ :</para>
<programlisting>This is a port of oneko, in which a cat chases a poor mouse all over
the screen.
@@ -166,23 +166,23 @@ WWW: http://www.oneko.org/</programlisting>
<sect2>
<title><filename>pkg-plist</filename></title>
- <para>oO port ҷ|˪ҦɮײMAt~] package
- |ѳoMҲ͡A]]Q٬ypacking list
- (]M)zC H <literal>${PREFIX}</literal> IA
- ӥά۹|ܡC(<literal>${PREFIX}</literal> q`O
- <filename>/usr/local</filename> <filename>/usr/X11R6</filename>)
- OpGӵ{w man page ܡAhnH
- <varname>MAN<replaceable>n</replaceable>=</varname> 覡gb
- <filename>Makefile</filename> ACb
- <filename>pkg-plist</filename> @C
- FCXɮץH~A]n port ҷ|إߪؿ]CihA
- 覡ءG@جOgb <filename>pkg-plist</filename> 覡A
- pG<literal>@dirrm</literal>C ܩt~@ؤ覡AhOgb
- <filename>Makefile</filename> ApG
- <literal>PLIST_FILES=</literal> 覡C</para>
+ <para>這是該 port 所會裝的所有檔案清單,另外因為 package
+ 會由這清單所產生,因此也被稱為『packing list
+ (打包清單)』。 以 <literal>${PREFIX}</literal> 為基準點,
+ 而用相對路徑表示。(<literal>${PREFIX}</literal> 通常是
+ <filename>/usr/local</filename> 或 <filename>/usr/X11R6</filename>)
+ 但是如果該程式有安裝 man page 的話,則要以類似
+ <varname>MAN<replaceable>n</replaceable>=</varname> 的方式寫在
+ <filename>Makefile</filename> 內,不能列在
+ <filename>pkg-plist</filename> 哦。
+ 除了列出檔案以外,也要把該 port 所會建立的目錄也列進去,
+ 方式有兩種:一種是寫在 <filename>pkg-plist</filename> 內的方式,
+ 比如:<literal>@dirrm</literal>。 至於另外一種方式,則是寫在
+ <filename>Makefile</filename> 內,比如:
+ <literal>PLIST_FILES=</literal> 之類的方式。</para>
- <para> port <filename>pkg-plist</filename> eA
- jPpUҤl:</para>
+ <para>該 port 的 <filename>pkg-plist</filename> 內容,
+ 大致如下面例子:</para>
<programlisting>bin/oneko
lib/X11/app-defaults/Oneko
@@ -191,28 +191,28 @@ lib/X11/oneko/cat2.xpm
lib/X11/oneko/mouse.xpm
@dirrm lib/X11/oneko</programlisting>
- <para> packing list 譱AiHѾ\ &man.pkg.create.1; |Ը
- C</para>
+ <para>關於 packing list 方面,可以參閱 &man.pkg.create.1; 會有詳解
+ 。</para>
<note>
- <para>ijM椺ɦWA̷Ӧrǧ@ƧǡAUnɯŮɡA
- |MBKӧsoMC </para>
+ <para>建議清單內的檔名,依照字母順序作排序,那麼下次要升級時,
+ 會比較清楚、方便來更新這份清單。 </para>
</note>
<note>
- <para>ʥͳoMbӭWFCרY port |ˤ@jɮתܡA
- Цh <link linkend="plist-autoplist">۰ʲ packing
- list</link> |ٮɬ٤OC</para>
+ <para>手動生這份清單實在太苦了。尤其若該 port 會裝一大堆檔案的話,
+ 請多善用 <link linkend="plist-autoplist">自動產生 packing
+ list</link> 會比較省時省力唷。</para>
</note>
- <para>ub@رpUiHٲΥ <filename>pkg-plist</filename>
- ɡG Yw˪ port ۷¡Auˤ@ɮסA
- HγbP@ؿUܡAiHb <filename>Makefile</filename>
- <varname>PLIST_FILES</varname>
- <varname>PLIST_DIRS</varname> ӨNC
- pAiHbWz <filename>oneko</filename> port W
- <filename>pkg-plist</filename> Aӥuݦb
- <filename>Makefile</filename> [JUCXG</para>
+ <para>只有在一種情況下可以省略不用生 <filename>pkg-plist</filename>
+ 檔: 若安裝的 port 相當單純,只有裝一些檔案,
+ 以及都在同一目錄下的話,那麼可以在 <filename>Makefile</filename>
+ 內改用 <varname>PLIST_FILES</varname> 及
+ <varname>PLIST_DIRS</varname> 來取代。
+ 比如,可以在上述的 <filename>oneko</filename> port 內不必附上
+ <filename>pkg-plist</filename> ,而只需在
+ <filename>Makefile</filename> 內加入下列幾行:</para>
<programlisting>PLIST_FILES= bin/oneko \
lib/X11/app-defaults/Oneko \
@@ -221,66 +221,66 @@ lib/X11/oneko/mouse.xpm
lib/X11/oneko/mouse.xpm
PLIST_DIRS= lib/X11/oneko</programlisting>
- <para>MAY port õLw˦ݪؿܡAN]
- <varname>PLIST_DIRS</varname> oC</para>
+ <para>當然,若該 port 並無安裝自屬的目錄的話,就不必設
+ <varname>PLIST_DIRS</varname> 囉。</para>
- <para>MӡAϥ <varname>PLIST_FILES</varname>B
- <varname>PLIST_DIRS</varname> OIXNG
- ϥ &man.pkg.create.1; һ command sequencesC
- ]Ao۶ȾAΩ²檺 port AH²Ƹ port @kC
- ~Ao٦@ӦnBGiH ports collection ɮ`ơC
- ҥHAbҼ{O_@wn <filename>pkg-plist</filename> eA
- iHruoӴN׬ݬݡC</para>
+ <para>然而,使用 <varname>PLIST_FILES</varname>、
+ <varname>PLIST_DIRS</varname> 是必須付出代價:
+ 不能使用 &man.pkg.create.1; 內所說的 command sequences。
+ 因此,這招僅適用於較簡單的 port ,以及簡化該 port 的作法。
+ 此外,這招還有一個好處:可以減少 ports collection 的整體檔案總數。
+ 所以,在考慮是否一定要用 <filename>pkg-plist</filename> 之前,
+ 可以先斟酌這個替代方案看看。</para>
- <para>᭱|ШpB <filename>pkg-plist</filename>B
- <varname>PLIST_FILES</varname> oǧޥH] <link linkend="plist">p</link>C</para>
+ <para>後面會介紹到如何運用 <filename>pkg-plist</filename>、
+ <varname>PLIST_FILES</varname> 這些技巧以因應 <link linkend="plist">更複雜的狀況</link>。</para>
</sect2>
</sect1>
<sect1 xml:id="porting-checksum">
- <title> checksum γ~ distinfo </title>
+ <title>產生 checksum 用途的 distinfo 檔</title>
- <para>uny<command>make makesum</command>zNnFA
- UӴN|۰ʲͬ۹ <filename>distinfo</filename> ɤF
- C</para>
+ <para>只要打『<command>make makesum</command>』就好了,
+ 接下來就會自動產生相對應的 <filename>distinfo</filename> 檔了唷
+ 。</para>
- <para>YUӪɮסA checksum |g`ܧA
- ӧA]ܽT{ҧ쪺ӷOTL~ܡA
- (pGӷOЩάOCѦ۰ʲͪ)AiH]wɮ׬
- <varname>IGNOREFILES</varname> C p@ӡAb
- <command>make makesum</command> ɭԴN|p⨺ɮת checksum
- AӦ۰ʧאּ <literal>IGNORE</literal> oC</para>
+ <para>若抓下來的檔案,它的 checksum 會經常變更,
+ 而你也很確認所抓的來源是正確無誤的話,
+ (比如:來源是光碟或是每天自動產生的文件),那麼可以設定那些檔案為
+ <varname>IGNOREFILES</varname> 。 如此一來,在打
+ <command>make makesum</command> 的時候就不會計算那些檔案的 checksum
+ ,而自動改為 <literal>IGNORE</literal> 囉。</para>
</sect1>
<sect1 xml:id="porting-testing">
- <title> port O_Bi</title>
+ <title>檢驗 port 是否完整、可行</title>
- <para>UӡAO_ŦX port CWhA]A] port
- packageC HUXӻݭnT{naG</para>
+ <para>接下來,必須檢驗是否有符合 port 的遊戲規則,包括打包該 port
+ 為 package。 以下有幾個需要確認的重要地方:</para>
<itemizedlist>
<listitem>
- <para>Y port S˪FAnCb <filename>pkg-plist</filename>
- C</para>
+ <para>若該 port 沒裝的東西,不要列在 <filename>pkg-plist</filename>
+ 內。</para>
</listitem>
<listitem>
- <para>Y port ˪FAаȥCb
- <filename>pkg-plist</filename> C</para>
+ <para>若該 port 有裝的東西,請務必列在
+ <filename>pkg-plist</filename> 內。</para>
</listitem>
<listitem>
- <para> port iH <command>reinstall</command> ӭsw
- C</para>
+ <para>該 port 可以用 <command>reinstall</command> 來重新安裝
+ 。</para>
</listitem>
<listitem>
- <para> port bATwi <link linkend="plist-cleaning">cleans up</link>C</para>
+ <para>該 port 在移除之後,確定都可 <link linkend="plist-cleaning">cleans up</link>。</para>
</listitem>
</itemizedlist>
<procedure>
- <title>ijըBJǡG</title>
+ <title>建議的測試步驟順序:</title>
<step>
<para><command>make install</command></para>
@@ -312,73 +312,73 @@ PLIST_DIRS= lib/X11/oneko</programlisting>
</step>
</procedure>
- <para>T{b <buildtarget>package</buildtarget> M
- <buildtarget>deinstall</buildtarget> oӶqS~TX{C
- ĤTBJAˬd@UO_Ҹ˪ɮסBؿC ~A
- ĥ|BJA]ˬd@UH package ˪ӳnAO_ॿ`B@
- C</para>
+ <para>確認在 <buildtarget>package</buildtarget> 和
+ <buildtarget>deinstall</buildtarget> 這兩個階段都沒有任何錯誤訊息出現。
+ 完成第三步驟之後,檢查一下是否所裝的檔案、目錄都有移除完畢。 此外,
+ 第四步驟完成後,也檢查一下以 package 裝的該軟體,是否都能正常運作
+ 。</para>
- <para>̩PK۰ʤ覡NOzL
- <application>ports tinderbox</application>C |إ
- <literal>jails</literal> ú޲zAHKziHդWzҦBJA
- Ӥ|uvTz@~tΡC ԱаѦ
- <filename>ports/ports-mgmt/tinderbox</filename>C</para>
+ <para>最周密的自動方式就是透過裝
+ <application>ports tinderbox</application>。 它會建立
+ <literal>jails</literal> 並管理之,以便您可以測試上述所有步驟,
+ 而不會真正影響您本身的作業系統。 詳情請參考
+ <filename>ports/ports-mgmt/tinderbox</filename>。</para>
</sect1>
<sect1 xml:id="porting-portlint">
- <title>H <command>portlint</command> ӧ@</title>
+ <title>以 <command>portlint</command> 來作檢驗</title>
- <para>Х <command>portlint</command> ˬd port
- O_`WzCWhC o
- <package>ports-mgmt/portlint</package>AO
- ports collection 䤤@ӮMC DniHΨ <link linkend="porting-samplem">Makefile</link> eO_TH <link linkend="porting-pkgname">package</link> O_TRWC</para>
+ <para>請用 <command>portlint</command> 來檢查該 port
+ 是否有遵循上述遊戲規則。 說到這
+ <package>ports-mgmt/portlint</package>,它是
+ ports collection 的其中一個套件。 它主要可以用來檢驗 <link linkend="porting-samplem">Makefile</link> 內容是否正確以及 <link linkend="porting-pkgname">package</link> 是否有正確命名。</para>
</sect1>
<sect1 xml:id="porting-submitting">
- <title>(Submit) port</title>
+ <title>提交(Submit) port</title>
- <para>AнT{O_A <link linkend="porting-dads">DOs and DON'Ts</link> ӳC</para>
+ <para>首先,請確認是否有瞭解 <link linkend="porting-dads">DOs and DON'Ts</link> 該章部分。</para>
- <para>{bAܰש󥴳yX port oAߤ@ѤUnNO⥦
- FreeBSD ports tree A~CӤHɨϥγo portC Х
- <filename>work</filename> ؿɦWO
- <filename>pkgname.tgz</filename> package iH屼C ۡA
- un <command>shar `find port_dir`</command> Ӳ shar 榡A
- ðtX &man.send-pr.1; {HXhC(&man.send-pr.1;
- iHѾ\ <link xlink:href="&url.articles.contributing;/contrib-how.html#CONTRIB-GENERAL">
- ~iMNo</link>)</para>
+ <para>現在你很高興終於打造出 port 來囉,唯一剩下要做的就是把它正式放到
+ FreeBSD ports tree 內,才能讓每個人都能分享使用這個 port。 請先拿掉
+ <filename>work</filename> 目錄或檔名像是
+ <filename>pkgname.tgz</filename> 的 package 可以砍掉。 接著,
+ 只要用 <command>shar `find port_dir`</command> 來產生 shar 格式,
+ 並配合 &man.send-pr.1; 程式以提交出去。(&man.send-pr.1;
+ 的部分可以參閱 <link xlink:href="&url.articles.contributing;/contrib-how.html#CONTRIB-GENERAL">
+ 錯誤報告和意見發表</link>)</para>
- <para>Oobg PR ɡy(Category)z <literal>ports</literal>A
- ٦y(Class)z <literal>change-request</literal>
- (dUO̶̦a PR yConfidential(K)z] yesI)A
- ~byyz(<quote>Description</quote>)z
- gWӵ{²仡A shar ɫhbyץ(<quote>Fix</quote>)
- z줺C</para>
+ <para>記得在填寫 PR 時『分類(Category)』選 <literal>ports</literal>,
+ 還有『種類(Class)』填 <literal>change-request</literal>
+ (千萬別傻傻地把該 PR 的『Confidential(機密)』設為 yes!),
+ 此外在『描述(<quote>Description</quote>)』
+ 那邊寫上該程式的簡潔說明,而 shar 檔則附在『修正(<quote>Fix</quote>)
+ 』欄位內。</para>
<note>
- <para>Y Synopsis Myz PR IܡA|Ӭy{󬰶ZC
- new ports ܡAڭ̲ߺDΡG
+ <para>若 Synopsis 欄清楚描述該 PR 重點的話,那麼會讓整個流程更為順暢。
+ new ports 的話,我們習慣用:
<quote>New port: &lt;category&gt;/&lt;portname&gt;
- &lt; port ²&gt;</quote> Aӧs port ܡAhO
+ &lt;該 port 的簡介&gt;</quote> ,而更新 port 的話,則是
<quote>Update port: &lt;category&gt;/&lt;portname&gt;
- &lt; update ²&gt;</quote>C
- YA]ĥγo˪榡ܡA|Qz|N|VoC</para>
+ &lt;本次 update 的簡介&gt;</quote>。
+ 若你也採用這樣的格式的話,那麼會被受理的機會就會越高囉。</para>
</note>
- <para>Ajդ@IG<emphasis>Wl source distfile
- A]NO <filename>work</filename> ؿC PɡA]W
- <command>make package</command> ɲͪ package</emphasis>C</para>
+ <para>再次強調一點:<emphasis>不必附上原始 source 的 distfile
+ ,也就是 <filename>work</filename> 目錄。 同時,也不必附上
+ <command>make package</command> 時產生的 package</emphasis>。</para>
- <para>eX port AЭ@ߵԨέC
- ɭԥiݭnӴXѩδXӤɶA~|b FreeBSD ports tree
- WX{C ~AHɥiHd\ <link xlink:href="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?category=ports">
- committed to FreeBSD port</link> CC</para>
+ <para>送出 port 之後,請耐心等候佳音。
+ 有時候可能需要等個幾天或幾個月時間,才會在 FreeBSD ports tree
+ 上正式出現。 此外,隨時可以查閱 <link xlink:href="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?category=ports">
+ 等待 committed to FreeBSD 的 port</link> 列表。</para>
- <para>@ڭ̶}lBzAeӪ port ApG@ǷNݭnqܡA
- | feedback AA
- TwSDAN| port tree oI
- AjW|QOb <link xlink:href="&url.articles.contributors;/contrib-additional.html">Additional FreeBSD Contributors</link>
- CWAHΨLɮסCť_ӡA઺OܡIH <!-- smiley
+ <para>一旦我們開始處理你送來的 port 之後,如果有一些意見需要溝通的話,
+ 那麼會先 feedback 給你,
+ 之後確定都沒問題,就會放到 port tree 內囉!
+ 你的大名會被記在 <link xlink:href="&url.articles.contributors;/contrib-additional.html">Additional FreeBSD Contributors</link>
+ 列表上,以及其他檔案。聽起來,挺不賴的不是嗎!? <!-- smiley
-->:-)</para>
</sect1>
</chapter>
@@ -386,111 +386,111 @@ PLIST_DIRS= lib/X11/oneko</programlisting>
<chapter xml:id="slow">
<title>Slow Porting</title>
- <para>Ok...ƹWäӥio²Aport
- 譱iݭn@ǭק~ॿ`ϥΡC ]A
- `N@B@BӤЦpקW@˥H`ϥΡC</para>
+ <para>Ok...事實上並不太可能這麼簡單,port
+ 方面可能需要作些修改才能正常使用。 因此,
+ 本節將一步一步來介紹如何修改上一章的樣本以正常使用。</para>
<sect1 xml:id="slow-work">
<title>How things work</title>
- <para>AФ@UbAҧ@ port ؿ <command>make</command>
- ɡAҷ|@ǨƱǧaC
- AiHt}@Ӭ <filename>bsd.port.mk</filename>
- eAHKAѧڭ̤UbC</para>
+ <para>首先,先介紹一下在你所作的 port 目錄內打 <command>make</command>
+ 時,所會作哪些事情的順序吧。
+ 你可以另開一窗來看 <filename>bsd.port.mk</filename>
+ 內容,以便瞭解我們下面在講什麼。</para>
- <para>OӾ߬O_
- <filename>bsd.port.mk</filename> bԣAܦhH٨Sݧ...
+ <para>但別太擔心是否完全看懂
+ <filename>bsd.port.mk</filename> 在做啥,很多人都還沒完全看完...
<!-- smiley --><emphasis>:-&gt;</emphasis></para>
<procedure>
<step>
- <para>Ai <buildtarget>fetch</buildtarget> qC
- <buildtarget>fetch</buildtarget> OT{ tarball ɦSwb
- <varname>DISTDIR</varname> FHY <buildtarget>fetch</buildtarget>
- b <varname>DISTDIR</varname> 䤣쪺ܡA|jM Makefile
- <varname>MASTER_SITES</varname> URL
- AΪ̬OD FTP Mƥ distfiles ؿ <uri xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/">ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/</uri>
- C ]䤣쪺ܡAOW Internet ܡA|յۥ
- <varname>FETCH</varname> ӧҫwɮסC
- 줧A|ɮצs <varname>DISTDIR</varname>
- HK}lϥΩΤBΡC</para>
+ <para>首先,進行 <buildtarget>fetch</buildtarget> 階段。
+ <buildtarget>fetch</buildtarget> 是確認 tarball 檔有沒有已在
+ <varname>DISTDIR</varname> 內了?若 <buildtarget>fetch</buildtarget>
+ 在 <varname>DISTDIR</varname> 找不到的話,它會搜尋 Makefile
+ 內的 <varname>MASTER_SITES</varname> URL
+ ,或者是主 FTP 站專門放備份 distfiles 的目錄 <uri xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/">ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/</uri>
+ 。 假設都找不到的話,但是網路有接上 Internet 的話,它會試著用
+ <varname>FETCH</varname> 來抓所指定的檔案。
+ 抓到之後,它會把檔案存到 <varname>DISTDIR</varname>
+ 以便開始使用或日後運用。</para>
</step>
<step>
- <para>䦸Ai <buildtarget>extract</buildtarget> qA|q
- <varname>DISTDIR</varname> X port һݪɮ(q`O gzip
- 榡 tarball)AMY <varname>WRKDIR</varname>
- ҳ]w{ɥؿW(w]O <filename>work</filename> ؿ)
- C</para>
+ <para>其次,進行 <buildtarget>extract</buildtarget> 階段,它會從
+ <varname>DISTDIR</varname> 內找出該 port 所需的檔案(通常是 gzip
+ 格式的 tarball),然後解壓縮到 <varname>WRKDIR</varname>
+ 所設定的臨時目錄名稱(預設是 <filename>work</filename> 目錄)內
+ 。</para>
</step>
<step>
- <para>Ai <buildtarget>patch</buildtarget> qA
- @}l|M <varname>PATCHFILES</varname> ҫw patch
- ɡC ۬O <varname>PATCHDIR</varname>(w]O
- <filename>files</filename> lؿ) ɦW
+ <para>之後,進行 <buildtarget>patch</buildtarget> 階段,
+ 一開始會先套用 <varname>PATCHFILES</varname> 所指定的任何 patch
+ 檔。 接著是 <varname>PATCHDIR</varname>(預設是
+ <filename>files</filename> 子目錄) 內的檔名為
<filename>patch-*</filename>
- ɮסA|HrǦӳv@M patchC</para>
+ 之類的檔案,會以字母順序而逐一套用 patch。</para>
</step>
<step>
- <para>۬O <buildtarget>configure</buildtarget> qAiH port
- ӧ@UؤP]wHվApG</para>
+ <para>接著是 <buildtarget>configure</buildtarget> 階段,可以照 port
+ 的類型來作各種不同設定以調整,比如:</para>
<orderedlist>
<listitem>
- <para>Y <filename>scripts/configure</filename> ܡA
- N|]̭]wC</para>
+ <para>若有放 <filename>scripts/configure</filename> 的話,
+ 那麼就會跑裡面的設定。</para>
</listitem>
<listitem>
- <para>Y] <varname>HAS_CONFIGURE</varname> άO
- <varname>GNU_CONFIGURE</varname> ܡAN|]
+ <para>若有設 <varname>HAS_CONFIGURE</varname> 或是
+ <varname>GNU_CONFIGURE</varname> 的話,那麼就會跑
<filename>WRKSRC/configure</filename></para>
</listitem>
<listitem>
- <para>Y] <varname>USE_IMAKE</varname> ܡAN|]
- <varname>XMKMF</varname> (w]O <command>xmkmf
- -a</command>) C</para>
+ <para>若有設 <varname>USE_IMAKE</varname> 的話,那麼就會跑
+ <varname>XMKMF</varname> (預設是 <command>xmkmf
+ -a</command>) 。</para>
</listitem>
</orderedlist>
</step>
<step>
- <para>̫O <buildtarget>build</buildtarget> qA|b
- port working directory( <varname>WRKSRC</varname> ҳ]w)
- }lsĶC Y] <varname>USE_GMAKE</varname> ܡA
- N| GNU <command>make</command> ӽsĶA
- _hNΨtΥ <command>make</command> ӽsĶC</para>
+ <para>最後是 <buildtarget>build</buildtarget> 階段,它會在該
+ port 的 working directory(由 <varname>WRKSRC</varname> 所設定)
+ 內開始編譯。 若有設 <varname>USE_GMAKE</varname> 的話,
+ 那麼就會改用 GNU <command>make</command> 來編譯,
+ 否則就用系統本身的 <command>make</command> 來編譯。</para>
</step>
</procedure>
- <para>WO <command>make</command> ɪw]qC
- ~A٥iH]wUqeBn@ƱGzLwq
- <buildtarget>pre-<replaceable>something</replaceable></buildtarget>
- <buildtarget>post-<replaceable>something</replaceable></buildtarget>A
- Ϊ̧oɦW script <filename>scripts</filename> lؿhA
- oˤl̴N|bUw]qeBioC</para>
+ <para>上面講的都是打 <command>make</command> 時的預設階段。
+ 此外,還可以設定各階段之前、之後要作的事情:透過定義
+ <buildtarget>pre-<replaceable>something</replaceable></buildtarget> 或
+ <buildtarget>post-<replaceable>something</replaceable></buildtarget>,
+ 或者把這些檔名的 script 丟到 <filename>scripts</filename> 子目錄去,
+ 這樣子它們就會在各預設階段的之前、之後進行囉。</para>
- <para>|ҨӻAYb <filename>Makefile</filename> ]w
- <buildtarget>post-extract</buildtarget>AӥBb
- <filename>scripts</filename> lؿS
- <filename>pre-build</filename> ɪܡAb@YAN|}l
- <buildtarget>post-extract</buildtarget> qHiY᪺ʧ@A
- Ӧb] build qeAN| <filename>pre-build</filename>
- o script @dzơC q`²檺קʧ@Aijb
- <filename>Makefile</filename> NnFA
- ]o˷|K[Woǭ쥻SqAPɤ]KLHU
- C</para>
+ <para>舉例來說,若在 <filename>Makefile</filename> 內設定
+ <buildtarget>post-extract</buildtarget>,而且在
+ <filename>scripts</filename> 子目錄內又有
+ <filename>pre-build</filename> 檔的話,那麼在作解壓縮之後,就會開始
+ <buildtarget>post-extract</buildtarget> 階段以進行解壓縮後的後續動作,
+ 而在跑 build 階段之前,就會先執行 <filename>pre-build</filename>
+ 這隻 script 作先期準備。 通常較簡單的修改動作,建議直接放在
+ <filename>Makefile</filename> 內就好了,
+ 因為這樣會比較方便加上這些原本沒有的階段,同時也方便他人協助除錯
+ 。</para>
- <para>w]Uqʧ@O <filename>bsd.port.mk</filename>
+ <para>預設的各階段動作都是照 <filename>bsd.port.mk</filename> 內的
<buildtarget>do-<replaceable>something</replaceable></buildtarget>
- ҩwqC |ҡG<buildtarget>do-extract</buildtarget>
- NOwqɮ׸YC
- Yw]覡ıoܡAiHb port
- <filename>Makefile</filename> swqC</para>
+ 之類所定義的。 舉例:<buildtarget>do-extract</buildtarget>
+ 就是定義怎麼把檔案解壓縮的。
+ 若對預設方式覺得不妥的話,都可以在該 port 的
+ <filename>Makefile</filename> 重新定義。</para>
<note>
<para>The <quote>main</quote> targets (e.g.,
@@ -503,209 +503,209 @@ PLIST_DIRS= lib/X11/oneko</programlisting>
the way <buildtarget>extract</buildtarget> operates!</para>
</note>
- <para>{bAAwgD <command>make</command> 쩳|@ǤoA
- Uӷ|ЧAp@󧹬 portC</para>
+ <para>現在,你已經知道打 <command>make</command> 到底會作些什麼事囉,
+ 接下來會教你如何作更完美的 port。</para>
</sect1>
<sect1 xml:id="slow-sources">
- <title>ol source </title>
+ <title>取得原始的 source 檔</title>
- <para>ol source (q`ɦWO
+ <para>取得原始的 source 檔(通常檔名是
<filename>foo.tar.gz</filename>
- <filename>foo.tar.Z</filename>
- Y)AM|UӪɮשb <varname>DISTDIR</varname>
- C OoG쪺ɭԡAqϥΡyӳnDnzWӷ
- AHTOɮצġBiHC</para>
+ 或 <filename>foo.tar.Z</filename>
+ 之類的壓縮檔),然後會把抓下來的檔案放在 <varname>DISTDIR</varname>
+ 內。 記得:抓的時候,儘量使用『該軟體主要的正式網站』上面的來源檔
+ ,以確保檔案有效、可信。</para>
- <para>ݭn] <varname>MASTER_SITES</varname> Hwlɮ׬ObBC
- }b <filename>bsd.sites.mk</filename>
- @ǤKtOiHϥΡC кɥihιoǺ}ܼơA
- HקKP˪@}ƫܦhX{b port tree C
- _hAoǺ}un@ܪܡAN|@ port LC</para>
+ <para>需要設 <varname>MASTER_SITES</varname> 以指定原始檔案是放在何處。
+ 相關網址在 <filename>bsd.sites.mk</filename>
+ 內有一些方便的速記表可以使用。 請盡可能多用對應這些網址的變數,
+ 以避免同樣的一堆網址有重複很多次出現在 port tree 內。
+ 否則,這些網址只要一有改變的話,那麼就會成為維護 port 的夢魘。</para>
- <para>pGɨèSb} FTP κ(HTTP)WA
- Ϊ̸ɨëD@зǮ榡ܡA
- iHҼ{ƻsɡAMAixBiH FTP κ(HTTP)
- WApGAۤvŶC</para>
+ <para>如果該檔並沒有放在公開的 FTP 站或網站(HTTP)上,
+ 或者該檔並非一般標準格式的話,
+ 那麼可以考慮複製該檔,然後放到你可掌握、可信任的 FTP 站或網站(HTTP)
+ 上,比如:你自己的網頁空間。</para>
- <para>Y䤣a(KBiH)өɮתܡA
- iH <quote>house(ȩ)</quote> b
- <systemitem>ftp.FreeBSD.org</systemitem> W committer ݪŶF
- MӡAoO̤zQѪkC
- ɮ׭n committer <systemitem>freefall</systemitem> W
- <filename>~/public_distfiles/</filename> ؿ~iHC
- лPU commit A port committer pôA
- HKɮשLؿC
- committer Pɤ]| <varname>MASTER_SITES</varname> ]
- <varname>MASTER_SITE_LOCAL</varname>AåB
- <varname>MASTER_SITE_SUBDIR</varname> ]Lۤv
- <systemitem>freefall</systemitem> bW١C</para>
+ <para>若找不到地方(方便、可信任)來放檔案的話,
+ 那麼可以 <quote>house(暫放)</quote> 在
+ <systemitem>ftp.FreeBSD.org</systemitem> 上的 committer 自屬空間內;
+ 然而,這是最不理想的解法。
+ 檔案要放到該 committer 的 <systemitem>freefall</systemitem> 上的
+ <filename>~/public_distfiles/</filename> 目錄內才可以。
+ 請與協助 commit 你的 port 的那位 committer 聯繫,
+ 以便把檔案放到他的目錄內。
+ 那位 committer 同時也會把 <varname>MASTER_SITES</varname> 設為
+ <varname>MASTER_SITE_LOCAL</varname>,並且把
+ <varname>MASTER_SITE_SUBDIR</varname> 設為他自己的
+ <systemitem>freefall</systemitem> 帳號名稱。</para>
- <para>Y port lɥ]|g`]A@̫oSsܡA
- ЦҼ{ɧۤvŶAåBۤvŶC
- <varname>MASTER_SITES</varname> Ĥ@C
- Ϊ̽лP@pôGХLno˰(_]P˪ɮ)Fp@ӡA
- ~Uإߤ@w{ת source code C
- ɮץt~ƻs@ݺŶܡAiĨϥΪ̷|o
- <errorname>checksum mismatch(ɮ׸gˬdD)</errorname>
- ~TA]iCڭ FTP @̪u@qC~AY port
- ɮ׶Ȧ@ӥDn}A
- ijGЦbݺWWƥɡAíק
- <varname>MASTER_SITES</varname> A}CĤGC</para>
+ <para>若該 port 的原始檔打包會經常重包,但原作者卻沒更新版號的話,
+ 請考慮把該檔改放到自己的網頁空間,並且把自己網頁空間列為
+ <varname>MASTER_SITES</varname> 的第一順位。
+ 或者請與原作者聯繫:請他不要這樣做(不斷重包同樣的檔案);如此一來,
+ 才有助於建立一定程度的 source code 版本控制。
+ 把檔案另外複製一份放到自屬網頁空間的話,不但可有效防止使用者會發生
+ <errorname>checksum mismatch(檔案經檢查有問題)</errorname>
+ 的錯誤訊息,也可降低我們 FTP 站維護者的工作量。此外,若該 port
+ 的檔案僅有一個主要網址,
+ 那麼建議:請在自屬網站上放上備份檔,並修改
+ <varname>MASTER_SITES</varname> 把你的網址列為第二順位。</para>
- <para>Y port ݭn@B~ `patches'(izL Internet U)Aéb
- <varname>DISTDIR</varname> A߳o patch
- ɬO_olɤ@˨ӦۦP@A
- oDZpt~Ѫk(ЬݤU <link linkend="porting-patchfiles">PATCHFILES</link> г)C</para>
+ <para>若該 port 需要一些額外 `patches'(可透過 Internet 下載),並放在
+ <varname>DISTDIR</varname> 內,不必擔心這些 patch
+ 檔是否得都跟原始檔一樣來自同一網站,
+ 這些情況有另外的解法(請看下面的 <link linkend="porting-patchfiles">PATCHFILES</link> 介紹部分)。</para>
</sect1>
<sect1 xml:id="slow-modifying">
- <title>qy port</title>
+ <title>量身打造 port</title>
- <para>Ѷ}YɡAM}lv@קAϸ port bثeҥΪ FreeBSD
- WoHQsĶC
- ҰCӰʧ@г <emphasis>JӰO</emphasis>A
- p@Ӥ~ਲ਼t۰ʮMγoǭקC
- b port ACʧ@]AGɮתRBW[BקA
- nOos۰ʤƪ script Ϊ patch ɧΦAHQLHMΡC</para>
+ <para>解開壓縮檔,然後開始逐一修改,使該 port 在目前所用的 FreeBSD
+ 版本上得以順利編譯。
+ 所做的每個動作請都 <emphasis>仔細記錄</emphasis>,
+ 如此一來才能迅速自動套用這些修改。
+ 在完成 port 之後,每項動作包括:對於檔案的刪除、增加、修改,
+ 要記得存為自動化的 script 或者 patch 檔形式,以利他人直接套用。</para>
- <para>Y port ݭnϥΪ̪ʡBۭq\ӽsĶBw˪ܡA
- ijݬ Larry Wall g大@
- <application>Configure</application> scripts ӧĪGC
- Ports collection ت@ANOC port qγ̤pŶA
- ӰXn骺 <quote>plug-and-play(YY)</quote>C</para>
+ <para>若該 port 需要使用者的互動、自訂功能來編譯、安裝的話,
+ 那麼建議揣摩看看 Larry Wall 的經典之作
+ <application>Configure</application> scripts 來完成類似效果。
+ Ports collection 的目的之一,就是讓每個 port 儘量用最小空間,
+ 來做出軟體的 <quote>plug-and-play(即插即用)</quote>。</para>
<note>
- <para>DTnA_hAҴ浹 FreeBSD ports collection
- patch ɡB script ɤΨLɮסA|]OHзǪ BSD
- vΦӵoGC</para>
+ <para>除非有明確聲明,否則你所提交給 FreeBSD ports collection 的
+ patch 檔、相關 script 檔及其他檔案,都會假設是以標準的 BSD
+ 版權形式來發佈。</para>
</note>
</sect1>
<sect1 xml:id="slow-patch">
<title>Patching</title>
- <para>b port dzƹL{AsWܧLɮסA
- iHQ &man.diff.1; NoܰʦCXA
- HK &man.patch.1; ϥΡC
- ҦAQMΪ patch өRW
- <filename>patch-*</filename>A䤤
- <replaceable>*</replaceable> ܭn patch ɮת|ɦWW١A
- Ҧp <filename>patch-Imakefile</filename>
- <filename>patch-src-config.h</filename>C
- oɮ׳xsb <varname>PATCHDIR</varname>
- (q`O <filename>files/</filename>Ab䤺ɮ׳|۰ʳQMΡC
- Ҧ patch ɸ|O۹
- <varname>WRKSRC</varname> (q`|N port tarball ̭A
- port ظm]|bo̧)C
- FץMs󶶧QAAקKh patch ץP@ɮ
- (|ҨӻA<filename>patch-file</filename> M
- <filename>patch-file2</filename> Pɧ
- <filename>WRKSRC/foobar.c</filename>)C</para>
+ <para>在 port 的準備過程中,新增或變更過的檔案,
+ 可以利用 &man.diff.1; 將這些變動列出,
+ 以便後續讓 &man.patch.1; 使用。
+ 所有你想套用的 patch 都應該命名為
+ <filename>patch-*</filename>,其中
+ <replaceable>*</replaceable> 表示要 patch 檔案的路徑及檔名名稱,
+ 例如 <filename>patch-Imakefile</filename> 或
+ <filename>patch-src-config.h</filename>。
+ 這些檔案都應該儲存在 <varname>PATCHDIR</varname>
+ (通常是 <filename>files/</filename>,放在其內的檔案都會自動被套用。
+ 所有 patch 檔路徑都是相對於
+ <varname>WRKSRC</varname> (通常會將 port 的 tarball 解壓到裡面,
+ port 的建置也會在這裡完成)。
+ 為了能讓修正和更新更順利,你應該避免多個 patch 修正同一個檔案
+ (舉例來說,<filename>patch-file</filename> 和
+ <filename>patch-file2</filename> 同時更動
+ <filename>WRKSRC/foobar.c</filename>)。</para>
- <para>Хuϥ <literal>[-+._a-zA-Z0-9]</literal> oǦrөRW
- patch ɡAnϥγoǦrH~rC
- dUnNA patch ɩRW <filename>patch-aa</filename> άO
- <filename>patch-ab</filename> W١A
- Шϥθ|MW٬RWC</para>
+ <para>請只使用 <literal>[-+._a-zA-Z0-9]</literal> 這些字元來命名
+ patch 檔,不要使用這些字元以外的字元。
+ 千萬不要將你的 patch 檔命名成 <filename>patch-aa</filename> 或是
+ <filename>patch-ab</filename> 等名稱,
+ 請使用路徑和名稱相關的命名。</para>
- <para>nN RCS riA patch ɡCCVS |boɮװeJ
- ports tree ɭԧ˶ɮפeAӥBbṊs check out
- XӫA|]ɮפety patch ѡC
- RCS rOHr (<literal>&dollar;</literal>) A_ӪA
- q`H <literal>&dollar;Id</literal>
- <literal>&dollar;RCS</literal> }YC</para>
+ <para>不要將 RCS 字串放進你的 patch 檔。CVS 會在這些檔案送入
+ ports tree 的時候弄亂檔案內容,而且在將它們重新 check out
+ 出來後,會因檔案內容的差異造成 patch 失敗。
+ RCS 字串是以錢字號 (<literal>&dollar;</literal>) 括起來的,
+ 通常以 <literal>&dollar;Id</literal> 或
+ <literal>&dollar;RCS</literal> 為開頭。</para>
- <para>AiHϥ &man.diff.1; ft recurse (<option>-r</option>) ﶵ
- Ӳ patch ɡAЦA˵ͥX patch ɡATOAS
- 󤣥nUTb̭CSOO墨Ǹg
- <command>Imake</command> GNU <command>configure</command>
- Ҳͪ <filename>Makefile</filename> ɲ patchA
- OnAo patch ɳӳQRCpAzLק
- <command>configure.in</command> A
- <command>autoconf</command> ӭs
- <command>configure</command>An
- <command>configure</command> patch (o|ƤdI)F
- Щwq <literal>USE_AUTOTOOLS=autoconf:261</literal> ù
- <filename>configure.in</filename> patch ɡC</para>
+ <para>你可以使用 &man.diff.1; 搭配 recurse (<option>-r</option>) 選項
+ 來產生 patch 檔,但請再次檢視產生出的 patch 檔,確保你沒有產生
+ 任何不必要的垃圾資訊在裡面。特別是對那些經由
+ <command>Imake</command> 或 GNU <command>configure</command>
+ 所產生的 <filename>Makefile</filename> 檔產生 patch,
+ 都是不必要的,這類的 patch 檔都應該被刪除。假如你必須透過修改
+ <command>configure.in</command> 再執行
+ <command>autoconf</command> 來重新產生
+ <command>configure</command>,不要對
+ <command>configure</command> 產生 patch 檔 (這往往會長成數千行!);
+ 請定義 <literal>USE_AUTOTOOLS=autoconf:261</literal> 並對
+ <filename>configure.in</filename> 產生 patch 檔。</para>
- <para>оqnLΪ whitespace @קA]b Open Source ɦU
- project |ϥΫܦhۦP code baseAoǥioOĥΤPsƤ覡
- Bcoding styleC Ynչϧܳoǽsƭ檺ܡAФpߡG
- oǥu|O{ҵL\C ~ȷ|y CVS repository ŶOA
- ]|HHXuDpҦbAHΤ뤣Xoq patch 쩳b@
- C</para>
+ <para>請儘量不要對無用的 whitespace 作修改,因為在 Open Source 界各個
+ project 都會使用很多相同的 code base,這些可能卻是採用不同的編排方式
+ 、coding style。 若要試圖改變這些編排風格的話,請小心:
+ 這些只會是徒勞無功的更改。 此外不僅會造成 CVS repository 空間浪費,
+ 也會讓人難以找出真正問題癥結所在,以及分辨不出這段 patch 到底在作什麼
+ 。</para>
- <para>pAR@ɮסAAiHb
- <buildtarget>post-extract</buildtarget> qoơA
- ӤOb patch qC</para>
+ <para>假如你必須刪除一個檔案,那麼你可以在
+ <buildtarget>post-extract</buildtarget> 階段做這件事,
+ 而不是在 patch 階段。</para>
- <para>AiHb port
- <filename>Makefile</filename> ²檺mu@Auݨϥ
- &man.sed.1; in-place mode YiCobu patch @ܼƪȮɬ۷ΡC
- ҦpG</para>
+ <para>你可以直接在 port 的
+ <filename>Makefile</filename> 中完成簡單的置換工作,只需使用
+ &man.sed.1; 的 in-place mode 即可。這在只需 patch 一個變數的值時相當有用。
+ 例如:</para>
<programlisting>post-patch:
@${REINPLACE_CMD} -e 's|for Linux|for FreeBSD|g' ${WRKSRC}/README
@${REINPLACE_CMD} -e 's|-pthread|${PTHREAD_LIBS}|' ${WRKSRC}/configure</programlisting>
- <para>bӳnɡASOOǦb &windows; x}onA
- ɱ`|J@رpANObj source file A
- ϥ CR/LF _Co|vT᪺ patchingBcompiler warningsBH
- scripts execution (䤣 <command>/bin/sh^M</command> p) C
- Fֳtഫ CR/LF LFAiH
- <literal>USE_DOS2UNIX=yes</literal> [ port
- <filename>Makefile</filename> ɤC
- A]iH]wuwwɮװഫG</para>
+ <para>在移植軟體時,特別是那些在 &windows; 平台開發的軟體,
+ 時常會遇到一種情況,就是在大部份的 source file 中,
+ 使用 CR/LF 做為斷行。這會影響往後的 patching、compiler warnings、以及
+ scripts execution (找不到 <command>/bin/sh^M</command> 的情況) 等。
+ 為了快速轉換 CR/LF 為 LF,可以把
+ <literal>USE_DOS2UNIX=yes</literal> 加到 port 的
+ <filename>Makefile</filename> 檔中。
+ 你也可以設定成只針對指定的檔案做轉換:</para>
<programlisting>USE_DOS2UNIX= util.c util.h</programlisting>
- <para>YQnഫҦlؿYOɮסAiHϥ
- <varname>DOS2UNIX_REGEX</varname>C ѼƬO
- <command>find</command> ۮeWFC 榡iѾ\
- &man.re.format.7;C ҫwɦWɮפഫӨAo۷nΡA
- |ҨӻAuʩҦlXӤ binary ɮסG</para>
+ <para>若想要轉換所有子目錄內的某類別檔案,可以使用
+ <varname>DOS2UNIX_REGEX</varname>。 它的參數是
+ <command>find</command> 相容的正規表達式。 相關格式可參閱
+ &man.re.format.7;。 對於所指定副檔名的檔案之轉換而言,這相當好用,
+ 舉例來說,只動所有原始碼部分而不改 binary 檔案:</para>
<programlisting>USE_DOS2UNIX= yes
DOS2UNIX_REGEX= .*\.(c|cpp|h)</programlisting>
</sect1>
<sect1 xml:id="slow-configure">
- <title>]w</title>
+ <title>設定</title>
- <para>NB~ۭqO]tiA
- <filename>configure</filename> script ABNxsb
- <filename>scripts</filename> lƧ̡C pPW쪺A
- A]iHb <filename>Makefile</filename> Ϊ̬Ob
- W٬ <filename>pre-configure</filename>
- <filename>post-configure</filename> script ɤP˪ơC</para>
+ <para>將任何額外的自訂指令包含進你的
+ <filename>configure</filename> script 中,且將它儲存在
+ <filename>scripts</filename> 的子資料夾裡。 如同上面提到的,
+ 你也可以在 <filename>Makefile</filename> 或者是在
+ 名稱為 <filename>pre-configure</filename> 或
+ <filename>post-configure</filename> 的 script 檔中做同樣的事。</para>
</sect1>
<sect1 xml:id="slow-user-input">
- <title>BzϥΪ̿J</title>
+ <title>處理使用者輸入</title>
- <para>pG port ݭnϥΪ̧@Xܤ~w˪ܡA
- hb <filename>Makefile</filename> [W
- <varname>IS_INTERACTIVE</varname> ܼơC p@ӭYϥΪ̦]w
- <envar>BATCH</envar> ܼƪܡAN|L port ~
- <quote>overnight builds</quote>(YϥΪ̧ܼƭȳ]
- <envar>BATCH</envar> ܡA <emphasis>u</emphasis>
- ǻݭnPϥΪ̤ʪ port ~|sĶC)C
- oϱoǻݭnsĶ port |٤U\hɶ(᭱|oI)
- C</para>
+ <para>如果該 port 需要使用者作出選擇才能安裝的話,
+ 則必須在 <filename>Makefile</filename> 加上
+ <varname>IS_INTERACTIVE</varname> 變數。 如此一來若使用者有設定
+ <envar>BATCH</envar> 環境變數的話,就會略過該 port 而繼續
+ <quote>overnight builds</quote>(若使用者把該環境變數值設為
+ <envar>BATCH</envar> 的話,那麼 <emphasis>只有</emphasis>
+ 那些需要與使用者互動的 port 才會編譯。)。
+ 這使得那些需要不停編譯 port 的機器會省下許多時間(後面會說明這點)
+ 。</para>
- <para>~ijAYOoǤʰDXAw]ﶵܡA
- T{@U <varname>PACKAGE_BUILDING</varname> ܼƸӦp]A
- ~tXܼƦӨMwO_ʡC p@Ӥ~iH۰ʽsĶX
- CDROM P FTP WMC</para>
+ <para>此外建議,若是這些互動問題有合適的預設選項的話,
+ 那應確認一下 <varname>PACKAGE_BUILDING</varname> 變數該如何設,
+ 才能配合該變數而決定是否停止互動。 如此一來才可以自動編譯出
+ CDROM 與 FTP 上的套件。</para>
</sect1>
</chapter>
<chapter xml:id="makefile">
- <title>]w Makefile</title>
+ <title>設定 Makefile</title>
- <para>]w <filename>Makefile</filename> OD`²檺ơA
- ijzb}leAݬݽdҡCAlso, there is a
+ <para>設定 <filename>Makefile</filename> 是件非常簡單的事,
+ 建議您在開始前,先看看範例。Also, there is a
<link linkend="porting-samplem">sample Makefile</link> in this
handbook, so take a look and please follow the ordering of variables
and sections in that template to make your port easier for others to
@@ -1004,11 +1004,11 @@ PORTEPOCH= 1</programlisting>
<sect2>
<title><varname>LATEST_LINK</varname></title>
- <para>bYDZpAi|PɦsbPP@{C
- ѩ󥦭̥i|P˪ <varname>PORTNAME</varname>B
- <varname>PKGNAMEPREFIX</varname>AƦ
- <varname>PKGNAMESUFFIX</varname> ]ۦPAҥHooǵ{ҤPA
- ~ port index H package බQ͡C JopA
+ <para>在某些情況,可能會同時存在有不同版本的同一程式。
+ 由於它們可能會有同樣的 <varname>PORTNAME</varname>、
+ <varname>PKGNAMEPREFIX</varname>,甚至
+ <varname>PKGNAMESUFFIX</varname> 也相同,所以得讓這些程式有所不同,
+ 才能讓 port 的 index 以及 package 能順利產生。 遇到這類情況,
the optional <varname>LATEST_LINK</varname> variable should be set to
a different value for all ports except the <quote>main</quote>
one &mdash; see the <filename>editors/vim5</filename> and
@@ -1466,19 +1466,19 @@ PORTEPOCH= 1</programlisting>
<row>
<entry><filename>games</filename></entry>
- <entry>CC</entry>
+ <entry>遊戲。</entry>
<entry/>
</row>
<row>
<entry><filename>geography*</filename></entry>
- <entry>azϸnC</entry>
+ <entry>地理圖資相關的軟體。</entry>
<entry/>
</row>
<row>
<entry><filename>german</filename></entry>
- <entry>w䴩C</entry>
+ <entry>德文相關支援。</entry>
<entry/>
</row>
@@ -1491,13 +1491,13 @@ PORTEPOCH= 1</programlisting>
<row>
<entry><filename>gnustep*</filename></entry>
- <entry>GNUstep ୱҬnC</entry>
+ <entry>GNUstep 桌面環境相關的軟體。</entry>
<entry/>
</row>
<row>
<entry><filename>graphics</filename></entry>
- <entry>ϧγBzunC</entry>
+ <entry>圖形處理的工具軟體。</entry>
<entry/>
</row>
@@ -1562,7 +1562,7 @@ PORTEPOCH= 1</programlisting>
<row>
<entry><filename>kld*</filename></entry>
- <entry>Kernel loadable modulesC</entry>
+ <entry>Kernel loadable modules。</entry>
<entry/>
</row>
@@ -1694,7 +1694,7 @@ PORTEPOCH= 1</programlisting>
<row>
<entry><filename>ports-mgmt</filename></entry>
- <entry>FreeBSD ports packages ޲zBwˡB}oC</entry>
+ <entry>FreeBSD ports 及 packages 的管理、安裝、開發。</entry>
</row>
<row>
@@ -1763,7 +1763,7 @@ PORTEPOCH= 1</programlisting>
<row>
<entry><filename>spanish*</filename></entry>
- <entry>Z媺䴩C</entry>
+ <entry>西班牙文的相關支援。</entry>
<entry/>
</row>
@@ -1775,7 +1775,7 @@ PORTEPOCH= 1</programlisting>
<row>
<entry><filename>tcl*</filename></entry>
- <entry>ϥ Tcl ynC</entry>
+ <entry>使用 Tcl 語言的軟體。</entry>
<entry/>
</row>
@@ -1788,7 +1788,7 @@ PORTEPOCH= 1</programlisting>
<row>
<entry><filename>tk*</filename></entry>
- <entry>ϥ Tk y{C</entry>
+ <entry>使用 Tk 語言的程式。</entry>
<entry/>
</row>
@@ -1839,7 +1839,7 @@ PORTEPOCH= 1</programlisting>
<row>
<entry><filename>x11-drivers</filename></entry>
- <entry>X11 Xʵ{C</entry>
+ <entry>X11 驅動程式。</entry>
<entry/>
</row>
@@ -1882,7 +1882,7 @@ PORTEPOCH= 1</programlisting>
<row>
<entry><filename>xfce*</filename></entry>
<entry><link xlink:href="http://www.xfce.org/">Xfce</link>
- ୱҪnC</entry>
+ 桌面環境的相關軟體。</entry>
<entry/>
</row>
@@ -1949,9 +1949,9 @@ PORTEPOCH= 1</programlisting>
</listitem>
<listitem>
- <para>|w kernel loadable modules port Цb
- <varname>CATEGORIES</varname> [W <filename>kld</filename>
- oӵؿC</para>
+ <para>會安裝 kernel loadable modules 的 port 請在
+ <varname>CATEGORIES</varname> 內加上 <filename>kld</filename>
+ 這個虛擬目錄。</para>
</listitem>
<listitem>
@@ -2200,9 +2200,9 @@ PORTEPOCH= 1</programlisting>
archives such as X-contrib, GNU, or Perl CPAN, you may be able
refer to those sites in an easy compact form using
<varname>MASTER_SITE_<replaceable>*</replaceable></varname>
- (pG<varname>MASTER_SITE_XCONTRIB</varname>B
- <varname>MASTER_SITE_GNU</varname>B
- <varname>MASTER_SITE_PERL_CPAN</varname>)C Simply set
+ (比如:<varname>MASTER_SITE_XCONTRIB</varname>、
+ <varname>MASTER_SITE_GNU</varname>、
+ <varname>MASTER_SITE_PERL_CPAN</varname>)。 Simply set
<varname>MASTER_SITES</varname> to one of these variables and
<varname>MASTER_SITE_SUBDIR</varname> to the path within the
archive. Here is an example:</para>
@@ -3326,10 +3326,10 @@ ALWAYS_KEEP_DISTFILES= yes
<row>
<entry><varname>USE_CDRTOOLS</varname></entry>
- <entry> port ݭn <application>cdrecord</application>A
- L׬O <package>sysutils/cdrtools</package> <package>sysutils/cdrtools-cjk</package> @ت
- <application>cdrecord</application> ҥiAϥΪ̰nөw
- C</entry>
+ <entry>該 port 需要 <application>cdrecord</application>,
+ 無論是 <package>sysutils/cdrtools</package> 或 <package>sysutils/cdrtools-cjk</package> 哪一種的
+ <application>cdrecord</application> 皆可,視使用者偏好而定
+ 。</entry>
</row>
<row>
@@ -4957,11 +4957,11 @@ PLIST_SUB+= NLS="@comment "
</table>
<note>
- <para>Perl Ҳժ portAѩSAҥH
- <filename>pkg-descr</filename> WWW ӫV
- <systemitem>cpan.org</systemitem>C n URL 榡O
+ <para>Perl 模組的 port,由於沒有正式的網站,所以
+ <filename>pkg-descr</filename> 內的 WWW 應該指向至
+ <systemitem>cpan.org</systemitem>。 比較好的 URL 格式是
<literal>http://search.cpan.org/dist/Module-Name/</literal>
- (]A / ׽uŸ)C</para>
+ (包括結尾的 / 斜線符號)。</para>
</note>
</sect1>
@@ -5026,7 +5026,7 @@ USE_GL= glu</programlisting>
<row>
<entry><varname>USE_IMAKE</varname></entry>
- <entry>|Ψ <command>imake</command> portC</entry>
+ <entry>會用到 <command>imake</command> 的 port。</entry>
</row>
<row>
@@ -5234,22 +5234,22 @@ USE_XORG= yes</programlisting>
<sect2 xml:id="desktop-entries">
<title>Desktop entries</title>
- <para>iǥѳ]w
- <varname>DESKTOP_ENTRIES</varname> ܼơAHP]w port X 涵
- (Desktop EntriesAаѾ\ <link xlink:href="http://standards.freedesktop.org/desktop-entry-spec/latest/">
- Freedesktop standard</link>)C oǶط|bୱҦp GNOME
- KDE ε{椤X{C <filename>.desktop</filename> ɮ
- N|QإߡBw˥HΦ۰ʥ[J <filename>pkg-plist</filename>
- CykG</para>
+ <para>可藉由設定
+ <varname>DESKTOP_ENTRIES</varname> 變數,以輕鬆設定 port 的 X 選單項目
+ (Desktop Entries,請參閱 <link xlink:href="http://standards.freedesktop.org/desktop-entry-spec/latest/">
+ Freedesktop standard</link>)。 這些項目會在相應的桌面環境如 GNOME
+ 或 KDE 的應用程式選單中出現。 <filename>.desktop</filename> 檔案
+ 將會被建立、安裝以及自動加入 <filename>pkg-plist</filename>
+ 中。語法為:</para>
<programlisting>DESKTOP_ENTRIES= "NAME" "COMMENT" "ICON" "COMMAND" "CATEGORY" StartupNotify</programlisting>
- <para>iѨϥΪiѦ <link xlink:href="http://standards.freedesktop.org/menu-spec/latest/apa.html">
- Freedesktop </link>C <varname>StartupNotify</varname>
- ܼƷ|Mw{AO_䴩 startup noficication ҡC
+ <para>可供使用的分類可參考 <link xlink:href="http://standards.freedesktop.org/menu-spec/latest/apa.html">
+ Freedesktop 網站</link>。 而 <varname>StartupNotify</varname>
+ 變數會決定程式,是否支援 startup noficication 的環境。
</para>
- <para>dҡG</para>
+ <para>範例:</para>
<programlisting>DESKTOP_ENTRIES= "ToME" "Roguelike game based on JRR Tolkien's work" \
"${DATADIR}/xtra/graf/tome-128.png" \
@@ -6135,7 +6135,7 @@ do-configure:
</table>
<table frame="none">
- <title>port Apache ҲծɦnΪܼ</title>
+ <title>port Apache 模組時好用的變數</title>
<tgroup cols="2">
<tbody>
@@ -6143,50 +6143,50 @@ do-configure:
<row>
<entry><varname>MODULENAME</varname></entry>
- <entry>ҲզW١C w]Ȭ
- <varname>PORTNAME</varname>. dҡG
+ <entry>模組名稱。 預設值為
+ <varname>PORTNAME</varname>. 範例:
<literal>mod_hello</literal></entry>
</row>
<row>
<entry><varname>SHORTMODNAME</varname></entry>
- <entry>²ƪҲզW١C ۰ʦaܼ
- <varname>MODULENAME</varname> ͡ALiHл\C
- dҡG <literal>hello</literal></entry>
+ <entry>簡化的模組名稱。 自動地由變數
+ <varname>MODULENAME</varname> 產生,不過可以覆蓋它。
+ 範例: <literal>hello</literal></entry>
</row>
<row>
<entry><varname>AP_FAST_BUILD</varname></entry>
- <entry>ϥ <command>apxs</command>
- ӽsĶΦw˳oӼҲաC</entry>
+ <entry>使用 <command>apxs</command>
+ 來編譯及安裝這個模組。</entry>
</row>
<row>
<entry><varname>AP_GENPLIST</varname></entry>
- <entry>P˦aA]O۰ʲ
- <filename>pkg-plist</filename>C</entry>
+ <entry>同樣地,也是自動產生
+ <filename>pkg-plist</filename>。</entry>
</row>
<row>
<entry><varname>AP_INC</varname></entry>
- <entry>bsĶɶ[J@ӥؿYɷjM|C</entry>
+ <entry>在編譯時間加入一個目錄到標頭檔搜尋路徑。</entry>
</row>
<row>
<entry><varname>AP_LIB</varname></entry>
- <entry>bsĶɶ[J@ӥؿ禡wjM|C</entry>
+ <entry>在編譯時間加入一個目錄到函式庫搜尋路徑。</entry>
</row>
<row>
<entry><varname>AP_EXTRAS</varname></entry>
- <entry>ǵ
- <command>apxs</command> B~ flagsC</entry>
+ <entry>傳給
+ <command>apxs</command> 額外的 flags。</entry>
</row>
</tbody>
@@ -6195,11 +6195,11 @@ do-configure:
</sect2>
<sect2 xml:id="web-apps">
- <title>Web ε{</title>
+ <title>Web 應用程式</title>
- <para>Web ε{Ӧw˨
+ <para>Web 應用程式應該安裝到
<filename>PREFIX/www/appname</filename>
- C For your convenience, this path is available both in
+ 。 For your convenience, this path is available both in
<filename>Makefile</filename> and in <filename>pkg-plist</filename>
as <varname>WWWDIR</varname>, and the path relative to
<varname>PREFIX</varname> is available in
@@ -6213,8 +6213,8 @@ do-configure:
your port, use <literal>WWWOWN?= myuser</literal> notation, to allow
user to override it easily.</para>
- <para>ЧOLۨ ApacheADoǵ{TݭnAӱoۨ Apache
- C]\ǨϥΪ̡A|QbLD Apache Web AWoǺ{C</para>
+ <para>請別過於相依 Apache,除非這些程式有明確需要,而得相依 Apache
+ 。也許有些使用者,會想在其他非 Apache 的 Web 伺服器上執行這些網頁程式。</para>
</sect2>
@@ -8343,39 +8343,39 @@ etc/orbit.conf.sample
</sect1>
<sect1 xml:id="plist-autoplist">
- <title>۰ʲ package list</title>
+ <title>自動產生 package list</title>
- <para>AT{z port F <filename>pkg-plist</filename>
- |dw~ALFC</para>
+ <para>首先,先確認您的 port 除了 <filename>pkg-plist</filename>
+ 尚未搞定之外,其他都完成了。</para>
- <para>ۡAإ{ɥؿHѸ port wˡAåBҦ̮ۨM󳣸˦n
- C</para>
+ <para>接著,建立臨時目錄以供該 port 安裝,並且把所有相依套件都裝好
+ 。</para>
<screen>&prompt.root; <userinput>mkdir /var/tmp/$(make -V PORTNAME)</userinput>
&prompt.root; <userinput>mtree -U -f $(make -V MTREE_FILE) -d -e -p /var/tmp/$(make -V PORTNAME)</userinput>
&prompt.root; <userinput>make depends PREFIX=/var/tmp/$(make -V PORTNAME)</userinput></screen>
- <para>oؿ[cssɮסC</para>
+ <para>把這目錄架構存到新檔案。</para>
<screen>&prompt.root; <userinput>(cd /var/tmp/$(make -V PORTNAME) &amp;&amp; find -d * -type d) | sort &gt; OLD-DIRS</userinput></screen>
- <para>sWŪ <filename>pkg-plist</filename> ɮסG</para>
+ <para>新增空的 <filename>pkg-plist</filename> 檔案:</para>
<screen>&prompt.root; <userinput>:&gt;pkg-plist</userinput></screen>
- <para>Y port ` <varname>PREFIX</varname>(]ӭn`)A
- ۴NiHw˸ port òɮײMC</para>
+ <para>若該 port 有遵循 <varname>PREFIX</varname>(也應該要遵循),
+ 接著就可以安裝該 port 並產生檔案清單。</para>
<screen>&prompt.root; <userinput>make install PREFIX=/var/tmp/$(make -V PORTNAME)</userinput>
&prompt.root; <userinput>(cd /var/tmp/$(make -V PORTNAME) &amp;&amp; find -d * \! -type d) | sort &gt; pkg-plist</userinput></screen>
- <para>oɭnOosتؿA][ɮײM椺C</para>
+ <para>這時要記得把新建的目錄,也加到檔案清單內。</para>
<screen>&prompt.root; <userinput>(cd /var/tmp/$(make -V PORTNAME) &amp;&amp; find -d * -type d) | sort | comm -13 OLD-DIRS - | sort -r | sed -e 's#^#@dirrm #' &gt;&gt; pkg-plist</userinput></screen>
- <para>̫AzӤʾzɮײM]oO۰ʤƳBz^CMan page hӧQ <varname>MAN<replaceable>n</replaceable></varname> 覡
- gb port <filename>Makefile</filename> ӤOgbɮײM椤C
- ϥΪ̳]wӲAΧW<filename>filename.sample</filename>C
+ <para>最後,您應該手動整理檔案清單(這不是全部自動化處理的)。Man page 則應該利用 <varname>MAN<replaceable>n</replaceable></varname> 的方式
+ 寫在 port 的 <filename>Makefile</filename> 而不是寫在檔案清單中。
+ 使用者設定檔應該移除,或更名為<filename>filename.sample</filename>。
The <filename>info/dir</filename> file should not be listed
and appropriate <filename>install-info</filename> lines should
be added as noted in the <link linkend="makefile-info">info
@@ -8703,28 +8703,28 @@ as .putsy.conf and edit it.</programlisting>
</sect1>
<sect1 xml:id="porting-prefix">
- <title><varname>PREFIX</varname> H <varname>DESTDIR</varname></title>
+ <title><varname>PREFIX</varname> 以及 <varname>DESTDIR</varname></title>
- <para><varname>PREFIX</varname> ܼƷ|Mw port ҷ|w˪mA
- q`O <filename>/usr/local</filename> <filename>/opt</filename>
- C ϥΪ̥iHǥѳ]w <varname>PREFIX</varname> Mwn˦bA
- ӧAҺ@ port `ӳWhC</para>
+ <para><varname>PREFIX</varname> 變數會決定該 port 所會安裝的位置,
+ 通常是 <filename>/usr/local</filename> 或 <filename>/opt</filename>
+ 。 使用者可以藉由設定 <varname>PREFIX</varname> 決定要裝在哪邊,
+ 而你所維護的 port 必須遵循該規則。</para>
- <para>YϥΪ̦]w <varname>DESTDIR</varname> ܼơA
- 򥦷|ĥΩҳ]wҡAq`iO jail ҩΪ̬OëD
- <filename>/</filename> WtΡC q` port |˦b
- <varname>DESTDIR</varname>/<varname>PREFIX</varname> UA
- åB|b <varname>DESTDIR</varname>/var/db/pkg MƮwC
- ѩƹW <varname>DESTDIR</varname> | ports [czL
- &man.chroot.8; Ӧ۰ʳBzAҥHzݥh@קΨN@
- <varname>DESTDIR</varname> ۮe portsC</para>
+ <para>若使用者有設定 <varname>DESTDIR</varname> 變數,
+ 那麼它會採用所設定的環境,通常可能是 jail 環境或者是並非掛載於
+ <filename>/</filename> 上的系統。 通常 port 會裝在
+ <varname>DESTDIR</varname>/<varname>PREFIX</varname> 底下,
+ 並且會紀錄在 <varname>DESTDIR</varname>/var/db/pkg 內的套件資料庫。
+ 由於事實上 <varname>DESTDIR</varname> 會由 ports 架構透過
+ &man.chroot.8; 來自動處理,所以您不需去作相關修改或刻意維護
+ <varname>DESTDIR</varname> 相容的 ports。</para>
- <para><varname>PREFIX</varname> ܼƭYLSO]wA|P
- <varname>LOCALBASE</varname> ۦP (w]
- <filename>/usr/local</filename>)C Y]w
- <varname>USE_LINUX_PREFIX</varname>A
- <varname>PREFIX</varname> h <varname>LINUXBASE</varname> (
- w] <filename>/compat/linux</filename>)C</para>
+ <para><varname>PREFIX</varname> 變數若無特別設定,會與
+ <varname>LOCALBASE</varname> 相同 (預設為
+ <filename>/usr/local</filename>)。 若有設定
+ <varname>USE_LINUX_PREFIX</varname>,
+ 那麼 <varname>PREFIX</varname> 則為 <varname>LINUXBASE</varname> (
+ 預設為 <filename>/compat/linux</filename>)。</para>
<para>Avoiding the hard-coding of <filename>/usr/local</filename> or
<filename>/usr/X11R6</filename> anywhere in the source will make the
@@ -8864,12 +8864,12 @@ as .putsy.conf and edit it.</programlisting>
<link xlink:href="&url.books.developers-handbook;/policies.html#POLICIES-MAINTAINER">
Developer's Handbook</link>.)</para>
- <para>̦n覡Oϥ &man.send-pr.1; êW diff @֦^(Oп
- <literal>ports</literal>)C YAO port @̡AаOob synopsis
- 檺}Y <literal>[maintainer update]</literal>AåBb PR
- <quote>Class</quote> W <literal>maintainer-update</literal>C
- _hA PR <quote>Class</quote> BNO
- <literal>change-request</literal>C
+ <para>最好的方式是使用 &man.send-pr.1; 並附上 diff 一併回報(類別請選
+ <literal>ports</literal>)。 若你是該 port 的維護者,請記得在 synopsis
+ 那行的開頭註明 <literal>[maintainer update]</literal>,並且在 PR 的
+ <quote>Class</quote> 分類填上 <literal>maintainer-update</literal>。
+ 否則,該 PR 的 <quote>Class</quote> 處就是填
+ <literal>change-request</literal>。
Please mention any added or
deleted files in the message, as they have to be explicitly specified
to &man.cvs.1; when doing a commit. If the diff is more than about 20KB,
@@ -9544,9 +9544,9 @@ Reference: &lt;http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00
</sect1>
<sect1 xml:id="freebsd-versions">
- <title>FreeBSD td(__FreeBSD_version)</title>
+ <title>FreeBSD 版本速查表(__FreeBSD_version)</title>
- <para>HUO <link xlink:href="http://cvsweb.freebsd.org/src/sys/sys/param.h">sys/param.h</link> <literal>__FreeBSD_version</literal> tdG</para>
+ <para>以下是 <link xlink:href="http://cvsweb.freebsd.org/src/sys/sys/param.h">sys/param.h</link> 內的 <literal>__FreeBSD_version</literal> 版本速查表:</para>
<table frame="none">
<title>__FreeBSD_version values</title>
@@ -12206,23 +12206,23 @@ post-install:
</sect1>
<sect1 xml:id="dads-sh-exec">
- <title>b wrapper scripts ϥ <function>exec</function> zy</title>
+ <title>在 wrapper scripts 中使用 <function>exec</function> 述句</title>
- <para>YY port FL{ӦwˤF@ shell scriptA
- Ӹӵ{Pɤ]O script ̫@Ӱʧ@AݭnTw script
- O <function>exec</function> zy]statement^A|ҦӨG</para>
+ <para>若某 port 為了執行其他程式而安裝了一個 shell script,
+ 而該程式同時也是該 script 最後一個動作,那麼需要確定該 script
+ 是用 <function>exec</function> 述句(statement),舉例而言:</para>
<programlisting>#!/bin/sh
exec %%LOCALBASE%%/bin/java -jar %%DATADIR%%/foo.jar "$@"</programlisting>
- <para><function>exec</function> zyHҫw{NF shell
- {ǡC Yٲ <function>exec</function> A shell {
- N|b{椤@sbOAoLæaOFtθ귽C</para>
+ <para><function>exec</function> 述句以所指定的程式取代了該 shell
+ 的程序。 若省略 <function>exec</function> ,那麼該 shell 程序
+ 將會在程式執行中一直存在於記憶體,這無疑地浪費了系統資源。</para>
</sect1>
<sect1 xml:id="dads-uid-and-gids">
- <title>UIDs GIDs</title>
+ <title>UIDs 及 GIDs</title>
<para>The current list of reserved UIDs and GIDs can be found
in <filename>ports/UIDs</filename> and
@@ -12654,17 +12654,17 @@ IGNORE=POINTYHAT is not supported
</sect1>
<sect1 xml:id="dads-sysctl">
- <title><filename>sysctl</filename> ϥήɾ</title>
+ <title><filename>sysctl</filename> 使用時機</title>
- <para><filename>sysctl</filename> Fb targets ~AyϥΡC
- oO] <literal>makevar</literal>
- i|ϱo{ǰtܺCCҦpb
- <command>make index</command> L{N|ݭnΨ
- <filename>sysctl</filename>C</para>
+ <para><filename>sysctl</filename> 除了在 targets 之外,都不鼓勵使用。
+ 這是因為任何 <literal>makevar</literal>
+ 的評估都有可能會使得程序執行速度變慢。例如在
+ <command>make index</command> 的過程中就會需要用到
+ <filename>sysctl</filename>。</para>
- <para>Ynϥ &man.sysctl.8; hzL <varname>SYSCTL</varname>
- @ܼƤ~iA]oˤ~|]t|A
- Pɤ]iHHɦ]ϥΪ̻ݨDӴL|C</para>
+ <para>若要使用 &man.sysctl.8; 則必須透過 <varname>SYSCTL</varname>
+ 此一變數才可,因為這樣才會包含完整路徑,
+ 同時也可以隨時因應使用者需求而替換為其他路徑。</para>
</sect1>
<sect1 xml:id="dads-rerolling-distfiles">
diff --git a/zh_TW.Big5/htdocs/Makefile b/zh_TW.UTF-8/htdocs/Makefile
index c72632c846..e7927f81da 100644
--- a/zh_TW.Big5/htdocs/Makefile
+++ b/zh_TW.UTF-8/htdocs/Makefile
@@ -42,6 +42,6 @@ SUBDIR+= layout
WEBDIR?= data/zh_TW
-DATESUBST?= 's/<!ENTITY date[ \t]*"$$Free[B]SD. .* \(.* .*\) .* .* $$">/<!ENTITY date "WsG \1">/'
+DATESUBST?= 's/<!ENTITY date[ \t]*"$$Free[B]SD. .* \(.* .*\) .* .* $$">/<!ENTITY date "上次更新: \1">/'
.include "${DOC_PREFIX}/share/mk/web.site.mk"
diff --git a/zh_TW.Big5/htdocs/Makefile.inc b/zh_TW.UTF-8/htdocs/Makefile.inc
index 210a1bd6eb..210a1bd6eb 100644
--- a/zh_TW.Big5/htdocs/Makefile.inc
+++ b/zh_TW.UTF-8/htdocs/Makefile.inc
diff --git a/zh_TW.UTF-8/htdocs/about.xml b/zh_TW.UTF-8/htdocs/about.xml
new file mode 100644
index 0000000000..ffdc2b8bfe
--- /dev/null
+++ b/zh_TW.UTF-8/htdocs/about.xml
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN"
+"http://www.FreeBSD.org/XML/doc/share/xml/xhtml10-freebsd.dtd" [
+<!ENTITY title "關於 FreeBSD">
+]>
+
+<!-- The FreeBSD Traditional Chinese Documentation Project -->
+<!-- Original Revision: 1.11 -->
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>&title;</title>
+
+ <cvs:keyword xmlns:cvs="http://www.FreeBSD.org/XML/CVS">$FreeBSD$</cvs:keyword>
+ </head>
+
+ <body class="navinclude.about">
+
+ <h2>FreeBSD 是什麼?</h2>
+
+ <p>FreeBSD 是一種先進的作業系統,可支援 x86
+ 相容(包括 Pentium&reg; 和 Athlon&trade;)、amd64
+ 相容(包括 Opteron&trade;、Athlon&trade;64 和 EM64T)、
+ ARM、IA-64、PC-98以及 UltraSPARC&reg;
+ 架構的電腦。其源自於 BSD ──美國加州大學伯克利分校開發
+ &unix; 版本,它是由來自世界各地的 <a
+ href="&enbase;/doc/en_US.ISO8859-1/articles/contributors/staff-committers.html">
+ 志願者</a> 共同開發和維護。 FreeBSD 為不同架構的電腦系統提供了不同程度的支援,
+ 詳情請參閱 <a href="&base;/platforms/index.html">系統平台</a> 這一頁。</p>
+
+ <h2>先進特性</h2>
+
+ <p>FreeBSD 提供了網路、性能、安全以及相容性等多方面的
+ <a href="&base;/features.html">先進特性</a>,
+ 這些特性即使是在當今最優秀的商業作業系統中亦有所欠缺。</p>
+
+ <h2>優異的 Internet 解決方案</h2>
+
+ <p>FreeBSD 是理想的
+ <a href="&base;/internet.html">Internet 和 Intranet</a>
+ 服務器。即使是在超重負載下,它仍然能夠有效地使用記憶體,
+ 為同時運行的數以千計的用戶進程提供良好的反應時間。</p>
+
+ <h2>能夠運行大量可供選擇的應用</h2>
+
+ <p>FreeBSD 的卓越品質,配合當今廉價而高速的 PC 硬體,
+ 使 FreeBSD 成為足可代替商業 &unix;
+ 工作站的絕佳系統。另外,FreeBSD 還廣泛收錄許多桌面
+ 和各類 Server 的 <a href="&base;/applications.html">應用程式</a>,
+ 使它能夠很好的符合您的各種需求。</p>
+
+ <h2>易於安裝</h2>
+
+ <p>FreeBSD 能通過多種媒體材質進行安裝,包括普通光碟、
+ DVD、軟碟、磁帶以及 MS-DOS&reg; 分區等,
+ 如果您有網路連線,您甚至可以 <i>直接</i>
+ 通過 anonymous FTP,或者 NFS Server 來裝 FreeBSD。
+ 您只需按照我們為您準備的 <a
+ href="&enbase;/doc/zh_TW.UTF-8/books/handbook/install.html">
+ 安裝指導</a> 操作就可以了。</p>
+
+ <h2>FreeBSD 是 <i>free</i> 的</h2>
+
+ <a href="&base;/copyright/daemon.html"><img src="&enbase;/gifs/dae_up3.gif"
+ alt="The BSD Daemon"
+ height="81" width="72"
+ align="right"
+ border="0"/></a>
+
+ <p>您或許認為如此優秀的作業系統必定需要花費大筆金錢來購買,
+ 而 FreeBSD 卻從發行版本到它的全部 source code 都
+ <a href="&base;/copyright/index.html">免費</a> 提供!
+ 如果您願意購買或下載來體驗一下 FreeBSD 所能帶給您的驚喜,
+ 可以從 <a href="&enbase;/doc/zh_TW.UTF-8/books/handbook/mirrors.html">這裡</a>
+ 了解更多資訊。</p>
+
+ <h2>幫助 FreeBSD</h2>
+
+ <p>幫助 FreeBSD 並不是一件困難的事情。 您需要做的,
+ 就是找出 FreeBSD 需要改進的地方,並將您
+ (經過精心編寫和整理過) 的改進透過 send-pr 發回 FreeBSD 計劃,
+ 或者直接把它們轉交給您認識的 FreeBSD committer。
+ 我們歡迎包括從文件到藝術作品,乃至 source code 在內的任何改進。
+ 此外,您還可以透過 <a
+ href="&enbase;/doc/zh_CN.GB2312/articles/contributing/index.html">
+ 幫助 FreeBSD</a>這篇文章了解更多的資訊。</p>
+
+ <p>即使您不是開發人員,也仍然可以通過其他途徑幫助 FreeBSD。
+ <a href="http://www.FreeBSDFoundation.org">FreeBSD 基金會</a>
+ 是個非營利組織,對其捐款可以完全減免課稅。
+ 要了解更多有關 FreeBSD 基金會的信息,
+ 請和 <a
+ href="mailto:board&#64;FreeBSDFoundation.org">board&#64;FreeBSDFoundation.org</a>
+ 聯繫,或致信:
+ The FreeBSD Foundation, 7321 Brockway Dr.
+ Boulder, CO 80303, USA.</p>
+
+ </body>
+</html>
diff --git a/zh_TW.UTF-8/htdocs/applications.xml b/zh_TW.UTF-8/htdocs/applications.xml
new file mode 100644
index 0000000000..bbd0b98672
--- /dev/null
+++ b/zh_TW.UTF-8/htdocs/applications.xml
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN"
+"http://www.FreeBSD.org/XML/doc/share/xml/xhtml10-freebsd.dtd" [
+<!ENTITY title "關於 FreeBSD 的應用">
+]>
+
+<!-- The FreeBSD Traditional Chinese Project -->
+<!-- Original revision: 1.33 -->
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>&title;</title>
+
+ <cvs:keyword xmlns:cvs="http://www.FreeBSD.org/XML/CVS">$FreeBSD$</cvs:keyword>
+ </head>
+
+ <body class="navinclude.about">
+
+ <h2>感受 FreeBSD 的無窮潛能</h2>
+
+ <p>FreeBSD 幾乎能夠處理任何 &unix;
+ 工作站所能完成的任務,而且還包括您可能沒有想過的:</p>
+
+ <h2>FreeBSD 是個真正提供了完整的原始碼的開放系統。</h2>
+
+ <p>沒有人會懷疑開放系統 <b>是</b>
+ 現代計算應用的前提條件。 然而,有哪一個商業發行機構提供的解決方案,
+ 能夠比提供了包括 kernel 以及全部系統服務、
+ 程式、管理工具原始碼的作業系統更為開放呢? 您可以修改 FreeBSD
+ 的任何部分,來適應個人、組織、公司的需要。</p>
+
+ <p>由於採用了寬鬆的 <a
+ href="&base;/copyright/freebsd-license.html">授權策略</a>,
+ 您可以幾乎不受任何限制地將 FreeBSD 作為運行任意免費 <i>或商業</i>
+ 應用的基礎。</p>
+
+ <h2>FreeBSD 能夠運行上萬種的應用軟體。</h2>
+
+ <p>由於 FreeBSD 基於業界 UNIX 標準之一的 4.4BSD,
+ 在其上編譯和運行程式易如反掌。 此外,FreeBSD 還提供了包含豐富應用程式的
+ <a href="&base;/where.html">packages collection</a> 以及 <a
+ href="&enbase;/ports/index.html">ports collection</a>,
+ 用以向用戶提供預先編譯好的,以及便於自行構建的各類軟體,
+ 以期滿足從桌面到企業Server的種種需求。 此外,為 FreeBSD 編寫的 <a
+ href="&enbase;/commercial/software.html">商業應用</a>
+ 也在與日俱增。</p>
+
+ <p>以下是一些典型的 FreeBSD 應用環境:</p>
+
+ <ul>
+ <li><b>Internet 服務。 </b>許多 Internet 服務提供業者(ISP)
+ 把 FreeBSD 視為運行 WWW、 Usenet news、 FTP、 Email,以及其他服務的理想平台。
+ 眾多可以立即投入使用的軟體,例如 <a
+ href="http://www.apache.org/">Apache</a> web Server,以及 <a href="http://proftpd.org/">ProFTPD</a>
+ FTP&nbsp;Server,使得構建商業或社區中心的 ISP 變得易如反掌。
+ 當然,配合 FreeBSD 無與倫比的 <a
+ href="&base;/internet.html">網路子系統</a>,您的用戶將享受到高速的、
+ 可靠的服務。</li>
+
+ <li><b>X Window 工作站。 </b>從便宜的 X terminal
+ 到高檔的 X 顯示器,FreeBSD 都能游刃有餘。 免費的 X 軟體 (<a
+ href="http://x.org/">X.Org</a>&trade;) 隨系統提供。
+ 另外,<a href="http://www.nvidia.com/">nVidia</a>
+ 也提供了用於他們的高性能圖形硬體的 native 驅動程式,
+ 並加入了業界標準的 <a href="http://www.opengroup.org/motif/">Motif</a>&reg;
+ 和 <a href="http://www.opengl.org/">OpenGL</a>&reg;
+ 函數庫支援。 對於 <a
+ href="http://www.kde.org">KDE</a> 和 <a
+ href="http://www.gnome.org">GNOME</a> 桌面環境,
+ 都提供了全面支援,並提供了辦公套件的功能,
+ 以及功能更為強大的 <a
+ href="http://www.openoffice.org/">OpenOffice.Org</a> 和
+ <a href="http://www.softmaker.de/tml_en.htm">TextMaker</a>
+ 產品。</li>
+
+ <li><b>網路。</b> 無論是過濾封包、routing、name service,
+ FreeBSD 都能夠讓任何一台 PC 成為 Internet 防火牆、
+ 電子郵件主機,印表機伺服器,PC/NFS Server,
+ 甚至提供各式各樣的其他服務。</li>
+
+ <li><b>軟體開發。</b> FreeBSD 提供了一整套開發工具,
+ 這其中包括了 GNU C/C++ 編譯器和除錯器(debugger)。
+ 舉例而言,您還可以使用 &java; 或 Tcl/Tk
+ ,以及一些更深奧的開發語言如 Icon 來進行開發。
+ 此外,FreeBSD 還提供了易於構建和使用的各種 shared libraries。
+ 您可以從眾多流行的強大的文字編輯器,例如
+ XEmacs 和 vim 中選擇自己喜歡來使用。</li>
+
+ <li><b>網路衝浪。</b> 真正的 UNIX 工作站,是絕佳的 Internet
+ 衝浪板。 FreeBSD 版本的 <a
+ href="http://www.mozilla.org/products/firefox/">Firefox</a>
+ 和 <a href="http://www.opera.com/">Opera</a>,
+ 都為嚴肅的 web 用戶提供了非常優秀的選擇。 網上衝浪,
+ 發表自己的網頁,閱讀 Usenet news、 收發電子郵件,
+ 都可以通過您桌面上的 FreeBSD 系統來輕鬆實現。</li>
+
+ <li><b>教育和研究。</b> 由於提供了完整的原始碼,FreeBSD
+ 是一個非常優秀的研究平台。 作業系統或其他 Computer Science
+ 領域的學生和研究人員,都能夠從這一開放而且文件豐富的系統中受益。</li>
+
+ <li><b>還有更多。 </b>金融、動作遊戲、
+ MIS&nbsp;資料庫、視覺化科學研究、視訊會議、
+ 網路聊天室(IRC)、家庭自動化、多用戶主機、
+ 電子公告板系統(BBS)、圖形掃描,以及更多的其他應用,
+ 都已經在 FreeBSD 上開花結果。</li>
+ </ul>
+
+ <h2>FreeBSD 是隨您需要而成長的作業系統。</h2>
+
+ <p>儘管 FreeBSD 是自由軟體,它同時也是一個 <i>由用戶支援的
+ </i> 軟體。 您只需簡單地將問題,透過電子郵件發到 <a
+ href="mailto:freebsd-questions@FreeBSD.org">freebsd-questions@FreeBSD.org</a>
+ 郵件論壇,就可以向數百名開發人員和眾多的 FreeBSD 用戶提問。</p>
+
+ <p>FreeBSD 還有一個包括世界各地的開發人員團隊,他們在不斷地修正系統中的問題,
+ 增加新特性以及撰寫文件。 支援新的硬體和功能一直是開發過程的重要部分,
+ 而開發團隊在這一過程中,一直非常重視可能會影響到系統穩定性的問題。
+ FreeBSD 的愛用者也因其系統的高性能和高穩定性而感到自豪。</p>
+
+ <h2>專家們說 . . .</h2>
+
+ <p><i>“FreeBSD 對 [我們的] 高負荷應用總是游刃有餘,
+ 而且經常能夠給人驚喜。不得不向 FreeBSD 開發團隊致敬!”</i></p>
+
+ <div align="right"><p>---Mark Hittinger, WinNet
+ Communications, Inc. 管理員</p></div>
+
+ </body>
+</html>
diff --git a/zh_TW.Big5/htdocs/art.xml b/zh_TW.UTF-8/htdocs/art.xml
index 66ac504c7b..c1cd25d8de 100644
--- a/zh_TW.Big5/htdocs/art.xml
+++ b/zh_TW.UTF-8/htdocs/art.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN"
"http://www.FreeBSD.org/XML/doc/share/xml/xhtml10-freebsd.dtd" [
<!ENTITY title "FreeBSD Art">
@@ -18,14 +18,14 @@
<ul>
<li><a href="#bsd-daemon">BSD Daemon</a></li>
- <li><a href="#powered-by"><q>Powered by FreeBSD</q> Logo </a></li>
- <li><a href="#adv">¦siϼ</a></li>
- <li><a href="#use">ϧΪϥ</a></li>
+ <li><a href="#powered-by"><q>Powered by FreeBSD</q> Logo 圖</a></li>
+ <li><a href="#adv">舊式廣告圖標</a></li>
+ <li><a href="#use">圖形的使用</a></li>
</ul>
- <p>UU˪ FreeBSD <q>N</q>C pijAбH <a
- href="mailto:www@FreeBSD.org">www@FreeBSD.org</a>CЪ`NoǹϧΪ<a
- href="#use">ϥΡBv覡</a>C</p>
+ <p>本頁有各式各樣的 FreeBSD <q>藝術</q>。 如有任何建議,請寄至 <a
+ href="mailto:www@FreeBSD.org">www@FreeBSD.org</a>。請注意這些圖形的<a
+ href="#use">使用、授權方式</a>。</p>
<h2 id="bsd-daemon"><a href="copyright/daemon.html">BSD
Daemon</a></h2>
@@ -37,49 +37,49 @@
Daemon" width="191" height="208" border="0"/>&nbsp;</td>
</tr>
<tr>
- <td align="center" colspan="6"> &a.phk; ҳЧ@<br/>
- lɡGb FreeBSD tΪ
+ <td align="center" colspan="6">由 &a.phk; 所創作<br/>
+ 原始圖檔:在 FreeBSD 系統的
<a href="http://cvsweb.FreeBSD.org/src/share/examples/BSD_daemon/">
- /usr/share/examples/BSD_daemon/</a> ؿC</td>
+ /usr/share/examples/BSD_daemon/</a> 目錄。</td>
</tr>
<tr>
<td align="center" colspan="3"><a href="&enbase;/gifs/daemon_hammer.jpg"><img
- src="&enbase;/gifs/daemon_hammer-tn25.jpg" alt="ݴl BSD Daemon" width="150"
+ src="&enbase;/gifs/daemon_hammer-tn25.jpg" alt="揮搥子的 BSD Daemon" width="150"
height="178" border="0"/></a></td>
- <td align="center" colspan="3"><img src="&enbase;/gifs/power.jpg" alt="\UAȥͪ BSD Daemon"
+ <td align="center" colspan="3"><img src="&enbase;/gifs/power.jpg" alt="餐廳服務生的 BSD Daemon"
width="160" height="246" border="0"/></td>
</tr>
<tr>
- <td align="center" colspan="2"><img src="&enbase;/gifs/news.jpg" alt="ssD BSD Daemon"
+ <td align="center" colspan="2"><img src="&enbase;/gifs/news.jpg" alt="編輯新聞的 BSD Daemon"
width="193" height="144" border="0"/></td>
- <td align="center" colspan="2"><img src="&enbase;/gifs/doc.jpg" alt="bݤ BSD Daemon"
+ <td align="center" colspan="2"><img src="&enbase;/gifs/doc.jpg" alt="在看文件的 BSD Daemon"
width="274" height="163" border="0"/></td>
- <td align="center" colspan="2"><img src="&enbase;/gifs/releases.jpg" alt="BSD Daemon bo̷so檩"
+ <td align="center" colspan="2"><img src="&enbase;/gifs/releases.jpg" alt="BSD Daemon 在發放最新的發行版"
width="259" height="178" border="0"/></td>
</tr>
</tbody>
</table>
- <h2 id="powered-by"><q>Powered by FreeBSD</q> Logo </h2>
+ <h2 id="powered-by"><q>Powered by FreeBSD</q> Logo 圖</h2>
<table width="100%" border="0">
<tbody>
<tr>
<td align="left"><img src="&enbase;/gifs/powerlogo.gif" alt="Powered by
- FreeBSD Logo " align="left" border="0"/></td>
+ FreeBSD Logo 圖" align="left" border="0"/></td>
<td align="left"><img src="&enbase;/gifs/power-button.gif"
- alt="Powered by FreeBSD Logo " align="left"
+ alt="Powered by FreeBSD Logo 圖" align="left"
border="0"/></td>
</tr>
<tr>
<td align="right"><img src="&enbase;/gifs/pbfbsd2.gif" width="171"
- alt="Powered by FreeBSD Logo " height="64"
+ alt="Powered by FreeBSD Logo 圖" height="64"
border="0"/></td>
<td align="right"><img src="&enbase;/gifs/powerani.gif" width="171"
- alt="Powered by FreeBSD Logo " height="64"/></td>
+ alt="Powered by FreeBSD Logo 圖" height="64"/></td>
<td align="right"><img src="&enbase;/gifs/fhp_mini.jpg" width="145"
- alt="FreeBSD wX@t Logo " height="50"/></td>
+ alt="FreeBSD 硬體合作廠商 Logo 圖" height="50"/></td>
</tr>
</tbody>
</table>
@@ -93,7 +93,7 @@
<p align="center"><img src="&enbase;/gifs/banner4.gif" alt="FreeBSD The
Power To Serve Logo" width="225" height="46" border="0"/></p>
- <h2 >¦siϼ</h2>
+ <h2 >舊式廣告圖標</h2>
<table width="100%" border="0">
<tbody>
@@ -107,19 +107,19 @@
</tbody>
</table>
- <h2 id="use">ϧΪϥ</h2>
+ <h2 id="use">圖形的使用</h2>
- <p>W<q>Powered by FreeBSD</q> Logo ϥiq<a
- href="&enbase;/gifs/powerlogo.gif">oU</a>HΦb FreeBSD
- ѪAȪӤHƦܰӷ~WܡCϥγo Logo ϩΪ <a
- href="copyright/daemon.html">BSD Daemons</a> Logo ϨQܡAݭno <a
+ <p>上面的<q>Powered by FreeBSD</q> Logo 圖可從<a
+ href="&enbase;/gifs/powerlogo.gif">這下載</a>以及在由 FreeBSD
+ 機器提供服務的個人甚至商業網頁上顯示。使用這個 Logo 圖或者類似 <a
+ href="copyright/daemon.html">BSD Daemons</a> Logo 圖來獲利的話,需要得到 <a
href="mailto:taob@risc.org">Brian
- Tao</a> (<q>power</q> Logo ϪЧ@) M <a
+ Tao</a> (<q>power</q> Logo 圖的創作者) 和 <a
href="mailto:mckusick@mckusick.com">Marshall Kirk McKusick</a>
- (BSD Daemon ϹӼЫ) \iC</p>
+ (BSD Daemon 圖像的商標持有者) 的許可。</p>
- <p>&a.phk; BSD Daemon ϽZhOH <q>THE
- BEER-WARE LICENSE</q> oGC ԱаѾ\ <a
+ <p>&a.phk; 的 BSD Daemon 圖稿則是以 <q>THE
+ BEER-WARE LICENSE</q> 發佈。 詳情請參閱 <a
href="http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/src/share/examples/BSD_daemon/README?content-type=text/plain">README</a>
</p>
diff --git a/zh_TW.Big5/htdocs/availability.xml b/zh_TW.UTF-8/htdocs/availability.xml
index 3bb125ec27..a1c3001967 100644
--- a/zh_TW.Big5/htdocs/availability.xml
+++ b/zh_TW.UTF-8/htdocs/availability.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN"
"http://www.FreeBSD.org/XML/doc/share/xml/xhtml10-freebsd.dtd" [
-<!ENTITY title "po FreeBSD">
+<!ENTITY title "如何獲得 FreeBSD">
]>
<!-- The FreeBSD Traditional Chinese Documentation Project -->
@@ -9,8 +9,7 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
- <meta http-equiv="refresh" content="5;url=&base;/index.html"/>
- <meta http-equiv="Content-Type" content="text/html; charset=Big5"/>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>&title;</title>
@@ -19,10 +18,10 @@
</head>
<body class="navinclude.about">
- <p>o@eAwQX <a
- href="&base;/index.html">FreeBSD </a>C z|bƬӭC
- pGSܡAIezsAçszҡC</p>
+ <p>這一頁中的內容,已被整合到 <a
+ href="&base;/index.html">FreeBSD 首頁當中</a>。 您會在數秒內轉到該頁。
+ 如果沒有的話,請點擊前述連結,並更新您的書籤。</p>
- <p>ڭ̹]ҤޭPKAܺpNC</p>
+ <p>我們對因此所引致的不便,表示歉意。</p>
</body>
</html>
diff --git a/zh_TW.Big5/htdocs/community.xml b/zh_TW.UTF-8/htdocs/community.xml
index fe630d497f..7734150689 100644
--- a/zh_TW.Big5/htdocs/community.xml
+++ b/zh_TW.UTF-8/htdocs/community.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN"
"http://www.FreeBSD.org/XML/doc/share/xml/xhtml10-freebsd.dtd" [
-<!ENTITY title "FreeBSD s">
+<!ENTITY title "FreeBSD 社群">
]>
<!-- The FreeBSD Traditional Chinese Documentation Project -->
@@ -16,12 +16,12 @@
<body class="navinclude.community">
- <p>FreeBSD D`Ds䴩C</p>
+ <p>FreeBSD 有非常活躍的社群支援。</p>
- <p> 100 hؤ <a href="&enbase;/community/mailinglists.html">l׾</a>
- MX <a href="&enbase;/community/newsgroups.html">newsgroups</a>C
- ٦\hb@ɦUa FreeBSD <a href="&base;/usergroups.html">RΪ̲´</a>A
- MD <a href="&enbase;/community/irc.html">IRC</a> sC</p>
+ <p>有 100 多種分類的 <a href="&enbase;/community/mailinglists.html">郵遞論壇</a>
+ 和幾個 <a href="&enbase;/community/newsgroups.html">newsgroups</a>。
+ 還有許多分布在世界各地的 FreeBSD <a href="&base;/usergroups.html">愛用者組織</a>,
+ 和活躍的 <a href="&enbase;/community/irc.html">IRC</a> 社群。</p>
</body>
</html>
diff --git a/zh_TW.Big5/htdocs/developers.xml b/zh_TW.UTF-8/htdocs/developers.xml
index 6a35512e81..ce44624ba5 100644
--- a/zh_TW.Big5/htdocs/developers.xml
+++ b/zh_TW.UTF-8/htdocs/developers.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
This document provides entities for developers listed by name on the
@@ -49,7 +49,7 @@ $FreeBSD$
<!ENTITY a.asami "Satoshi Asami">
<!ENTITY a.asmodai "Jeroen Ruigrok/Asmodai">
<!ENTITY a.assar "Assar Westerlund">
-<!ENTITY a.avatar "">
+<!ENTITY a.avatar "梁泰華">
<!ENTITY a.awebster "Andrew Webster">
<!ENTITY a.az "Andrej Zverev">
<!ENTITY a.babkin "Sergey Babkin">
@@ -63,7 +63,7 @@ $FreeBSD$
<!ENTITY a.billf "Bill Fumerola">
<!ENTITY a.blackend "Marc Fonvieille">
<!ENTITY a.bland "Alexander Nedotsukov">
-<!ENTITY a.bmah "E">
+<!ENTITY a.bmah "馬源浩">
<!ENTITY a.bmilekic "Bosko Milekic">
<!ENTITY a.bms "Bruce M. Simpson">
<!ENTITY a.bp "Boris Popov">
@@ -84,15 +84,15 @@ $FreeBSD$
<!ENTITY a.cg "Cameron Grant">
<!ENTITY a.charnier "Philippe Charnier">
<!ENTITY a.chern "Chern Lee">
-<!ENTITY a.chinsan "Cs">
+<!ENTITY a.chinsan "黃青山">
<!ENTITY a.chm "Christoph Herrmann">
<!ENTITY a.chris "Chris Costello">
<!ENTITY a.chuckr "Chuck Robey">
<!ENTITY a.cjc "Crist J. Clark">
<!ENTITY a.cjh "Junho CHOI">
<!ENTITY a.clement "Clement Laforet">
-<!ENTITY a.clive "LF">
-<!ENTITY a.clsung "F">
+<!ENTITY a.clive "林東毅">
+<!ENTITY a.clsung "宋政隆">
<!ENTITY a.cognet "Olivier Houchard">
<!ENTITY a.cokane "Coleman Kane">
<!ENTITY a.cp "Chuck Paterson">
@@ -115,7 +115,7 @@ $FreeBSD$
<!ENTITY a.das "David Schultz">
<!ENTITY a.davidc "Chad David">
<!ENTITY a.davidn "David Nugent">
-<!ENTITY a.davidxu "}hW">
+<!ENTITY a.davidxu "徐逸鋒">
<!ENTITY a.dbaker "Daniel Baker">
<!ENTITY a.dburr "Donald Burr">
<!ENTITY a.dcs "Daniel C. Sobral">
@@ -123,7 +123,7 @@ $FreeBSD$
<!ENTITY a.dds "Diomidis D. Spinellis">
<!ENTITY a.dec "David E. Cross">
<!ENTITY a.deischen "Daniel Eischen">
-<!ENTITY a.delphij "">
+<!ENTITY a.delphij "李鑫">
<!ENTITY a.demon "Dmitry Sivachenko">
<!ENTITY a.den "Denis Peplin">
<!ENTITY a.des "Dag-Erling C. Sm&oslash;rgrav">
@@ -138,7 +138,7 @@ $FreeBSD$
<!ENTITY a.dirk "Dirk Fr&ouml;mberg">
<!ENTITY a.dmlb "Duncan Barclay">
<!ENTITY a.dougb "Doug Barton">
-<!ENTITY a.dryice "B">
+<!ENTITY a.dryice "劉棟">
<!ENTITY a.dt "Dmitrij Tejblum">
<!ENTITY a.dufault "Peter Dufault">
<!ENTITY a.dumbbell "Jean-S&eacute;bastien P&eacute;dron">
@@ -162,7 +162,7 @@ $FreeBSD$
<!ENTITY a.fjoe "Max Khon">
<!ENTITY a.flathill "Seiichirou Hiraoka">
<!ENTITY a.flz "Florent Thoumie">
-<!ENTITY a.foxfair "Jx">
+<!ENTITY a.foxfair "胡庭豪">
<!ENTITY a.fsmp "Steve Passe">
<!ENTITY a.furuta "Atsushi Furuta">
<!ENTITY a.gabor "G&aacute;bor K&ouml;vesd&aacute;n">
@@ -201,9 +201,9 @@ $FreeBSD$
<!ENTITY a.hosokawa "Tatsumi Hosokawa">
<!ENTITY a.hq "Herve Quiroz">
<!ENTITY a.hrs "Hiroki Sato">
-<!ENTITY a.hsu "}ӳ">
+<!ENTITY a.hsu "徐敏傑">
<!ENTITY a.iedowse "Ian Dowse">
-<!ENTITY a.ijliao "^">
+<!ENTITY a.ijliao "廖英傑">
<!ENTITY a.ikob "Katsushi Kobayashi">
<!ENTITY a.imp "Warner Losh">
<!ENTITY a.imura "R. Imura">
@@ -262,12 +262,12 @@ $FreeBSD$
<!ENTITY a.karl "Karl Strickland">
<!ENTITY a.kato "Takenori KATO">
<!ENTITY a.kbyanc "Kelly Yancey">
-<!ENTITY a.keichii "dq">
+<!ENTITY a.keichii "吳敬元">
<!ENTITY a.keith "Jing-Tang Keith Jang">
<!ENTITY a.ken "Kenneth D. Merry">
<!ENTITY a.kensmith "Ken Smith">
<!ENTITY a.keramida "Giorgos Keramidas">
-<!ENTITY a.kevlo "ù®a">
+<!ENTITY a.kevlo "羅謝家偉">
<!ENTITY a.kib "Konstantin Belousov">
<!ENTITY a.kientzle "Tim Kientzle">
<!ENTITY a.kiri "Kazuhiko Kiriyama">
@@ -284,7 +284,7 @@ $FreeBSD$
<!ENTITY a.lawrance "Sam Lawrance">
<!ENTITY a.lbr "Lars Balker Rasmussen">
<!ENTITY a.le "Lukas Ertl">
-<!ENTITY a.leeym "۩">
+<!ENTITY a.leeym "李彥明">
<!ENTITY a.lesi "Dejan Lesjak">
<!ENTITY a.lev "Lev Serebryakov">
<!ENTITY a.lile "Larry Lile">
@@ -296,7 +296,7 @@ $FreeBSD$
<!ENTITY a.logo "Valentino Vaschetto">
<!ENTITY a.lth "Lars Thegler">
<!ENTITY a.luigi "Luigi Rizzo">
-<!ENTITY a.luoqi "">
+<!ENTITY a.luoqi "陳洛祁">
<!ENTITY a.maho "Maho Nakata">
<!ENTITY a.marcel "Marcel Moolenaar">
<!ENTITY a.marck "Dmitry Morozovsky">
@@ -377,7 +377,7 @@ $FreeBSD$
<!ENTITY a.onoe "Atsushi Onoe">
<!ENTITY a.orion "Orion Hodson">
<!ENTITY a.osa "Sergey A. Osokin">
-<!ENTITY a.pat "h">
+<!ENTITY a.pat "李雲玖">
<!ENTITY a.patrick "Patrick S. Gardella">
<!ENTITY a.paul "Paul Richards">
<!ENTITY a.pav "Pav Lucistnik">
@@ -400,7 +400,7 @@ $FreeBSD$
<!ENTITY a.ps "Paul Saab">
<!ENTITY a.pst "Paul Traina">
<!ENTITY a.qingli "Qing Li">
-<!ENTITY a.rafan "da">
+<!ENTITY a.rafan "範榮恩">
<!ENTITY a.rees "Jim Rees">
<!ENTITY a.reg "Jeremy Lea">
<!ENTITY a.remko "Remko Lodder">
@@ -502,7 +502,7 @@ $FreeBSD$
<!ENTITY a.ume "Hajimu UMEMOTO">
<!ENTITY a.unfurl "Bill Swingle">
<!ENTITY a.ups "Stephan Uphoff">
-<!ENTITY a.vanilla "}T">
+<!ENTITY a.vanilla "徐三泰">
<!ENTITY a.vd "Vasil Dimov">
<!ENTITY a.viny "Vincent Tougait">
<!ENTITY a.vkashyap "Vinod Kashyap">
diff --git a/zh_TW.Big5/htdocs/doc/Makefile b/zh_TW.UTF-8/htdocs/doc/Makefile
index 8f4b942277..8f4b942277 100644
--- a/zh_TW.Big5/htdocs/doc/Makefile
+++ b/zh_TW.UTF-8/htdocs/doc/Makefile
diff --git a/zh_TW.Big5/htdocs/docs.xml b/zh_TW.UTF-8/htdocs/docs.xml
index e27f9979ce..b00da16fe0 100644
--- a/zh_TW.Big5/htdocs/docs.xml
+++ b/zh_TW.UTF-8/htdocs/docs.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN"
"http://www.FreeBSD.org/XML/doc/share/xml/xhtml10-freebsd.dtd" [
-<!ENTITY title "FreeBSD ">
+<!ENTITY title "FreeBSD 文件">
]>
<!-- The FreeBSD Traditional Chinese Documentation Project -->
@@ -16,10 +16,10 @@
<body class="navinclude.docs">
- <img src="&enbase;/gifs/doc.jpg" alt="b\Ū BSD Daemon" align="right" border="0" width="274" height="163"/>
+ <img src="&enbase;/gifs/doc.jpg" alt="正在閱讀文件的 BSD Daemon" align="right" border="0" width="274" height="163"/>
- <p>FreeBSD sxUAboӺBL
- iHAƤӼơC</p>
+ <p>FreeBSD 有廣泛的各類文件,在這個網站、其他網站
+ 都可以找到,數不勝數。</p>
</body>
</html>
diff --git a/zh_TW.Big5/htdocs/docs/Makefile b/zh_TW.UTF-8/htdocs/docs/Makefile
index c1587b3190..c1587b3190 100644
--- a/zh_TW.Big5/htdocs/docs/Makefile
+++ b/zh_TW.UTF-8/htdocs/docs/Makefile
diff --git a/zh_TW.Big5/htdocs/docs/books.xml b/zh_TW.UTF-8/htdocs/docs/books.xml
index 07f6357be6..a67aaa8704 100644
--- a/zh_TW.Big5/htdocs/docs/books.xml
+++ b/zh_TW.UTF-8/htdocs/docs/books.xml
@@ -1,10 +1,10 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN"
"http://www.FreeBSD.org/XML/doc/share/xml/xhtml10-freebsd.dtd" [
-<!ENTITY title "qlѤΤ峹">
+<!ENTITY title "電子書及文章">
-<!ENTITY url.articles "../../doc/zh_TW.Big5/articles">
-<!ENTITY url.books "../../doc/zh_TW.Big5/books">
+<!ENTITY url.articles "../../doc/zh_TW.UTF-8/articles">
+<!ENTITY url.books "../../doc/zh_TW.UTF-8/books">
<!ENTITY url.en.articles "../../doc/en_US.ISO8859-1/articles">
<!ENTITY url.en.books "../../doc/en_US.ISO8859-1/books">
]>
@@ -23,222 +23,222 @@
<body class="navinclude.docs">
- <h2>W</h2>
+ <h2>網站上</h2>
- <p>WҦ󪺦Uخ榡(HTMLBPostscriptBPDF )
- HYɮ榡(Bzip2, Zip)izL <a
- href="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">FreeBSD FTP </a>
- ӤUC</p>
+ <p>本網站上所有文件的各種格式(HTML、Postscript、PDF 等等)
+ 以及壓縮檔格式(Bzip2, Zip)都可透過 <a
+ href="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">FreeBSD FTP 站</a>
+ 來下載。</p>
- <p>&os; ª(峹BqlѡBman )hiq <a
+ <p>&os; 舊版文件(文章、電子書、man 說明)則可從 <a
href="http://docs.FreeBSD.org/doc/">http://docs.FreeBSD.org/doc/</a>
- ӤUC</p>
+ 來下載。</p>
- <p>oǤ󧡥 <a href="&base;/docproj/docproj.html">FreeBSD
- pe</a>ҴѡB@C ~A
- ڭ̤]_MDUsӼgsP{󪺧sC</p>
+ <p>這些文件均由 <a href="&base;/docproj/docproj.html">FreeBSD
+ 文件計畫</a>所提供、維護。 此外,
+ 我們也不斷尋求各方新血來撰寫新的文件與現有文件的更新。</p>
- <h3>ql</h3>
+ <h3>電子書</h3>
<p><a
href="&url.en.books;/dev-model/index.html">
- FreeBSD p}oҦ</a>(dev-model)<br/>
- FreeBSD pb´[c譱sC</p>
+ FreeBSD 計劃的開發模式</a>(dev-model)<br/>
+ 關於 FreeBSD 計劃在組織架構方面的正式研究。</p>
<p><a href="&url.books;/faq/index.html">FreeBSD FAQ</a>
- (faq)<br/>FreeBSD U譱`ݵ(Frequently Asked Questions)
- C</p>
+ (faq)<br/>FreeBSD 各方面的常見問答集(Frequently Asked Questions)
+ 。</p>
<p><a href="&url.books;/handbook/index.html">The FreeBSD Handbook</a>
(handbook)<br/>
- FreeBSD ϥΪ̦ӨO̱`ΨA䤺e]_sC</p>
+ 對 FreeBSD 使用者而言是最常用到,其內容也不斷更新。</p>
<p><a href="&url.books;/developers-handbook/index.html">The
FreeBSD Developers' Handbook</a> (developers-handbook)<br/>
- Qb FreeBSD }on骺H(Hζ}oxu FreeBSD H)Ѿ\
- C</p>
+ 給想在 FreeBSD 開發軟體的人(以及開發平台不只有 FreeBSD 的人)參閱
+ 。</p>
<p><a
href="&url.en.books;/arch-handbook/index.html">
The FreeBSD Architecture Handbook</a> (arch-handbook)<br/>
- FreeBSD system developers Ѿ\C Ѳ[\ FreeBSD kernel
- UӤltά[cغزӸ`C</p>
+ 給 FreeBSD system developers 參閱。 本書涵蓋 FreeBSD kernel
+ 各個子系統架構的種種細節。</p>
<p><a href="&url.books;/porters-handbook/index.html">The Porter's
Handbook</a> (porters-handbook)<br/>
- YQn饴] port 覡ܡA򦹮ѤDŪC</p>
+ 若想把軟體打包成 port 方式的話,那麼此書乃必讀之物。</p>
<p><a href="&url.en.books;/pmake/index.html">
The PMake Tutorial</a> (pmake)<br/>
- <em>make</em> u㪺W⻡C YQF <em>make</em> ΪkB
- Makefile gkA򦹮ѤiŪC</p>
+ <em>make</em> 工具的上手說明。 若想了解 <em>make</em> 的用法、
+ Makefile 的寫法,那麼此書不可不讀。</p>
<p><a href="&url.en.books;/design-44bsd/index.html">
"The Design and Implementation of the 4.4BSD Operating System"
- ĤG</a> (design-44bsd)<br/>
- DO Addison-Wesley ٧UAeЦ FreeBSD e 4.4BSD
- ]p[C</p>
+ 的第二章</a> (design-44bsd)<br/>
+ 乃是由 Addison-Wesley 贊助,內容介紹有關 FreeBSD 前身的 4.4BSD
+ 之設計概觀。</p>
<p><a href="&url.en.books;/corp-net-guide/index.html">
- "The FreeBSD Corporate Networker's Guide" ĤK</a>
+ "The FreeBSD Corporate Networker's Guide" 的第八章</a>
(corp-net-guide)<br/>
- Addison-Wesley ٧UAeЦpH FreeBSD Windows, NT,
- Novell ѦCLAȪ`׳ɡC</p>
+ 由 Addison-Wesley 贊助,內容為介紹如何以 FreeBSD 為 Windows, NT,
+ Novell 機器提供列印服務的深度報導。</p>
<p><a href="&url.books;/fdp-primer/index.html">The FreeBSD
Documentation Project Primer for New Contributors</a>
(fdp-primer)<br/>
- ѤЦpi FreeBSD pҦƩyC</p>
+ 本書介紹如何進行 FreeBSD 文件計劃的所有須知事宜。</p>
- <a name="ARTICLES"></a><h3>峹</h3>
+ <a name="ARTICLES"></a><h3>文章</h3>
- <!-- 峹OHؿW٧@ƧǤ̾ -->
+ <!-- 文章的部份是以目錄名稱作為排序之依據 -->
<p><a href="&url.en.articles;/bsdl-gpl/index.html">Why you should use
a BSD style license for your Open Source Project</a> (bsdl-gpl)
- <br/> Шϥ BSD license @XlXnBC</p>
+ <br/> 介紹使用 BSD license 作為釋出原始碼的好處。</p>
<p><a href="&url.en.articles;/building-products/index.html">Building
Products with FreeBSD</a> (building-products)<br/>
- pB FreeBSD Hn~C</p>
+ 如何運用 FreeBSD 以成為更好的產品。</p>
- <p><a href="&url.en.articles;/casestudy-argentina.com/index.html">רҬsGArgentina.com</a> (casestudy-argentina.com)<br/>
- pB FreeBSD ԤBwj ISPC</p>
+ <p><a href="&url.en.articles;/casestudy-argentina.com/index.html">案例研究:Argentina.com</a> (casestudy-argentina.com)<br/>
+ 如何運用 FreeBSD 成為拉丁美洲的大型 ISP。</p>
<p><a href="&url.en.articles;/committers-guide/index.html">The
Committer's Guide</a> (committers-guide)<br/>
- FreeBSD committer ƩyC</p>
+ 關於 FreeBSD committer 的須知事宜。</p>
<p><a href="&url.en.articles;/console-server/index.html">Console
Server Tutorial</a> (console-server)<br/>
- pBΫKy multi-port serial dA FreeBSD console
- serverC</p>
+ 如何運用便宜的 multi-port serial 卡,讓 FreeBSD 成為 console
+ server。</p>
<p><a href="&url.articles;/contributing/index.html">Contributing
to FreeBSD</a> (contributing)<br/>
- p FreeBSD p^mC</p>
+ 如何為 FreeBSD 計劃貢獻。</p>
<p><a href="&url.en.articles;/contributing-ports/index.html">
Contributing to the FreeBSD Ports Collection</a>
(contributing-ports)<br/>
- pU@ FreeBSD Ports CollectionC</p>
+ 如何協助維護 FreeBSD Ports Collection。</p>
<p><a href="&url.en.articles;/contributors/index.html">The
List of FreeBSD Contributors</a> (contributors)<br/>
- FreeBSD UҦ´BӤHCbC</p>
+ 對 FreeBSD 曾有所幫助的所有組織、個人均列在此表。</p>
<p><a href="&url.articles;/cvs-freebsd/index.html">Setting up a
CVS repository - The FreeBSD way</a> (cvs-freebsd)<br/>
- pإ߻P FreeBSD pۦP CVSROOT [c CVS repositoryC</p>
+ 如何建立與 FreeBSD 計劃相同的 CVSROOT 架構的 CVS repository。</p>
<p><a href="&url.en.articles;/cvsup-advanced/index.html">CVSup
Advanced Points</a> (cvsup-advanced)<br/>
- CVSup _޲]C</p>
+ 介紹 CVSup 的奇技淫巧。</p>
<p><a href="&url.en.articles;/explaining-bsd/index.html">Explaining
BSD</a> (explaining-bsd)<br/>
- ``What is BSD? ( BSDH)''</p>
+ 解釋 ``What is BSD? (何為 BSD?)''</p>
<p><a href="&url.en.articles;/fbsd-from-scratch/index.html">FreeBSD
From Scratch</a> (fbsd-from-scratch)<br/>
- pqL즳۰ʽsĶBwˡBվtΡA]An˪ portC</p>
+ 如何從無到有自動編譯、安裝、調整系統,包括要裝的 port。</p>
<p><a href="&url.en.articles;/filtering-bridges/index.html">Filtering
Bridges</a> (filtering-bridges)<br/>
- վ㨾άѡAN FreeBSD ]w(bridge)ӫD router
- C</p>
+ 調整防火橋及相關路由,將 FreeBSD 設定為橋接器(bridge)而非 router
+ 。</p>
<p><a href="&url.en.articles;/fonts/index.html">Fonts and
FreeBSD</a> (fonts)<br/>
- FreeBSD Uئr޳NAHΦbUص{WpBΤC</p>
+ 介紹 FreeBSD 的各種字型技術,以及在各種程式上如何運用之。</p>
<p><a href="&url.articles;/freebsd-questions/index.html">How to get
the best results from the FreeBSD-questions mailing list</a>
(freebsd-questions)<br/>
- Uzpb -questions mailing list WAo󦳥ΪTC</p>
+ 協助您如何在 -questions mailing list 上,能得到更有用的資訊。</p>
<p><a href="&url.en.articles;/geom-class/index.html">Writing
a GEOM Class</a>(geom-class)<br/>
- GEOM Ӹ`Aæp󼶼g classC</p>
+ 介紹 GEOM 內部細節,並如何撰寫 class。</p>
<p><a href="&url.articles;/hubs/index.html">Mirroring FreeBSD</a>
(hubs)
- <br/>p󦨬 FreeBSD BCVSup serverBFTP mirror
- C</p>
+ <br/>如何成為 FreeBSD 網站、CVSup server、FTP 站等的 mirror 站
+ 。</p>
<p><a href="&url.en.articles;/ipsec-must/index.html">Independent
Verification of IPsec Functionality in FreeBSD</a>
(ipsec-must)<br/>
- T{ IPsec \઺覡C</p>
+ 確認 IPsec 功能的實驗方式。</p>
<p><a href="&url.en.articles;/laptop/article.html">FreeBSD on Laptops</a>
(laptop)<br/>
- bqWw FreeBSD TC</p>
+ 在筆電上安裝 FreeBSD 的相關資訊。</p>
<p><a href="&url.en.articles;/linux-comparison/article.html">FreeBSD: An Open Source Alternative to Linux</a>
(linux-comparison)<br/>
- Linux P FreeBSD tե֮ѳiC</p>
+ 解釋 Linux 與 FreeBSD 之間差異的白皮書報告。</p>
<p><a href="&url.articles;/mailing-list-faq/article.html">Frequently
Asked Questions About The FreeBSD Mailing Lists</a>
(mailing-list-faq)<br/>
- p󵽥 mailing listAקKg大׾ԡC</p>
+ 如何善用 mailing list,而避免月經文之類的論戰。</p>
<p><a href="&url.en.articles;/mh/index.html">An MH Primer</a>
(mh)<br/>
- Цpb FreeBSD Wϥ MH {ӦoHC</p>
+ 介紹如何在 FreeBSD 上使用 MH 程式來收發信。</p>
<p><a href="&url.articles;/nanobsd/index.html">Introduction
to NanoBSD</a> (nanobsd)<br/>
- NanoBSD uAOإ FreeBSD t imageAø˨
- Compact Flash ְ{OХd(H)HKOJtΥiHϥΡC</p>
+ 介紹 NanoBSD 相關工具,像是建立 FreeBSD 系統 image,並裝到
+ Compact Flash 快閃記憶卡(或隨身碟)以便讓嵌入式系統可以使用。</p>
<p><a href="&url.en.articles;/new-users/index.html">FreeBSD
First Steps</a> (new-users)<br/>
- FreeBSD &unix; sݪC</p>
+ 給 FreeBSD 及 &unix; 新手看的。</p>
<p><a href="&url.en.articles;/p4-primer/index.html">Perforce
in FreeBSD Development</a> (p4-primer)<br/>
- Perforce oMtΡAæPɤЦpH FreeBSD
- Perforce server Ӻ޲zpC</p>
+ 介紹 Perforce 這套版本控制系統,並同時介紹如何以 FreeBSD
+ Perforce server 來管理實驗計劃。</p>
<p><a href="&url.en.articles;/pam/index.html">Pluggable
Authentication Modules</a> (pam)<br/>
- FreeBSD PAM άҲաC</p>
+ 介紹 FreeBSD 內的 PAM 機制及相關模組。</p>
<p><a href="&url.en.articles;/portbuild/index.html">Package
building procedures</a> (portbuild)<br/>
- FreeBSD port @ζwsĶ@~( port sĶ package)
- C ~u portbuild cluster HκiBʽB
- release package sĶL{|@֤СC</p>
+ 介紹 FreeBSD port 維護團隊的定期編譯作業(由 port 編譯為 package)
+ 。 此外不只 portbuild cluster 以及漸進式、實驗性質、正式
+ release 的 package 編譯過程都會一併介紹。</p>
<p><a href="&url.articles;/pr-guidelines/index.html">FreeBSD
Problem Report Handling Guidelines</a> (pr-guidelines)<br/>
- FreeBSD PR Bz覡ijC</p>
+ 對 FreeBSD PR 的處理方式之建議。</p>
<p><a href="&url.articles;/problem-reports/index.html">Writing
FreeBSD Problem Reports</a> (problem-reports)<br/>
- p󥿽TgBeX FreeBSD pD^(PR)C</p>
+ 如何正確填寫、送出 FreeBSD 計劃的問題回報單(PR)。</p>
<p><a href="&url.en.articles;/pxe/index.html">PXE booting
FreeBSD</a> (pxe)<br/>
- pH FreeBSD ӫإ Intel PXE serverAåBp]w FreeBSD
- client ݨӥ PXE server }C</p>
+ 如何以 FreeBSD 來建立 Intel PXE server,並且如何設定 FreeBSD
+ client 端來由 PXE server 開機。</p>
<p><a href="&url.en.articles;/rc-scripting/index.html">Practical
rc.d scripting in BSD</a> (rc-scripting)<br/>
- Цp󼶼gs rc.d script HΤRJ rc.d scriptC</p>
+ 介紹如何撰寫新式 rc.d script 以及分析既有的 rc.d script。</p>
<p><a href="&url.en.articles;/relaydelay/article.html">FreeBSD as
a greylist mail server</a> (relaydelay)<br/>
- b FreeBSD WH SendmailBMySQLBPerlBrelaydelay n@㦳
- greylist \઺ mail serverC DUl󪺯LQ@C</p>
+ 在 FreeBSD 上以 Sendmail、MySQL、Perl、relaydelay 軟體實作具有
+ greylist 功能的 mail server。 此乃防垃圾郵件的神兵利器之一。</p>
<p><a href="&url.en.articles;/releng/index.html">FreeBSD
Release Engineering</a> (releng)<br/>
- FreeBSD release engineering ζҵo FreeBSD
- @~tΪL{C ~AYzөۻs FreeBSD
- oΰӷ~ܡA]|Ьu{C</p>
+ 介紹 FreeBSD release engineering 團隊所發行 FreeBSD
+ 作業系統的過程。 此外,若您有志於自製 FreeBSD
+ 發行或商業版的話,此文也會介紹相關工具程式。</p>
<p><a href="&url.en.articles;/releng-packages/index.html">FreeBSD
Release Engineering for Third Party Packages</a>
@@ -255,27 +255,27 @@
<p><a href="&url.en.articles;/serial-uart/index.html">Serial
and UART devices</a> (serial-uart)<br/>
- b FreeBSD Wϥ serial port H multi-port serial
- dӸ`C</p>
+ 在 FreeBSD 上使用 serial port 以及 multi-port serial
+ 卡的相關細節情報。</p>
<p><a href="&url.en.articles;/solid-state/index.html">FreeBSD
and Solid State Devices</a> (solid-state)<br/>
- b FreeBSD Wϥ SSD(Solid State DiskATAw)C</p>
+ 在 FreeBSD 上使用 SSD(Solid State Disk,固態硬碟)。</p>
<p><a href="&url.en.articles;/vm-design/index.html">Design
elements of the FreeBSD VM system</a> (vm-design)<br/>
- ѲLJ` FreeBSD O(Virtual Memory)]pC</p>
+ 由淺入深介紹 FreeBSD 虛擬記憶體(Virtual Memory)機制的設計。</p>
- <h2>s</h2>
+ <h2>它山之石</h2>
- <p>bLA]\h FreeBSD TC</p>
+ <p>在其他網站,也有許多不錯的 FreeBSD 資訊。</p>
- <h3>峹</h3>
+ <h3>網路文章</h3>
<ul>
<li>
- <p>Niels Jorgensen w FreeBSD }oL{dzNsG<a
+ <p>Niels Jorgensen 有份針對 FreeBSD 開發過程的學術研究:<a
href="http://www.ruc.dk/~nielsj/research/publications/freebsd.pdf">
``Putting it All in the Trunk, Incremental Software
Development in the FreeBSD Open Source Project''</a>
@@ -283,24 +283,24 @@
</li>
<li>
- <p><a href="mailto:mckusick@mckusick.com">Kirk McKusick</a>ADO
- l BSD ]p̤@AثeЩfJܥ[{j(U.C. Berkeley)A
- }¨ <a href="http://www.mckusick.com/courses/">4.4BSD Kernel
- Internals</a> FreeBSD ҵ{C ثe]ѿvaA
- HѦ]GLkhWҪHϥΡC</p>
+ <p><a href="mailto:mckusick@mckusick.com">Kirk McKusick</a>,乃是
+ 原始 BSD 設計者之一,目前任教於柏克萊加州大學(U.C. Berkeley),
+ 有開授兩門 <a href="http://www.mckusick.com/courses/">4.4BSD Kernel
+ Internals</a> 的 FreeBSD 課程。 目前也有提供錄影帶,
+ 以供因故無法去上課的人使用。</p>
</li>
<li>
<p><a href="http://flag.blackened.net/freebsd/">FreeBSD How-To's for
- the Lazy and Hopeless</a> sg覡PA
- DnOѪ "how-to" 覡AH²椶Цp]wBվ FreeBSDC</p>
+ the Lazy and Hopeless</a> 編寫方式較為鬆散,
+ 主要是提供的 "how-to" 方式,以簡單介紹如何設定、調整 FreeBSD。</p>
</li>
<li>
<p><a href="http://www.tldp.org/HOWTO/Linux+FreeBSD.html">The
- Linux+FreeBSD mini-HOWTO</a> ЦpbP@Wϥ Linux FreeBSD
- C Ӥ妳 FreeBSD ñQpا@~tΦ@͡AOϥΦ@P
- swap ŶC</p>
+ Linux+FreeBSD mini-HOWTO</a> 介紹如何在同一機器上使用 Linux 及 FreeBSD
+ 。 該文有介紹 FreeBSD 並探討如何讓兩種作業系統共生,像是使用共同的
+ swap 空間。</p>
</li>
<li>
@@ -309,10 +309,10 @@
</li>
<li>
- <p><em>FreeBSD Installation Details for Newbies</em>C
- w׾ <a
+ <p><em>FreeBSD Installation Details for Newbies</em>。
+ 本文已匯整至 <a
href="&url.books;/handbook/install.html">The
- FreeBSD Handbook</a>C</p>
+ FreeBSD Handbook</a>。</p>
</li>
<li>
@@ -326,17 +326,17 @@
</li>
<li>
- <p><em>Writing an ISA device driver</em>C
- w׾ <a
+ <p><em>Writing an ISA device driver</em>。
+ 本文已匯整至 <a
href="&url.books;/arch-handbook/index.html">The FreeBSD
- Architecture Handbook</a>C</p>
+ Architecture Handbook</a>。</p>
</li>
<li>
- <p><em>FreeBSD Assembly Language Programming Tutorial</em>C
- w׾ <a
+ <p><em>FreeBSD Assembly Language Programming Tutorial</em>。
+ 本文已匯整至 <a
href="&url.books;/developers-handbook/index.html">The FreeBSD
- Developer's Handbook</a>C</p>
+ Developer's Handbook</a>。</p>
</li>
<li>
@@ -346,15 +346,15 @@
<li>
<p><a href="http://people.FreeBSD.org/~fsmp/SMP/SMP.html">The
- SMP support page</a> FreeBSD 4.X Χ󦭴 SMP 䴩C</p>
+ SMP support page</a> 介紹 FreeBSD 4.X 及更早期版本的 SMP 支援。</p>
</li>
<li>
- <p> SilberschatzBGalvinBGagne Ҽg <i>Operating Systems
- Concepts</i> ojDZЬѪ A Aثe] <a
- href="http://www.wiley.com/college/silberschatz6e/0471417432/pdf/bsd.pdf">PDF </a>C
- ӪDnOP FreeBSD AæԺɤ FreeBSD
- @~tΤB@C</p>
+ <p>由 Silberschatz、Galvin、Gagne 所撰寫的 <i>Operating Systems
+ Concepts</i> 這本大學教科書的附錄 A 部份,目前也有 <a
+ href="http://www.wiley.com/college/silberschatz6e/0471417432/pdf/bsd.pdf">PDF 版</a>。
+ 該附錄主要是與 FreeBSD 比較有關,並有詳盡介紹 FreeBSD
+ 作業系統內部運作。</p>
</li>
</ul>
diff --git a/zh_TW.UTF-8/htdocs/docs/webresources.xml b/zh_TW.UTF-8/htdocs/docs/webresources.xml
new file mode 100644
index 0000000000..d42fef824c
--- /dev/null
+++ b/zh_TW.UTF-8/htdocs/docs/webresources.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN"
+"http://www.FreeBSD.org/XML/doc/share/xml/xhtml10-freebsd.dtd" [
+<!ENTITY title "網頁資源">
+]>
+
+<!--
+ The FreeBSD Traditional Chinese Documentation Project
+ Original Revision 1.7
+-->
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>&title;</title>
+
+ <cvs:keyword xmlns:cvs="http://www.FreeBSD.org/XML/CVS">$FreeBSD$</cvs:keyword>
+ </head>
+
+ <body class="navinclude.docs">
+
+ <h2>連結</h2>
+
+ <ul>
+ <li>
+ <p><a href="http://dmoz.org/Computers/Software/Operating_Systems/Unix/BSD/FreeBSD/">Open
+ Directory 計劃</a> 有列出一堆不錯的 FreeBSD 連結,
+ 包括一些有助於推廣市場的
+ <a href="http://dmoz.org/Computers/Software/Operating_Systems/Unix/BSD/FreeBSD/Prominent_Users/">知名用戶</a>。</p></li>
+ </ul>
+
+ <h2>現實生活中...</h2>
+
+ <h3><a name="press" href="../news/press.html">FreeBSD 相關報導</a></h3>
+
+ <p>FreeBSD 的相關報導。</p>
+
+ <h2>Newsgroups</h2>
+
+ <p>以下是 FreeBSD 使用者較常參與的討論區:</p>
+
+ <ul>
+ <li>
+ <p><a
+ href="news:comp.unix.bsd.freebsd.announce">comp.unix.bsd.freebsd.announce</a>
+ (有管制)</p>
+ </li>
+
+ <li>
+ <p><a
+ href="news:comp.unix.bsd.freebsd.misc">comp.unix.bsd.freebsd.misc</a></p>
+ </li>
+
+ <li>
+ <p><a
+ href="news:comp.unix.bsd.misc">comp.unix.bsd.misc</a></p>
+ </li>
+ </ul>
+
+ <h2>額外資源</h2>
+
+ <h3><a href="http://fxr.watson.org/">The
+ Source Code</a></h3>
+
+ <p>若想挖掘原始碼來看的話,這邊有現成的 FreeBSD <em>kernel</em>
+ 原始碼的網頁版。 這是由 Robert Watson 所製作的。</p>
+
+ <h3><a href="http://www.daemonnews.org/">Daemon News</a></h3>
+
+ <p>BSD 新聞網站的龍頭</p>
+
+ <p>就像 FreeBSD,每篇文章都是志工所提供的。
+ 該計劃目標就是矢志成為BSD 新聞網站的龍頭,
+ 並也提供發佈更正稿、新聞來源的管道。</p>
+
+ <h3><a name="diary" href="http://www.freebsddiary.org/">The FreeBSD
+ Diary</a></h3>
+
+ <p>The FreeBSD Diary 收錄許多初學者必讀的 how-to 優良文件,
+ 該站矢志成為提供 step-by-step 文件(說明如何安裝、設定各種 port
+ 軟體)的匯集地。</p>
+
+ <h3><a href="http://www.OnLamp.com/bsd/">The O'Reilly Network BSD
+ Dev Center</a></h3>
+
+ <p>The BSD Dev Center 有兩個 FreeBSD 專欄,
+ 著重於各類技巧以及上手說明。</p>
+
+ <h3><a href="http://www.BSDForums.org">BSDForums.org</a></h3>
+
+ <p>BSDForums.org 有活躍的討論區以及 FreeBSD 及各類 BSD 的新聞、
+ 社群網站。</p>
+
+ <h3><a href="http://www.bsdguides.org">BSD Guides</a></h3>
+
+ <p>BSDGuides.org 有放許多 BSD 相關的上手說明文件。</p>
+
+ <h2>其他文件</h2>
+
+ <p><a href="http://docs.FreeBSD.org/44doc/">4.4BSD Documents</a>: 乃是
+ 4.4BSD 文件的 HTML 版,也可以在每台 FreeBSD 機器上的 <a
+ href="file://localhost/usr/share/doc">/usr/share/doc</a> 目錄內瀏覽(
+ 若有裝 doc 套件的話)。</p>
+
+ <p><a href="http://docs.FreeBSD.org/info/">Info Documents</a>: 乃是
+ Info 文件的 HTML 版,也可以在每台 FreeBSD 機器上的 <a
+ href="file://localhost/usr/share/info">/usr/share/info</a> 目錄內瀏覽(
+ 若有裝 info 套件的話)。</p>
+
+
+</body>
+</html>
diff --git a/zh_TW.Big5/htdocs/index.xsl b/zh_TW.UTF-8/htdocs/index.xsl
index 1adc7c32a3..7908557948 100644
--- a/zh_TW.Big5/htdocs/index.xsl
+++ b/zh_TW.UTF-8/htdocs/index.xsl
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet PUBLIC "-//FreeBSD//DTD FreeBSD XSLT 1.0 DTD//EN"
"http://www.FreeBSD.org/XML/www/share/xml/xslt10-freebsd.dtd" [
<!ENTITY title "The FreeBSD Project">
@@ -42,17 +42,17 @@
Based on BSD &unix;
</h1>
<p>
- FreeBSD&reg; O@إi@~tΡAi䴩
- x86 ۮe(]A Pentium&reg; M Athlon&trade;)B
- amd64 ۮe(]A Opteron&trade;B Athlon&trade;64 M EM64T)B
- UltraSPARC&reg;B IA-64B PC-98 H ARM [cqC
- ䷽۩ BSDA ѥ[{jǧBJQն}o &unix; C ثe
- <a href="&enbase;/doc/en_US.ISO8859-1/articles/contributors/staff-committers.html">\hHѻP}oζ</a> Һ@C
- ~AU <a href="&base;/platforms/">w饭x</a> 䴩{סA
- ]UۦҤPC
+ FreeBSD&reg; 是一種先進的作業系統,可支援
+ x86 相容(包括 Pentium&reg; 和 Athlon&trade;)、
+ amd64 相容(包括 Opteron&trade;、 Athlon&trade;64 和 EM64T)、
+ UltraSPARC&reg;、 IA-64、 PC-98 以及 ARM 架構的電腦。
+ 其源自於 BSD, 由加州大學伯克利分校開發的 &unix; 版本。 目前由
+ <a href="&enbase;/doc/en_US.ISO8859-1/articles/contributors/staff-committers.html">有許多人參與的開發團隊</a> 所維護。
+ 此外,對各種 <a href="&base;/platforms/">硬體平台</a> 的支援程度,
+ 也各自有所不同。
</p>
<div id="txtfrontfeaturelink">
- &#187;<a href="&base;/about.html" title="Ѿ\Ա">Ѿ\Ա</a>
+ &#187;<a href="&base;/about.html" title="參閱詳情">參閱詳情</a>
</div> <!-- TXTFRONTFEATURELINK -->
</div> <!-- FRONTFEATURECONTENT -->
</div> <!-- FRONTFEATURELEFT -->
@@ -61,30 +61,30 @@
<div class="frontgetroundbox">
<div class="frontgettop"><div><b style="display: none">.</b></div></div>
<div class="frontgetcontent">
- <a href="&base;/where.html">ߧYo FreeBSD</a>
+ <a href="&base;/where.html">立即取得 FreeBSD</a>
</div> <!-- frontgetcontent -->
<div class="frontgetbot"><div><b style="display: none">.</b></div></div>
</div> <!-- frontgetroundbox -->
<div id="frontreleases">
<div id="frontreleasescontent" class="txtshortcuts">
- <h2><a href="&enbase;/releases/"> ̷s </a></h2>
+ <h2><a href="&enbase;/releases/"> 最新版本 </a></h2>
<ul id="frontreleaseslist">
<li>
<a href="&enbase;/&u.rel.announce;">Production Release &rel.current;</a>
</li>
<li>
- <a href="&enbase;/&u.rel2.announce;">(¦)Production Release &rel2.current;</a>
+ <a href="&enbase;/&u.rel2.announce;">(舊式)Production Release &rel2.current;</a>
</li>
<xsl:if test="'&beta.testing;' != 'IGNORE'">
<li>
- <a href="&base;/where.html#helptest">YNoG
+ <a href="&base;/where.html#helptest">即將發佈
&betarel.current; - &betarel.vers;</a>
</li>
</xsl:if>
<xsl:if test="'&beta2.testing;' != 'IGNORE'">
<li>
- <a href="&base;/where.html#helptest">YNoG
+ <a href="&base;/where.html#helptest">即將發佈
&betarel2.current; - &betarel2.vers;</a>
</li>
</xsl:if>
@@ -94,32 +94,32 @@
</div> <!-- FRONTFEATUREMIDDLE -->
<div id="frontfeatureright">
- <h2 class="blockhide">y</h2>
+ <h2 class="blockhide">語言</h2>
<div id="languagenav">
<ul id="languagenavlist">
<li>
- <a href="&enbase;/de/" title="wy">de</a>
+ <a href="&enbase;/de/" title="德語">de</a>
</li>
<li>
- <a href="&enbase;/" title="^y">en</a>
+ <a href="&enbase;/" title="英語">en</a>
</li>
<li>
- <a href="&enbase;/es/" title="y">es</a>
+ <a href="&enbase;/es/" title="西語">es</a>
</li>
<li>
- <a href="&enbase;/fr/" title="ky">fr</a>
+ <a href="&enbase;/fr/" title="法語">fr</a>
</li>
<li>
- <a href="&enbase;/it/" title="qy">it</a>
+ <a href="&enbase;/it/" title="義語">it</a>
</li>
<li>
- <a href="&enbase;/ja/" title="y">ja</a>
+ <a href="&enbase;/ja/" title="日語">ja</a>
</li>
<li>
- <a href="&enbase;/ru/" title="Xy">ru</a>
+ <a href="&enbase;/ru/" title="俄語">ru</a>
</li>
<li class="last-child">
- <a href="&enbase;/zh_CN/" title="(²)">zh_CN</a>
+ <a href="&enbase;/zh_CN/" title="中文(簡體)">zh_CN</a>
</li>
</ul>
</div> <!-- LANGUAGENAV -->
@@ -140,19 +140,19 @@
<div id="frontshortcuts">
<div id="frontshortcutscontent" class="txtshortcuts">
- <h2>`γs</h2>
+ <h2>常用連結</h2>
<ul id="frontshortcutslist">
<li>
- <a href="&enbase;/community/mailinglists.html" title="l׾">l׾</a>
+ <a href="&enbase;/community/mailinglists.html" title="郵件論壇">郵件論壇</a>
</li>
<li>
- <a href="&base;/send-pr.html" title="i Bug">i Bug</a>
+ <a href="&base;/send-pr.html" title="報告 Bug">報告 Bug</a>
</li>
<li>
- <a href="&enbase;/doc/zh_TW.Big5/books/faq/index.html" title="FAQ">FAQ</a>
+ <a href="&enbase;/doc/zh_TW.UTF-8/books/faq/index.html" title="FAQ">FAQ</a>
</li>
<li>
- <a href="&enbase;/doc/zh_TW.Big5/books/handbook/index.html" title="Handbook">Handbook</a>
+ <a href="&enbase;/doc/zh_TW.UTF-8/books/handbook/index.html" title="Handbook">Handbook</a>
</li>
<li>
<a href="&enbase;/ports/index.html" title="Ports">Ports</a>
@@ -165,7 +165,7 @@
<div class="frontnewroundbox">
<div class="frontnewtop"><div><b style="display: none">.</b></div></div>
<div class="frontnewcontent">
- <a href="&enbase;/projects/newbies.html">x FreeBSDH</a>
+ <a href="&enbase;/projects/newbies.html">不熟悉 FreeBSD?</a>
</div> <!-- frontnewcontent -->
<div class="frontnewbot"><div><b style="display: none">.</b></div></div>
</div> <!-- frontnewroundbox -->
@@ -177,7 +177,7 @@
<div id="frontnemscontainer">
<div id="frontnews">
<div id="frontnewscontent" class="txtnewsevent">
- <h2>sD</h2>
+ <h2>新聞</h2>
<div class="newseventswrap">
<xsl:call-template name="html-index-news-project-items">
@@ -188,10 +188,10 @@
<div>
<ul class="newseventslist">
<li class="first-child">
- <a href="&base;/news/newsflash.html" title="hsD">hsD</a>
+ <a href="&base;/news/newsflash.html" title="更多新聞">更多新聞</a>
</li>
<li class="last-child">
- <a href="&base;/news/news.rdf" title="sD RSS Feed"><img class="rssimage" src="&enbase;/layout/images/ico_rss.png" width="27" height="12" alt="sD RSS Feed" /></a>
+ <a href="&base;/news/news.rdf" title="新聞 RSS Feed"><img class="rssimage" src="&enbase;/layout/images/ico_rss.png" width="27" height="12" alt="新聞 RSS Feed" /></a>
</li>
</ul>
</div> <!-- unnamed -->
@@ -203,7 +203,7 @@
<div id="frontevents">
<div id="fronteventscontent" class="txtnewsevent">
- <h2></h2>
+ <h2>近期活動</h2>
<div class="newseventswrap">
<xsl:call-template name="html-index-events-items">
@@ -214,7 +214,7 @@
<div>
<ul class="newseventslist">
<li class="only-child">
- <a href="&enbase;/events/" title="h">h</a>
+ <a href="&enbase;/events/" title="更多活動">更多活動</a>
</li>
</ul>
</div> <!-- unnamed -->
@@ -226,7 +226,7 @@
<div id="frontmedia">
<div id="frontmediacontent" class="txtnewsevent">
- <h2>C</h2>
+ <h2>媒體報導</h2>
<div class="newseventswrap">
<xsl:call-template name="html-index-news-press-items">
@@ -237,7 +237,7 @@
<div>
<ul class="newseventslist">
<li class="only-child">
- <a href="&base;/news/press.html" title="hC">hC</a>
+ <a href="&base;/news/press.html" title="更多媒體報導">更多媒體報導</a>
</li>
</ul>
</div> <!-- unnamed -->
@@ -249,7 +249,7 @@
<div id="frontsecurity">
<div id="frontsecuritycontent" class="txtnewsevent">
- <h2>wi</h2>
+ <h2>安全公告</h2>
<div class="newseventswrap">
<xsl:call-template name="html-index-advisories-items">
@@ -260,17 +260,17 @@
<div>
<ul class="newseventslist">
<li class="first-child">
- <a href="&base;/security/" title="hwi">h</a>
+ <a href="&base;/security/" title="更多安全公告">更多</a>
</li>
<li class="last-child">
- <a href="&enbase;/security/advisories.rdf" title="wi RSS Feed"><img class="rssimage" src="&enbase;/layout/images/ico_rss.png" width="27" height="12" alt="wi RSS Feed" /></a>
+ <a href="&enbase;/security/advisories.rdf" title="安全公告 RSS Feed"><img class="rssimage" src="&enbase;/layout/images/ico_rss.png" width="27" height="12" alt="安全公告 RSS Feed" /></a>
</li>
</ul>
</div> <!-- unnamed -->
</div> <!-- newseventswrap -->
<br />
- <h2>ɻ~i</h2>
+ <h2>勘誤公告</h2>
<div class="newseventswrap">
<xsl:call-template name="html-index-advisories-items">
diff --git a/zh_TW.Big5/htdocs/layout/Makefile b/zh_TW.UTF-8/htdocs/layout/Makefile
index 93118fd1e5..93118fd1e5 100644
--- a/zh_TW.Big5/htdocs/layout/Makefile
+++ b/zh_TW.UTF-8/htdocs/layout/Makefile
diff --git a/zh_TW.Big5/htdocs/layout/Makefile.inc b/zh_TW.UTF-8/htdocs/layout/Makefile.inc
index 0934dc2b0f..0934dc2b0f 100644
--- a/zh_TW.Big5/htdocs/layout/Makefile.inc
+++ b/zh_TW.UTF-8/htdocs/layout/Makefile.inc
diff --git a/zh_TW.Big5/htdocs/layout/css/Makefile b/zh_TW.UTF-8/htdocs/layout/css/Makefile
index 574986498f..574986498f 100644
--- a/zh_TW.Big5/htdocs/layout/css/Makefile
+++ b/zh_TW.UTF-8/htdocs/layout/css/Makefile
diff --git a/zh_TW.Big5/htdocs/layout/css/fixed.css b/zh_TW.UTF-8/htdocs/layout/css/fixed.css
index bb3da6d76b..bb3da6d76b 100644
--- a/zh_TW.Big5/htdocs/layout/css/fixed.css
+++ b/zh_TW.UTF-8/htdocs/layout/css/fixed.css
diff --git a/zh_TW.Big5/htdocs/layout/css/fixed_large.css b/zh_TW.UTF-8/htdocs/layout/css/fixed_large.css
index bee0371b19..bee0371b19 100644
--- a/zh_TW.Big5/htdocs/layout/css/fixed_large.css
+++ b/zh_TW.UTF-8/htdocs/layout/css/fixed_large.css
diff --git a/zh_TW.Big5/htdocs/layout/css/global.css b/zh_TW.UTF-8/htdocs/layout/css/global.css
index 83deb38197..83deb38197 100644
--- a/zh_TW.Big5/htdocs/layout/css/global.css
+++ b/zh_TW.UTF-8/htdocs/layout/css/global.css
diff --git a/zh_TW.Big5/htdocs/layout/css/layout.css b/zh_TW.UTF-8/htdocs/layout/css/layout.css
index 6f16f4673d..6f16f4673d 100644
--- a/zh_TW.Big5/htdocs/layout/css/layout.css
+++ b/zh_TW.UTF-8/htdocs/layout/css/layout.css
diff --git a/zh_TW.Big5/htdocs/layout/css/navigation.css b/zh_TW.UTF-8/htdocs/layout/css/navigation.css
index bd0bc8f1ab..bd0bc8f1ab 100644
--- a/zh_TW.Big5/htdocs/layout/css/navigation.css
+++ b/zh_TW.UTF-8/htdocs/layout/css/navigation.css
diff --git a/zh_TW.Big5/htdocs/layout/css/text.css b/zh_TW.UTF-8/htdocs/layout/css/text.css
index 72dc523f43..72dc523f43 100644
--- a/zh_TW.Big5/htdocs/layout/css/text.css
+++ b/zh_TW.UTF-8/htdocs/layout/css/text.css
diff --git a/zh_TW.Big5/htdocs/logo.xml b/zh_TW.UTF-8/htdocs/logo.xml
index 462c7e27d1..8b08df410b 100644
--- a/zh_TW.Big5/htdocs/logo.xml
+++ b/zh_TW.UTF-8/htdocs/logo.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN"
"http://www.FreeBSD.org/XML/doc/share/xml/xhtml10-freebsd.dtd" [
<!ENTITY title "FreeBSD Logo">
@@ -17,71 +17,71 @@
<body class="navinclude.about">
<ul>
- <li><a href="#guideline">ϥέh</a></li>
- <li><a href="#resource">귽</a></li>
- <li><a href="#sample">˥</a></li>
+ <li><a href="#guideline">使用原則</a></li>
+ <li><a href="#resource">資源</a></li>
+ <li><a href="#sample">樣本</a></li>
</ul>
<p></p>
- <h2 id="guideline">ϥέh</h2>
+ <h2 id="guideline">使用原則</h2>
- <p>FreeBSD O FreeBSD |UӼСC
- FreeBSD Logo H The Power to Serve O FreeBSD |ӼСC</p>
+ <p>FreeBSD 是 FreeBSD 基金會的註冊商標。
+ FreeBSD Logo 以及 The Power to Serve 均是 FreeBSD 基金會的商標。</p>
- <p>귽檺ϤA ib FreeBSD |vpUϥΡC</p>
+ <p>“資源”欄的圖片, 均可在有 FreeBSD 基金會授權的情況下使用。</p>
- <p>nFpoϥγo@ Logo viTAаѾ\
+ <p>要了解關於如何獲得使用這一 Logo 授權的進階資訊,請參閱
<a href="http://www.freebsdfoundation.org/documents/Guidelines.shtml">FreeBSD
- |</a> Logo ϥέhC</p>
+ 基金會</a> 的 Logo 使用原則。</p>
- <h2 id="resource">귽</h2>
+ <h2 id="resource">資源</h2>
- <h3>з Logo (m)</h3>
+ <h3>標準 Logo (全彩)</h3>
- <!-- p>榡: <a>Adobe(r) Illustrator(r)</a>, <a>SVG</a>, <a>EPS</a></p -->
+ <!-- p>格式: <a>Adobe(r) Illustrator(r)</a>, <a>SVG</a>, <a>EPS</a></p -->
<p><a href="logo/logo-full.png"><img src="logo/logo-full-thumb.png"
alt=""/></a></p>
- <h3>з Logo (mfttխI)</h3>
+ <h3>標準 Logo (全彩搭配暗色調背景)</h3>
- <!-- p>榡: <a>Adobe(r) Illustrator(r)</a>, <a>SVG</a>, <a>EPS</a></p -->
+ <!-- p>格式: <a>Adobe(r) Illustrator(r)</a>, <a>SVG</a>, <a>EPS</a></p -->
<p><a href="logo/logo-reverse.png"><img
src="logo/logo-reverse-thumb.png" alt=""/></a></p>
- <!-- h3>з Logo (grayscaled)</h3 -->
+ <!-- h3>標準 Logo (grayscaled)</h3 -->
- <!-- p>榡: <a>Adobe(r) Illustrator(r)</a>, <a>SVG</a>, <a>EPS</a></p -->
+ <!-- p>格式: <a>Adobe(r) Illustrator(r)</a>, <a>SVG</a>, <a>EPS</a></p -->
- <h3>Standard Logo (¥)</h3>
+ <h3>Standard Logo (黑白)</h3>
- <!-- p>榡: <a>Adobe(r) Illustrator(r)</a>, <a>SVG</a>, <a>EPS</a></p -->
+ <!-- p>格式: <a>Adobe(r) Illustrator(r)</a>, <a>SVG</a>, <a>EPS</a></p -->
<p><a href="logo/logo-bw.png"><img src="logo/logo-bw-thumb.png"
alt=""/></a></p>
- <h3>Vqϧή榡</h3>
+ <h3>向量圖形格式</h3>
- <p>榡: <a href="logo/logo-basic.ai">Adobe(r) Illustrator(r)</a>,
+ <p>格式: <a href="logo/logo-basic.ai">Adobe(r) Illustrator(r)</a>,
<a href="logo/logo-basic.svg">SVG</a></p>
<p><a href="logo/logo-basic.png"><img
src="logo/logo-basic-thumb.png" alt=""/></a></p>
- <h2 id="sample">˨</h2>
+ <h2 id="sample">樣例</h2>
- <p>`NG boǹϤ "free<font color="red">BSD</font>" rA
- O logo vɩҴZC
- oqrTgkOϥΦP@CӫDءA
- BĤ@Ӧr "f" אּjg "F"C</p>
+ <p>注意: 在這些圖片中的 "free<font color="red">BSD</font>" 文字,
+ 是基於 logo 競選時所提的草稿版本。
+ 這段文字正確的寫法是使用同一種顏色而非兩種,
+ 且第一個字母 "f" 應改為大寫 "F"。</p>
- <h3>CD/DVD ]</h3>
+ <h3>CD/DVD 包裝</h3>
<p><a href="logo/cd.jpg"><img src="logo/cd-thumb.jpg" alt=""/></a></p>
- <h3>H</h3>
+ <h3>明信片</h3>
<div><a href="logo/postcard1.jpg"><img style="margin:0.5em;
border:2px solid black;" src="logo/postcard1-thumb.jpg"
@@ -101,9 +101,9 @@
<div style="clear:left;">&nbsp;</div>
- <h3>६</h3>
+ <h3>桌布</h3>
- <p>o̬O@Ǯ६˥C</p>
+ <p>這裡是一些桌布樣本。</p>
<p><a href="logo/wall1.jpg"><img src="logo/wall1-thumb.jpg"
alt=""/></a></p>
diff --git a/zh_TW.UTF-8/htdocs/send-pr.xml b/zh_TW.UTF-8/htdocs/send-pr.xml
new file mode 100644
index 0000000000..ce61440b5d
--- /dev/null
+++ b/zh_TW.UTF-8/htdocs/send-pr.xml
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN"
+"http://www.FreeBSD.org/XML/doc/share/xml/xhtml10-freebsd.dtd" [
+<!ENTITY title "提交 FreeBSD 問題報告(problem report)">
+<!ENTITY copyright "This gnats pr-submission mechanism Copyright &copy; 1996
+ The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.">
+<!ENTITY bugbusters "bugbusters@FreeBSD.org">
+]>
+
+<!-- The FreeBSD Traditional Chinese Documentation Project -->
+<!-- Original Revision 1.58 -->
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>&title;</title>
+
+ <cvs:keyword xmlns:cvs="http://www.FreeBSD.org/XML/CVS">$FreeBSD$</cvs:keyword>
+ </head>
+
+ <body class="navinclude.support">
+
+ <!-- Copyright (c) 1996 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED. -->
+
+ <img src="&enbase;/gifs/bug.jpg" alt="Bugs" align="right" border="0" width="200" height="233"/>
+
+ <p>感謝您花費時間讓我們了解 FreeBSD 中所存在的問題。</p>
+
+ <p>透過這個表格,您可以提交在 source code、文件、網頁的問題回報。
+ 如果您在安裝 FreeBSD 時遇到問題,或者想提出類似『為什麼
+ <b>○○</b> 不能用』或『FreeBSD 是否能與 <b>某樣軟體</b> 一起使用』,
+ 請在相關的論壇提出問題。 由於問題的各情況不同,請參閱
+ <a href="support.html">支援</a>。</p>
+
+ <p>在填寫這個表格之前,請花些時間閱讀
+ <a href="&enbase;/doc/en_US.ISO8859-1/articles/problem-reports/article.html">
+ 如何撰寫 FreeBSD 問題報告</a> 的事前準備。 這將為您省下時間,
+ 並儘可能降低獲得與問題有關幫助時的失敗機率。 在提交問題報告之前請檢查是否
+ <a href="&cgibase;/query-pr-summary.cgi?query">已經有人提交過同樣的報告</a> 或者在
+ <a href="&enbase;/doc/zh_TW.UTF-8/books/faq/">FAQ</a> 中是否已經有所記錄。</p>
+
+ <p>請盡可能詳細地填寫表格所要求的資料。 特別注意,
+ 您所填寫的 "Environment" (環境) 這段是指有問題的那一台機器環境。</p>
+
+ <p><b>注意</b>: 由於 web 本身缺陷,您所做的複製、貼上將會破壞原先的 Tab 和空格,
+ 因此這一 web 表格不該用來以複製、貼上的方式提交代碼。</p>
+
+ <p>需要注意的是,除非您明確說明,提交到 FreeBSD Project 的任何變動,
+ 都將被認為是以 FreeBSD 相同的授權提供的。 此外,
+ 您所使用來提交問題報告的電子郵件地址,將通過 web 界面公諸於眾,
+ 因此您應使用有效的垃圾郵件過濾器。</p>
+
+ <p>如果您正提交 patch 檔案,請注意我們只接受純文字(text/*) 以及 shar
+ 這兩種格式,因此您的瀏覽器必須能夠送出正確的檔案類型。
+ 如果您的瀏覽器做這項工作時有問題,比較簡單的辦法是把檔案改名,
+ 使其以 '.txt' 結尾。</p>
+
+ <p>最後,就是使用這一頁面時,您必須要能看辨識用的圖形,
+ 這是我們用以阻止對這一系統進行濫用的一項措施。 我們非常遺憾不得不這樣做,
+ 但這種做法是無法避免的。 如果您由於任何原因無法看到圖片,
+ 請接受我們造成您不方便的歉意,並將您的問題報告,
+ 發送給 <a href="mailto:&bugbusters;">bugbusters 團隊</a>
+ 將提交內容送入問題追蹤系統。</p>
+
+ <p><b>注意</b>: 在按下 '提交' 之前,請<b>先記得,儲存您所輸入的內容</b>。
+ 如果您的瀏覽器會把圖片 cache 起來,或者您花了超過 45 分鐘來填寫表格,
+ 則在頁面上看到就有可能是過時的圖片,
+ 進而導致系統拒絕您提交的內容。 隨您的瀏覽器的不同,
+ 您可能會在這種情況下 <b>遺失所填的內容</b>。
+ 請儘量避免出現這種情況。</p>
+
+ <form action="http://www.FreeBSD.org/cgi/dosendpr.cgi" method="post"
+ enctype="multipart/form-data">
+ <input type="hidden" name="submitterid" value="current-users"/>
+ <input type="hidden" name="confidential" value="no"/>
+
+ <label for="email">您的電子郵件地址</label>:<br/>
+ <input type="text" name="email" id="email" size="40"/>
+
+ <br/><br/><label for="originator">您的名字</label>:<br/>
+ <input type="text" name="originator" id="originator" size="40"/>
+
+ <br/><br/><label for="organization">所屬團體或公司</label>:<br/>
+ <input type="text" name="organization" id="organization" size="40"/>
+
+ <br/><br/><label for="synopsis">對問題癥狀的扼要描述:</label> <br/>
+ <input type="text" name="synopsis" id="synopsis" size="60"/>
+
+ <br/><br/><label for="category">分類</label>:<select name="category" id="category">
+ <option> advocacy</option>
+ <option> alpha</option>
+ <option> amd64</option>
+ <option> bin</option>
+ <option> conf</option>
+ <option> docs</option>
+ <option> gnu</option>
+ <option> i386</option>
+ <option> ia64</option>
+ <option> java</option>
+ <option> kern</option>
+ <option selected="selected"> misc</option>
+ <option> ports</option>
+ <option> powerpc</option>
+ <option> sparc64</option>
+ <option> standards</option>
+ <option> threads</option>
+ <option> usb</option>
+ <option> www</option>
+ </select>
+
+ <br/><br/><label for="severity">嚴重程度</label>:<select name="severity" id="severity">
+ <option> non-critical</option>
+ <option> serious</option>
+ <option> critical</option>
+ </select>
+
+ <br/><br/><label for="priority">優先級</label>:<select name="priority" id="priority">
+ <option> low</option>
+ <option> medium</option>
+ <option> high</option>
+ </select>
+
+ <br/><br/><label for="class">提交種類:</label> <select name="class" id="class">
+ <option> sw-bug</option>
+ <option> doc-bug</option>
+ <option> change-request</option>
+ <option> update</option>
+ <option> maintainer-update</option>
+ </select>
+
+ <br/><br/><label for="release">您使用的是哪個 FreeBSD 版本</label>:<br/>
+ <input type="text" name="release" id="release" size="40"/>
+
+ <br/><br/><label for="environment">環境 (有問題的那台機器上的 "uname -a" 結果)</label>:
+ <br/>
+ <textarea name="environment" id="environment" rows="3" cols="80"></textarea><br/><br/>
+
+ <label for="description">完整描述</label>:<br/>
+ <textarea name="description" id="description" rows="20" cols="80"></textarea><br/><br/>
+
+ <label for="howtorepeat">如何重現問題</label>:<br/>
+ <textarea name="howtorepeat" id="howtorepeat" rows="10" cols="80"></textarea><br/><br/>
+
+ <label for="fix">(如果你知道)如何修正問題</label>:<br/>
+ <textarea name="fix" id="fix" rows="20" cols="80"></textarea><br/><br/>
+
+ <label for="patch">和/或 patch 檔案 (最大 100KB)</label>:
+ <input type="file" name="patch" id="patch" maxlength="102400"
+ accept="text/*"/><br/>
+
+ <label for="code-confirm">最後,請輸入下面圖片中的文字,
+ 以証明您不是機器人:<br/><br/>
+ <img src="http://www.FreeBSD.org/cgi/confirm-code.cgi?db=sendpr"
+ alt="隨機的文字; 如果您無法察看圖片,請發送郵件給 &bugbusters;"
+ border="0" height="24"/></label>
+ <input type="text" name="code-confirm" id="code-confirm" size="8"/><br/><br/>
+
+ <input type="submit" value="提交"/>
+ <input type="reset" value="重填"/>
+ </form>
+
+ </body>
+</html>
diff --git a/zh_TW.UTF-8/htdocs/support.xml b/zh_TW.UTF-8/htdocs/support.xml
new file mode 100644
index 0000000000..6676c434e1
--- /dev/null
+++ b/zh_TW.UTF-8/htdocs/support.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN"
+"http://www.FreeBSD.org/XML/doc/share/xml/xhtml10-freebsd.dtd" [
+<!ENTITY title "FreeBSD 支援">
+]>
+
+<!-- The FreeBSD Traditional Chinese Documentation Project -->
+<!-- Original Revision 1.352 -->
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>&title;</title>
+
+ <cvs:keyword xmlns:cvs="http://www.FreeBSD.org/XML/CVS">$FreeBSD$</cvs:keyword>
+ </head>
+
+ <body class="navinclude.support">
+
+ <p>FreeBSD 擁有為數眾多的社群和商業支援,可供其用戶選擇。
+ 本站的 <a href="&base;/community.html">社群</a> 部份,
+ 也介紹到用戶可從 FreeBSD 社群,
+ 包括眾多 <a href="&base;/community/mailinglists.html">郵件論壇</a>
+ 所得到的支援。</p>
+
+ <p>許多 <a href="&base;/commercial/">廠商</a>
+ 也提供了包括商業產品、 服務, 以及顧問咨詢在內的 FreeBSD
+ 商業服務。</p>
+
+ <h2>反映問題</h2>
+
+ <p>您在 FreeBSD 中發現了 bug? 或者發現文件中存在紕漏?
+ 請閱讀我們的 <a href="&enbase;/support/bugreports.html">問題報告指引</a>
+ 並使用 <a href="&enbase;/send-pr.html">問題報告表格</a>
+ 來提交報告。</p>
+
+ <p>您也可以在本站 <a href="&enbase;/cgi/query-pr-summary.cgi">察看未解決問題報告</a> 或
+ <a href="&base;/cgi/query-pr-summary.cgi?query">搜索問題報告</a>。</p>
+
+ </body>
+</html>
diff --git a/zh_TW.Big5/htdocs/where.xml b/zh_TW.UTF-8/htdocs/where.xml
index 7900e33813..fd901d0276 100644
--- a/zh_TW.Big5/htdocs/where.xml
+++ b/zh_TW.UTF-8/htdocs/where.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN"
"http://www.FreeBSD.org/XML/doc/share/xml/xhtml10-freebsd.dtd" [
-<!ENTITY title "o FreeBSD">
+<!ENTITY title "取得 FreeBSD">
<!ENTITY url.rel "ftp://ftp.FreeBSD.org/pub/FreeBSD/releases">
]>
@@ -19,216 +19,216 @@
<a name="releases"></a>
- <h2><a href="&enbase;/releases/index.html">T</a></h2>
+ <h2><a href="&enbase;/releases/index.html">版本資訊</a></h2>
- <p>LhB{bMӵo檩ԲӴyzCݬݳǫӽTw
- FreeBSD ̷sOC</p>
+ <p>過去、現在和未來發行版本的詳細描述。首先看看這裡來確定
+ FreeBSD 的最新版本是什麼。</p>
<a name="install"></a>
- <h2><a href="&enbase;/doc/zh_TW.Big5/books/handbook/install.html">w
+ <h2><a href="&enbase;/doc/zh_TW.UTF-8/books/handbook/install.html">安裝
FreeBSD</a></h2>
- <p>w FreeBSD \hؿܡA]Aq CD-ROMBDVDBnСBMS-DOS&reg;
- ΰϡBϱaBanonymous FTP H NFS wˡCЦbU㪺 FreeBSD
- eA\Ū
- <a href="&enbase;/doc/zh_TW.Big5/books/handbook/install.html">w˻</a>C</p>
+ <p>安裝 FreeBSD 有許多種選擇,包括從 CD-ROM、DVD、軟碟、MS-DOS&reg;
+ 分割區、磁帶、anonymous FTP 以及 NFS 安裝。請在下載完整的 FreeBSD
+ 之前,先閱讀
+ <a href="&enbase;/doc/zh_TW.UTF-8/books/handbook/install.html">安裝說明</a>。</p>
<a name="distribution"></a>
- <h2>ʶR FreeBSD</h2>
+ <h2>購買 FreeBSD</h2>
- <p>FreeBSD iHb <a
- href="http://www.freebsdmall.com/">FreeBSD Mall</a>B<a
+ <p>FreeBSD 可以在 <a
+ href="http://www.freebsdmall.com/">FreeBSD Mall</a>、<a
href="http://www.bsdmall.com/freebsd1.html">BSD Mall</a>
- Ϊ̨L <a
- href="&enbase;/doc/zh_TW.Big5/books/handbook/mirrors.html">CD-ROM
- M DVD o</a>ʶR CD-ROM DVDC</p>
+ 或者其他的 <a
+ href="&enbase;/doc/zh_TW.UTF-8/books/handbook/mirrors.html">CD-ROM
+ 和 DVD 發行商</a>那裡購買到 CD-ROM 或 DVD。</p>
- <h2>U FreeBSD</h2>
+ <h2>下載 FreeBSD</h2>
<table class="tblbasic">
<thead>
<tr style="text-align: center;">
- <td colspan="2"> &amp; x</td>
- <td>o檩wɮ</td>
- <td title="ISO9660 CD image"><a href="&enbase;/doc/zh_TW.Big5/books/handbook/install-diff-media.html#INSTALL-CDROM">ISO</a></td>
- <td>o<br/></td>
- <td>ۮew<br/></td>
- <td>w<br/></td>
- <td>ɻ~</td>
+ <td colspan="2">版本 &amp; 平台</td>
+ <td>發行版安裝檔案</td>
+ <td title="ISO9660 CD image"><a href="&enbase;/doc/zh_TW.UTF-8/books/handbook/install-diff-media.html#INSTALL-CDROM">ISO</a></td>
+ <td>發行<br/>說明</td>
+ <td>相容硬體<br/>說明</td>
+ <td>安裝<br/>說明</td>
+ <td>勘誤</td>
</tr>
</thead>
<tbody>
<tr>
<td colspan="2">FreeBSD &rel.current;-RELEASE</td>
<td colspan="2"></td>
- <td><a href="&enbase;/releases/&rel.current;R/relnotes.html">[d]</a></td>
- <td><a href="&enbase;/releases/&rel.current;R/hardware.html">[d]</a></td>
- <td><a href="&enbase;/releases/&rel.current;R/installation.html">[d]</a></td>
- <td rowspan="7"><a href="&enbase;releases/&rel.current;R/errata.html">[d]</a></td>
+ <td><a href="&enbase;/releases/&rel.current;R/relnotes.html">[查看]</a></td>
+ <td><a href="&enbase;/releases/&rel.current;R/hardware.html">[查看]</a></td>
+ <td><a href="&enbase;/releases/&rel.current;R/installation.html">[查看]</a></td>
+ <td rowspan="7"><a href="&enbase;releases/&rel.current;R/errata.html">[查看]</a></td>
</tr>
<tr>
<td>&nbsp;&nbsp;&nbsp;</td>
<td>alpha</td>
- <td><a href="&url.rel;/alpha/&rel.current;-RELEASE">[wɮ]</a></td>
+ <td><a href="&url.rel;/alpha/&rel.current;-RELEASE">[安裝檔案]</a></td>
<td><a href="&url.rel;/alpha/ISO-IMAGES/&rel.current;/">[ISO]</a></td>
- <td><a href="&enbase;/releases/&rel.current;R/relnotes-alpha.html">[d]</a></td>
- <td><a href="&enbase;/releases/&rel.current;R/hardware-alpha.html">[d]</a></td>
- <td><a href="&enbase;/releases/&rel.current;R/installation-alpha.html">[d]</a></td>
+ <td><a href="&enbase;/releases/&rel.current;R/relnotes-alpha.html">[查看]</a></td>
+ <td><a href="&enbase;/releases/&rel.current;R/hardware-alpha.html">[查看]</a></td>
+ <td><a href="&enbase;/releases/&rel.current;R/installation-alpha.html">[查看]</a></td>
</tr>
<tr>
<td></td>
<td>amd64</td>
- <td><a href="&url.rel;/amd64/&rel.current;-RELEASE">[wɮ]</a></td>
+ <td><a href="&url.rel;/amd64/&rel.current;-RELEASE">[安裝檔案]</a></td>
<td><a href="&url.rel;/amd64/ISO-IMAGES/&rel.current;/">[ISO]</a></td>
- <td><a href="&enbase;/releases/&rel.current;R/relnotes-amd64.html">[d]</a></td>
- <td><a href="&enbase;/releases/&rel.current;R/hardware-amd64.html">[d]</a></td>
- <td><a href="&enbase;/releases/&rel.current;R/installation-amd64.html">[d]</a></td>
+ <td><a href="&enbase;/releases/&rel.current;R/relnotes-amd64.html">[查看]</a></td>
+ <td><a href="&enbase;/releases/&rel.current;R/hardware-amd64.html">[查看]</a></td>
+ <td><a href="&enbase;/releases/&rel.current;R/installation-amd64.html">[查看]</a></td>
</tr>
<tr>
<td></td>
<td>i386</td>
- <td><a href="&url.rel;/i386/&rel.current;-RELEASE">[wɮ]</a></td>
+ <td><a href="&url.rel;/i386/&rel.current;-RELEASE">[安裝檔案]</a></td>
<td><a href="&url.rel;/i386/ISO-IMAGES/&rel.current;/">[ISO]</a></td>
- <td><a href="&enbase;/releases/&rel.current;R/relnotes-i386.html">[d]</a></td>
- <td><a href="&enbase;/releases/&rel.current;R/hardware-i386.html">[d]</a></td>
- <td><a href="&enbase;/releases/&rel.current;R/installation-i386.html">[d]</a></td>
+ <td><a href="&enbase;/releases/&rel.current;R/relnotes-i386.html">[查看]</a></td>
+ <td><a href="&enbase;/releases/&rel.current;R/hardware-i386.html">[查看]</a></td>
+ <td><a href="&enbase;/releases/&rel.current;R/installation-i386.html">[查看]</a></td>
</tr>
<tr>
<td></td>
<td>ia64</td>
- <td><a href="&url.rel;/ia64/&rel.current;-RELEASE">[wɮ]</a></td>
+ <td><a href="&url.rel;/ia64/&rel.current;-RELEASE">[安裝檔案]</a></td>
<td><a href="&url.rel;/ia64/ISO-IMAGES/&rel.current;/">[ISO]</a></td>
- <td><a href="&enbase;/releases/&rel.current;R/relnotes-ia64.html">[d]</a></td>
- <td><a href="&enbase;/releases/&rel.current;R/hardware-ia64.html">[d]</a></td>
- <td><a href="&enbase;/releases/&rel.current;R/installation-ia64.html">[d]</a></td>
+ <td><a href="&enbase;/releases/&rel.current;R/relnotes-ia64.html">[查看]</a></td>
+ <td><a href="&enbase;/releases/&rel.current;R/hardware-ia64.html">[查看]</a></td>
+ <td><a href="&enbase;/releases/&rel.current;R/installation-ia64.html">[查看]</a></td>
</tr>
<tr>
<td></td>
<td>pc98</td>
- <td><a href="&url.rel;/pc98/&rel.current;-RELEASE">[wɮ]</a></td>
+ <td><a href="&url.rel;/pc98/&rel.current;-RELEASE">[安裝檔案]</a></td>
<td><a href="&url.rel;/pc98/ISO-IMAGES/&rel.current;/">[ISO]</a></td>
- <td><a href="&enbase;/releases/&rel.current;R/relnotes-pc98.html">[d]</a></td>
- <td><a href="&enbase;/releases/&rel.current;R/hardware-pc98.html">[d]</a></td>
- <td><a href="&enbase;/releases/&rel.current;R/installation-pc98.html">[d]</a></td>
+ <td><a href="&enbase;/releases/&rel.current;R/relnotes-pc98.html">[查看]</a></td>
+ <td><a href="&enbase;/releases/&rel.current;R/hardware-pc98.html">[查看]</a></td>
+ <td><a href="&enbase;/releases/&rel.current;R/installation-pc98.html">[查看]</a></td>
</tr>
<tr>
<td></td>
<td>sparc64</td>
- <td><a href="&url.rel;/sparc64/&rel.current;-RELEASE">[wɮ]</a></td>
+ <td><a href="&url.rel;/sparc64/&rel.current;-RELEASE">[安裝檔案]</a></td>
<td><a href="&url.rel;/sparc64/ISO-IMAGES/&rel.current;/">[ISO]</a></td>
- <td><a href="&enbase;/releases/&rel.current;R/relnotes-sparc64.html">[d]</a></td>
- <td><a href="&enbase;/releases/&rel.current;R/hardware-sparc64.html">[d]</a></td>
- <td><a href="&enbase;/releases/&rel.current;R/installation-sparc64.html">[d]</a></td>
+ <td><a href="&enbase;/releases/&rel.current;R/relnotes-sparc64.html">[查看]</a></td>
+ <td><a href="&enbase;/releases/&rel.current;R/hardware-sparc64.html">[查看]</a></td>
+ <td><a href="&enbase;/releases/&rel.current;R/installation-sparc64.html">[查看]</a></td>
</tr>
<tr>
<td colspan="2">FreeBSD &rel2.current;-RELEASE</td>
<td colspan="2"></td>
- <td><a href="&enbase;/releases/&rel2.current;R/relnotes.html">[d]</a></td>
- <td><a href="&enbase;/releases/&rel2.current;R/hardware.html">[d]</a></td>
- <td><a href="&enbase;/releases/&rel2.current;R/installation.html">[d]</a></td>
- <td rowspan="7"><a href="&base;/releases/&rel2.current;R/errata.html">[d]</a></td>
+ <td><a href="&enbase;/releases/&rel2.current;R/relnotes.html">[查看]</a></td>
+ <td><a href="&enbase;/releases/&rel2.current;R/hardware.html">[查看]</a></td>
+ <td><a href="&enbase;/releases/&rel2.current;R/installation.html">[查看]</a></td>
+ <td rowspan="7"><a href="&base;/releases/&rel2.current;R/errata.html">[查看]</a></td>
</tr>
<tr>
<td></td>
<td>alpha</td>
- <td><a href="&url.rel;/alpha/&rel2.current;-RELEASE/">[wɮ]</a></td>
+ <td><a href="&url.rel;/alpha/&rel2.current;-RELEASE/">[安裝檔案]</a></td>
<td><a href="&url.rel;/alpha/ISO-IMAGES/&rel2.current;/">[ISO]</a></td>
- <td><a href="&enbase;/releases/&rel2.current;R/relnotes-alpha.html">[d]</a></td>
- <td><a href="&enbase;/releases/&rel2.current;R/hardware-alpha.html">[d]</a></td>
- <td><a href="&enbase;/releases/&rel2.current;R/installation-alpha.html">[d]</a></td>
+ <td><a href="&enbase;/releases/&rel2.current;R/relnotes-alpha.html">[查看]</a></td>
+ <td><a href="&enbase;/releases/&rel2.current;R/hardware-alpha.html">[查看]</a></td>
+ <td><a href="&enbase;/releases/&rel2.current;R/installation-alpha.html">[查看]</a></td>
</tr>
<tr>
<td></td>
<td>amd64</td>
- <td><a href="&url.rel;/amd64/&rel2.current;-RELEASE">[wɮ]</a></td>
+ <td><a href="&url.rel;/amd64/&rel2.current;-RELEASE">[安裝檔案]</a></td>
<td><a href="&url.rel;/amd64/ISO-IMAGES/&rel2.current;/">[ISO]</a></td>
- <td><a href="&enbase;/releases/&rel2.current;R/relnotes-amd64.html">[d]</a></td>
- <td><a href="&enbase;/releases/&rel2.current;R/hardware-amd64.html">[d]</a></td>
- <td><a href="&enbase;/releases/&rel2.current;R/installation-amd64.html">[d]</a></td>
+ <td><a href="&enbase;/releases/&rel2.current;R/relnotes-amd64.html">[查看]</a></td>
+ <td><a href="&enbase;/releases/&rel2.current;R/hardware-amd64.html">[查看]</a></td>
+ <td><a href="&enbase;/releases/&rel2.current;R/installation-amd64.html">[查看]</a></td>
</tr>
<tr>
<td></td>
<td>i386</td>
- <td><a href="&url.rel;/i386/&rel2.current;-RELEASE/">[wɮ]</a></td>
+ <td><a href="&url.rel;/i386/&rel2.current;-RELEASE/">[安裝檔案]</a></td>
<td><a href="&url.rel;/i386/ISO-IMAGES/&rel2.current;/">[ISO]</a></td>
- <td><a href="&enbase;/releases/&rel2.current;R/relnotes-i386.html">[d]</a></td>
- <td><a href="&enbase;/releases/&rel2.current;R/hardware-i386.html">[d]</a></td>
- <td><a href="&enbase;/releases/&rel2.current;R/installation-i386.html">[d]</a></td>
+ <td><a href="&enbase;/releases/&rel2.current;R/relnotes-i386.html">[查看]</a></td>
+ <td><a href="&enbase;/releases/&rel2.current;R/hardware-i386.html">[查看]</a></td>
+ <td><a href="&enbase;/releases/&rel2.current;R/installation-i386.html">[查看]</a></td>
</tr>
<tr>
<td></td>
<td>ia64</td>
- <td><a href="&url.rel;/ia64/&rel2.current;-RELEASE">[wɮ]</a></td>
+ <td><a href="&url.rel;/ia64/&rel2.current;-RELEASE">[安裝檔案]</a></td>
<td><a href="&url.rel;/ia64/ISO-IMAGES/&rel2.current;/">[ISO]</a></td>
- <td><a href="&enbase;/releases/&rel2.current;R/relnotes-ia64.html">[d]</a></td>
- <td><a href="&enbase;/releases/&rel2.current;R/hardware-ia64.html">[d]</a></td>
- <td><a href="&enbase;/releases/&rel2.current;R/installation-ia64.html">[d]</a></td>
+ <td><a href="&enbase;/releases/&rel2.current;R/relnotes-ia64.html">[查看]</a></td>
+ <td><a href="&enbase;/releases/&rel2.current;R/hardware-ia64.html">[查看]</a></td>
+ <td><a href="&enbase;/releases/&rel2.current;R/installation-ia64.html">[查看]</a></td>
</tr>
<tr>
<td></td>
<td>pc98</td>
- <td><a href="&url.rel;/pc98/&rel2.current;-RELEASE">[wɮ]</a></td>
+ <td><a href="&url.rel;/pc98/&rel2.current;-RELEASE">[安裝檔案]</a></td>
<td><a href="&url.rel;/pc98/ISO-IMAGES/&rel2.current;/">[ISO]</a></td>
- <td><a href="&enbase;/releases/&rel2.current;R/relnotes-pc98.html">[d]</a></td>
- <td><a href="&enbase;/releases/&rel2.current;R/hardware-pc98.html">[d]</a></td>
- <td><a href="&enbase;/releases/&rel2.current;R/installation-pc98.html">[d]</a></td>
+ <td><a href="&enbase;/releases/&rel2.current;R/relnotes-pc98.html">[查看]</a></td>
+ <td><a href="&enbase;/releases/&rel2.current;R/hardware-pc98.html">[查看]</a></td>
+ <td><a href="&enbase;/releases/&rel2.current;R/installation-pc98.html">[查看]</a></td>
</tr>
<tr>
<td></td>
<td>sparc64</td>
- <td><a href="&url.rel;/sparc64/&rel2.current;-RELEASE">[wɮ]</a></td>
+ <td><a href="&url.rel;/sparc64/&rel2.current;-RELEASE">[安裝檔案]</a></td>
<td><a href="&url.rel;/sparc64/ISO-IMAGES/&rel2.current;/">[ISO]</a></td>
- <td><a href="&enbase;/releases/&rel2.current;R/relnotes-sparc64.html">[d]</a></td>
- <td><a href="&enbase;/releases/&rel2.current;R/hardware-sparc64.html">[d]</a></td>
- <td><a href="&enbase;/releases/&rel2.current;R/installation-sparc64.html">[d]</a></td>
+ <td><a href="&enbase;/releases/&rel2.current;R/relnotes-sparc64.html">[查看]</a></td>
+ <td><a href="&enbase;/releases/&rel2.current;R/hardware-sparc64.html">[查看]</a></td>
+ <td><a href="&enbase;/releases/&rel2.current;R/installation-sparc64.html">[查看]</a></td>
</tr>
</tbody>
</table>
- <p><em>`NG</em>pGzTwݭnӥx/tcAziݭnO
- <em>i386</em> xC</p>
+ <p><em>注意:</em>如果您不確定需要哪個平台/體系結構,您可能需要的是
+ <em>i386</em> 平台的。</p>
- <p>pGzzL FTP U FreeBSDAЦbϥΤU <a
- href="&enbase;/doc/zh_TW.Big5/books/handbook/mirrors-ftp.html"><strong>
- 蹳I</strong></a>CMz񪺯ICnjPFѹLhB
- {bHαNӪo檩TAгX
- <a href="&enbase;/releases/index.html">o檩T</a>C</p>
+ <p>如果您打算透過 FTP 下載 FreeBSD,請在使用手冊中的 <a
+ href="&enbase;/doc/zh_TW.UTF-8/books/handbook/mirrors-ftp.html"><strong>
+ 鏡像站點</strong></a>列表中尋找離您較近的站點。要大致了解過去、
+ 現在以及將來的發行版本資訊,請訪問
+ <a href="&enbase;/releases/index.html">發行版本資訊頁面</a>。</p>
&beta.desc;
- <p>pGzuOw}o̩MǯŴդH FreeBSD-CURRENT
- (]NO &rel.head;-CURRENT) ¹ʪ FreeBSD
- <strong>ַ(snapshot)</strong> PA Ьd <a
+ <p>如果您對只是針對開發者和骨灰級測試人員的 FreeBSD-CURRENT
+ (也就是 &rel.head;-CURRENT) 的純實驗性的 FreeBSD
+ <strong>快照(snapshot)</strong> 版本感興趣, 請查看 <a
href="&enbase;/snapshots/">&os;
- ַӪ</a> C</p>
+ 的快照版本</a> 頁面。</p>
<a name="apps"></a>
- <h2>ε{MΪn</h2>
+ <h2>應用程式和有用的軟體</h2>
- <h3>Ports M</h3>
+ <h3>Ports 套件</h3>
- <p>FreeBSD Ports MOUؤwgӨ FreeBSD
- ϥγnMγn骺XC</p>
+ <p>FreeBSD Ports 套件是各種已經移植到 FreeBSD
+ 的使用軟體和應用軟體的集合。</p>
<ul>
<li><a href="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/">FreeBSD
- Ports M</a></li>
+ Ports 套件</a></li>
<li><a href="&enbase;/ports/index.html">Ports
- M Web ɭ</a></li>
+ 套件的 Web 界面</a></li>
- <li><a href="http://www.freshports.org/">FreshPorts - @ӧhi\઺
- Ports M Web ɭ</a></li>
+ <li><a href="http://www.freshports.org/">FreshPorts - 一個更多進階功能的
+ Ports 套件 Web 界面</a></li>
</ul>
- <p>p~ <em>wn</em> [J Ports MA аѦ <em><a
- href="&enbase;/doc/zh_TW.Big5/books/porters-handbook/index.html">The
- Porter's Handbook</a></em> H <em>
- <a href="&enbase;/doc/zh_TW.Big5/articles/contributing/index.html">
- FreeBSD ^m</a>og峹</em>C</p>
+ <p>欲知如何才能把 <em>喜歡的軟體</em> 加入到 Ports 套件, 請參考 <em><a
+ href="&enbase;/doc/zh_TW.UTF-8/books/porters-handbook/index.html">The
+ Porter's Handbook</a></em> 以及 <em>
+ <a href="&enbase;/doc/zh_TW.UTF-8/articles/contributing/index.html">為
+ 為 FreeBSD 貢獻</a>這篇文章</em>。</p>
</body>
</html>
diff --git a/zh_TW.UTF-8/share/xml/authors.ent b/zh_TW.UTF-8/share/xml/authors.ent
new file mode 100644
index 0000000000..755fa90b6f
--- /dev/null
+++ b/zh_TW.UTF-8/share/xml/authors.ent
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ The FreeBSD Documentation Project
+ The FreeBSD Traditional Chinese Documentation Project
+
+ $FreeBSD$
+
+ Names and email address of contributing authors and CVS committers.
+ Entity names for committers should be the same as their login names on
+ freefall.FreeBSD.org.
+
+ Use these entities when referencing people.
+
+ Please keep this list in alphabetical order by entity names.
+
+ IMPORTANT: If you delete names from this file you *must* ensure that
+ all references to them have been removed from the handbook's
+ translations. If they haven't then you *will* break the
+ builds for the other languages, and we will poke fun of you
+ in public.
+-->
+
+<!--
+ Chinese Names delphij is aware of. Please contact delphij@FreeBSD.org
+ if you know more.
+-->
+
+<!ENTITY a.avatar "梁泰華 <email xmlns='http://docbook.org/ns/docbook'>avatar@FreeBSD.org</email>">
+
+<!ENTITY a.bmah "馬源浩 <email xmlns='http://docbook.org/ns/docbook'>bmah@FreeBSD.org</email>">
+
+<!ENTITY a.chinsan "黃青山 <email xmlns='http://docbook.org/ns/docbook'>chinsan@FreeBSD.org</email>">
+
+<!ENTITY a.clive "林東毅 <email xmlns='http://docbook.org/ns/docbook'>clive@FreeBSD.org</email>">
+
+<!ENTITY a.clsung "宋政隆 <email xmlns='http://docbook.org/ns/docbook'>clsung@FreeBSD.org</email>">
+
+<!ENTITY a.davidxu "徐逸鋒 <email xmlns='http://docbook.org/ns/docbook'>davidxu@FreeBSD.org</email>">
+
+<!ENTITY a.delphij "李鑫 <email xmlns='http://docbook.org/ns/docbook'>delphij@FreeBSD.org</email>">
+
+<!ENTITY a.dryice "劉棟 <email xmlns='http://docbook.org/ns/docbook'>dryice@FreeBSD.org</email>">
+
+<!ENTITY a.foxfair "胡庭豪 <email xmlns='http://docbook.org/ns/docbook'>foxfair@FreeBSD.org</email>">
+
+<!ENTITY a.hsu "徐敏傑 <email xmlns='http://docbook.org/ns/docbook'>hsu@FreeBSD.org</email>">
+
+<!ENTITY a.ijliao "廖英傑 <email xmlns='http://docbook.org/ns/docbook'>ijliao@FreeBSD.org</email>">
+
+<!ENTITY a.kaiw "王楷 <email xmlns='http://docbook.org/ns/docbook'>kaiw@FreeBSD.org</email>">
+
+<!ENTITY a.keichii "吳敬元 <email xmlns='http://docbook.org/ns/docbook'>keichii@FreeBSD.org</email>">
+
+<!ENTITY a.kevlo "羅謝家偉 <email xmlns='http://docbook.org/ns/docbook'>kevlo@FreeBSD.org</email>">
+
+<!ENTITY a.leeym "李彥明 <email xmlns='http://docbook.org/ns/docbook'>leeym@FreeBSD.org</email>">
+
+<!ENTITY a.loader "陳福康 <email xmlns='http://docbook.org/ns/docbook'>loader@FreeBSD.org</email>">
+
+<!ENTITY a.luoqi "陳洛祁 <email xmlns='http://docbook.org/ns/docbook'>luoqi@FreeBSD.org</email>">
+
+<!ENTITY a.lwhsu "許立文 <email xmlns='http://docbook.org/ns/docbook'>lwhsu@FreeBSD.org</email>">
+
+<!ENTITY a.nemoliu "劉彤 <email xmlns='http://docbook.org/ns/docbook'>nemoliu@FreeBSD.org</email>">
+
+<!ENTITY a.pat "李雲玖 <email xmlns='http://docbook.org/ns/docbook'>pat@FreeBSD.org</email>">
+
+<!ENTITY a.rafan "范榮恩 <email xmlns='http://docbook.org/ns/docbook'>rafan@FreeBSD.org</email>">
+
+<!ENTITY a.sephe "喬彥(王民) <email xmlns='http://docbook.org/ns/docbook'>sephe@FreeBSD.org</email>">
+<!--
+ 由於 Big5 中文並無該字,只得以 王民 兩字暫代。
+ 該字完整寫法請參閱 http://www.zdic.net/zd/zi/ZdicE7Zdic8FZdic89.htm
+ 或 http://www.cns11643.gov.tw/web/show_font.jsp?page_n=3&number=11642
+-->
+
+<!ENTITY a.vanilla "徐三泰 <email xmlns='http://docbook.org/ns/docbook'>vanilla@FreeBSD.org</email>">
+
+
+<!--
+ Names and email address of Traditional Chinese local contributing authors
+-->
+
+<!ENTITY a.tw.cwlin "林建瑋 <email xmlns='http://docbook.org/ns/docbook'>cwlin0416@gmail.com</email>">
+
+<!ENTITY a.tw.gaod "陳宏益 <email xmlns='http://docbook.org/ns/docbook'>gaod.chen@gmail.com</email>">
+
+<!ENTITY a.tw.psilotum "林政道 <email xmlns='http://docbook.org/ns/docbook'>b89605222@ntu.edu.tw</email>">
+
+<!ENTITY a.tw.tzhuan "黃子桓 <email xmlns='http://docbook.org/ns/docbook'>tzhuan@gmail.com</email>">
+
+<!ENTITY a.tw.whsyu "徐偉浩 <email xmlns='http://docbook.org/ns/docbook'>whsyu@arbor.ee.ntu.edu.tw</email>">
+
+<!ENTITY a.tw.yzlin "林宜政 <email xmlns='http://docbook.org/ns/docbook'>yzlin1985@gmail.com</email>">
diff --git a/zh_TW.Big5/share/xml/catalog.xml b/zh_TW.UTF-8/share/xml/catalog.xml
index 01d51ab5b3..01d51ab5b3 100644
--- a/zh_TW.Big5/share/xml/catalog.xml
+++ b/zh_TW.UTF-8/share/xml/catalog.xml
diff --git a/zh_TW.Big5/share/xml/entities.ent b/zh_TW.UTF-8/share/xml/entities.ent
index 3129e5da62..3129e5da62 100644
--- a/zh_TW.Big5/share/xml/entities.ent
+++ b/zh_TW.UTF-8/share/xml/entities.ent
diff --git a/zh_TW.Big5/share/xml/freebsd-dblatex.xsl b/zh_TW.UTF-8/share/xml/freebsd-dblatex.xsl
index 586cc5aced..586cc5aced 100644
--- a/zh_TW.Big5/share/xml/freebsd-dblatex.xsl
+++ b/zh_TW.UTF-8/share/xml/freebsd-dblatex.xsl
diff --git a/zh_TW.Big5/share/xml/freebsd-fo.xsl b/zh_TW.UTF-8/share/xml/freebsd-fo.xsl
index 830b7dfc31..8b00a84aaa 100644
--- a/zh_TW.Big5/share/xml/freebsd-fo.xsl
+++ b/zh_TW.UTF-8/share/xml/freebsd-fo.xsl
@@ -19,17 +19,17 @@
<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
<l:l10n language="zh_tw">
<l:context name="title-numbered">
- <l:template name="appendix" text="附錄 %n. %t"/>
+ <l:template name="appendix" text="���� %n. %t"/>
<l:template name="article/appendix" text="%n. %t" lang="en"/>
<l:template name="bridgehead" text="%t"/>
- <l:template name="chapter" text="章 %n. %t"/>
- <l:template name="part" text="部 %n. %t"/>
+ <l:template name="chapter" text="蝡� %n. %t"/>
+ <l:template name="part" text="� %n. %t"/>
</l:context>
<l:context name="title-numbered">
- <l:template name="appendix" text="附錄 %n. %t"/>
+ <l:template name="appendix" text="���� %n. %t"/>
<l:template name="article/appendix" text="%n. %t" lang="en"/>
- <l:template name="chapter" text="章 %n. %t"/>
- <l:template name="part" text="部 %n. %t"/>
+ <l:template name="chapter" text="蝡� %n. %t"/>
+ <l:template name="part" text="� %n. %t"/>
<l:template name="sect1" text="%n. %t"/>
<l:template name="sect2" text="%n. %t"/>
<l:template name="sect3" text="%n. %t"/>
diff --git a/zh_TW.Big5/share/xml/freebsd-xhtml.xsl b/zh_TW.UTF-8/share/xml/freebsd-xhtml.xsl
index 5f12fe294c..f397fec226 100644
--- a/zh_TW.Big5/share/xml/freebsd-xhtml.xsl
+++ b/zh_TW.UTF-8/share/xml/freebsd-xhtml.xsl
@@ -1,4 +1,4 @@
-<?xml version='1.0' encoding='big5'?>
+<?xml version='1.0' encoding='utf-8'?>
<!-- $FreeBSD$ -->
@@ -8,13 +8,13 @@
exclude-result-prefixes="#default">
<xsl:template name="user.footer.navigation">
- <p align="center"><small>ΨLAiѦUG
- <a href="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/</a>C</small></p>
+ <p align="center"><small>本文及其他文件,可由此下載:
+ <a href="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/</a>。</small></p>
- <p align="center"><small>Y FreeBSD 譱ðݡAХ\Ū
- <a href="http://www.FreeBSD.org/docs.html">FreeBSD </a>ApѨMܡAA
- &lt;<a href="mailto:questions@FreeBSD.org">questions@FreeBSD.org</a>&gt;C<br/>
- 󥻤󪺰DAЬ
- &lt;<a href="mailto:doc@FreeBSD.org">doc@FreeBSD.org</a>&gt;C</small></p>
+ <p align="center"><small>若有 FreeBSD 方面疑問,請先閱讀
+ <a href="http://www.FreeBSD.org/docs.html">FreeBSD 相關文件</a>,如不能解決的話,再洽詢
+ &lt;<a href="mailto:questions@FreeBSD.org">questions@FreeBSD.org</a>&gt;。<br/>
+ 關於本文件的問題,請洽詢
+ &lt;<a href="mailto:doc@FreeBSD.org">doc@FreeBSD.org</a>&gt;。</small></p>
</xsl:template>
</xsl:stylesheet>
diff --git a/zh_TW.Big5/share/xml/glossary.ent b/zh_TW.UTF-8/share/xml/glossary.ent
index 05b4115e0d..4aa4c34cb3 100644
--- a/zh_TW.Big5/share/xml/glossary.ent
+++ b/zh_TW.UTF-8/share/xml/glossary.ent
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
$FreeBSD$
@@ -242,9 +242,9 @@
<glossterm>Berkeley Software Distribution</glossterm>
<acronym>BSD</acronym>
<glossdef>
- <para>oO <link xlink:href="http://www.berkeley.edu">U.C. Berkeley</link>
- Computer Systems Research Group(CSRG) ӷ@L̩ҧ}BקL
- AT&amp;T&apos;s 32V &unix; W١C&os; hO CSRG oӤߦlͥXӡC</para>
+ <para>這是由 <link xlink:href="http://www.berkeley.edu">U.C. Berkeley</link> 的
+ Computer Systems Research Group(CSRG) 選來當作他們所改良、修改過的
+ AT&amp;T&apos;s 32V &unix; 名稱。&os; 則是由 CSRG 的這個心血衍生出來。</para>
</glossdef>
</glossentry>
@@ -1014,9 +1014,9 @@
<glossterm>Merge From Current</glossterm>
<acronym>MFC</acronym>
<glossdef subject="FreeBSD">
- <para>MFC O@YgANF <quote>Merged From -CURRENT</quote>
- Aor|b CVS logs `A
- HܳoOq -CURRENT XiL(q`O -STABLE) patch Υ\C</para>
+ <para>MFC 是一個縮寫,它代表了 <quote>Merged From -CURRENT</quote>
+ ,這字眼會在 CVS logs 中常見,
+ 以表示這是從 -CURRENT 中整合進其他分支(通常是 -STABLE)的 patch 或功能。</para>
</glossdef>
</glossentry>
@@ -1412,10 +1412,10 @@
<glossterm>Principle Of Least Astonishment</glossterm>
<acronym>POLA</acronym>
<glossdef>
- <para>b &os; oiL{A󪺧ܴTסAϥΪ̲ߺDP줣AC
- |ҨӻGYNհ <filename>/etc/defaults/rc.conf</filename> tαҰʶǡA
- NOHI <acronym>POLA</acronym> h믫C}oHAӦbXjܫeA
- TO_|P <acronym>POLA</acronym> hҹHIC</para>
+ <para>在 &os; 的發展過程中,任何的改變幅度,都不該讓使用者習慣感到不適。
+ 舉例來說:若任意調動 <filename>/etc/defaults/rc.conf</filename> 中的系統啟動順序,
+ 就是違背 <acronym>POLA</acronym> 原則的精神。任何開發人員,都該在做出重大改變前,
+ 先三思是否會與 <acronym>POLA</acronym> 原則有所違背。</para>
</glossdef>
</glossentry>
@@ -1559,20 +1559,20 @@
<glossentry xml:id="repocopy-glossary">
<glossterm>Repository Copy</glossterm>
<glossdef>
- <para>repocopy(<quote>repository copy</quote> Yg)
- NOq CVS repository ƻsɮסC</para>
+ <para>repocopy(<quote>repository copy</quote> 的縮寫)
+ 就是直接從 CVS repository 中複製檔案。</para>
- <para>Y repocopy 覡AYnb repository ƻsBɮתܡA
- committer N <command>cvs add</command> ӧɮשsmA
- åB٭n <command>cvs rm</command> ӧRɡC</para>
+ <para>若不用 repocopy 的方式,那麼若要在 repository 內複製、移動檔案的話,
+ committer 就必須執行 <command>cvs add</command> 來把檔案放到新位置,
+ 並且還要執行 <command>cvs rm</command> 來刪除舊檔。</para>
- <para>oؤ覡IbAɪe
- (pb CVS logs )ä|HӽƻssahC
- &os; p{oǾvOO۷ΪA
- ҥH|g`ĥ repository copy 覡C
- o]NO repository ޲z|b repository ƻsɮת覡A
- ӫDĨ &man.cvs.1; {Ӷi <command>cvs add</command>B
- <command>cvs rm</command>ʧ@C</para>
+ <para>剛剛講的這種方式的缺點在於,該檔的之前相關紀錄
+ (比如在 CVS logs 中的相關項目)並不會隨之而複製到新地方去。
+ 而 &os; 計劃中認為這些歷史記錄都是相當有用的,
+ 所以會經常採用 repository copy 的方式。
+ 這也就是為何 repository 管理員會直接在 repository 內複製檔案的方式,
+ 而非採取 &man.cvs.1; 程式來進行 <command>cvs add</command>、
+ <command>cvs rm</command>之類的動作。</para>
</glossdef>
</glossentry>
diff --git a/zh_TW.UTF-8/share/xml/header.l10n.ent b/zh_TW.UTF-8/share/xml/header.l10n.ent
new file mode 100644
index 0000000000..ffb6b18b6e
--- /dev/null
+++ b/zh_TW.UTF-8/share/xml/header.l10n.ent
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $FreeBSD$ -->
+
+<!-- The FreeBSD Traditional Chinese Documentation Project -->
+<!-- Original revision: www/share/xml/header.ent,v 1.6 -->
+
+
+<!ENTITY copyright '<span xmlns="http://www.w3.org/1999/xhtml"><a href="&base;/search/index-site.html">Site Map</a> |
+ <a href="&base;/copyright/">Legal Notices</a> | &copy; 1995-2007 The FreeBSD Project.
+ 保留所有權利。</span>'>
+<!ENTITY author '<a href="&base;/index.html">首頁</a> &nbsp; | &nbsp; <a href="&base;/mailto.html">聯絡</a> &nbsp; | &nbsp; <a href="&base;/copyright/index.html">版權</a> &nbsp; | &nbsp; &copyright;'>
+<!ENTITY home '<a href="&base;/index.html"><img src="&enbase;/gifs/home.gif"
+ alt="FreeBSD 首頁" border="0" align="right" width="101" height="33"></a>'>
+
+<!ENTITY header2.word.search '搜尋'>
+<!ENTITY header2.word.donate '捐贈'>
+<!ENTITY header2.word.contact '聯絡'>
+
+<!ENTITY stylesheet '&base;/layout/css/fixed.css'>
+<!ENTITY stylesheetlarge '&base;/layout/css/fixed_large.css'>
+<!ENTITY nav ''>
+
+<!ENTITY header2.topnav '
+ <div xmlns="http://www.w3.org/1999/xhtml" id="topnav">
+ <ul id="topnavlist">
+ <li><a href="&base;/" title="首頁">首頁</a></li>
+ <li><a href="&base;/about.html" title="關於">關於</a></li>
+ <li><a href="&base;/where.html" title="取得 FreeBSD">取得 FreeBSD</a></li>
+ <li><a href="&base;/docs.html" title="文件">文件</a></li>
+ <li><a href="&base;/community.html" title="社群">社群</a></li>
+ <li><a href="&enbase;/projects/index.html" title="開發">開發</a></li>
+ <li><a href="&base;/support.html" title="支援">支援</a></li>
+ <li><a href="http://www.freebsdfoundation.org/" title="FreeBSD 基金會">基金會</a></li>
+ </ul>
+ </div> <!-- TOPNAV -->
+'>
+
+<!-- macro for webbuild paper -->
+<!ENTITY webbuild '
+<p xmlns="http://www.w3.org/1999/xhtml">介紹如何手動透過 CVS repository 更新,
+以及如何編譯 FreeBSD 網頁。</p>'>
diff --git a/zh_TW.Big5/share/xml/l10n.ent b/zh_TW.UTF-8/share/xml/l10n.ent
index 786f7430ed..96700aead8 100644
--- a/zh_TW.Big5/share/xml/l10n.ent
+++ b/zh_TW.UTF-8/share/xml/l10n.ent
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5" ?>
+<?xml version="1.0" encoding="utf-8" ?>
<!-- -*- sgml -*-
DocBook Language Neutral Entities for Localization.
@@ -12,17 +12,17 @@
-->
<!-- docformat navi -->
-<!ENTITY docnavi.single-html "Ҧ">
-<!ENTITY docnavi.split-html "`Ҧ">
+<!ENTITY docnavi.single-html "完整模式">
+<!ENTITY docnavi.split-html "章節模式">
<!-- charset for HTML output -->
-<!ENTITY doc.html.charset "Big5">
+<!ENTITY doc.html.charset "utf-8">
-<!ENTITY mdash "XX">
+<!ENTITY mdash "——">
-<!ENTITY url.doc.langcode 'zh_TW.Big5'>
-<!ENTITY xml.encoding 'big5'>
+<!ENTITY url.doc.langcode 'zh_TW.UTF-8'>
+<!ENTITY xml.encoding 'utf-8'>
<!-- From FreeBSD: www/share/xml/release.ent,v 1.7 2006/12/27 22:28:55 bmah -->
-<!ENTITY rel.current.date '2006 ~ 5 '>
-<!ENTITY rel2.current.date '2006 ~ 5 '>
+<!ENTITY rel.current.date '2006 年 5 月'>
+<!ENTITY rel2.current.date '2006 年 5 月'>
diff --git a/zh_TW.Big5/share/xml/libcommon.xsl b/zh_TW.UTF-8/share/xml/libcommon.xsl
index b34b20a73a..31393daa17 100644
--- a/zh_TW.Big5/share/xml/libcommon.xsl
+++ b/zh_TW.UTF-8/share/xml/libcommon.xsl
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5" ?>
+<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE xsl:stylesheet PUBLIC "-//FreeBSD//DTD FreeBSD XSLT 1.0 DTD//EN"
"http://www.FreeBSD.org/XML/www/share/xml/xslt10-freebsd.dtd">
<!-- $FreeBSD$ -->
@@ -12,41 +12,41 @@
<!-- Language-specific definitions should be put below this line -->
<!-- default format for date string -->
<xsl:param name="param-l10n-date-format-YMD"
- select="'%Y ~ %M %D '" />
+ select="'%Y 年 %M %D 日'" />
<xsl:param name="param-l10n-date-format-YM"
- select="'%Y ~ %M'" />
+ select="'%Y 年 %M'" />
<xsl:param name="param-l10n-date-format-MD"
- select="'%M %D '" />
+ select="'%M %D 日'" />
<xsl:template name="html-news-list-newsflash-preface">
<img src="&enbase;/gifs/news.jpg" align="right" border="0" width="193"
- height="144" alt="FreeBSD sDֻ"/>
+ height="144" alt="FreeBSD 新聞快遞"/>
- <p>FreeBSD Oӵoit@~tΡC
- O̷s}oOcIAiHwӬd\A~A]iq\
+ <p>FreeBSD 是個發展迅速的作業系統。
+ 保持最新的開發版是比較繁瑣的!你可以定期來查閱本頁,此外,也可能訂閱
<a href="&enbase;/doc/&url.doc.langcode;/books/handbook/eresources.html#ERESOURCES-MAIL">freebsd-announce
- l׾</a> Ψϥ <a href="news.rdf">RSS feed</a>C</p>
+ 郵件論壇</a> 或使用 <a href="news.rdf">RSS feed</a>。</p>
- <p>UCCۤvsDA̭oǪsӸ`C</p>
+ <p>下列的每項都有自己的新聞頁面,裡面有這些的更新細節。</p>
<ul>
- <li><a href="&enbase;/java/newsflash.html">FreeBSD W &java;</a></li>
- <li><a href="http://freebsd.kde.org/">FreeBSD W KDE</a></li>
- <li><a href="&enbase;/gnome/newsflash.html">FreeBSD W GNOME</a></li>
+ <li><a href="&enbase;/java/newsflash.html">FreeBSD 上的 &java;</a></li>
+ <li><a href="http://freebsd.kde.org/">FreeBSD 上的 KDE</a></li>
+ <li><a href="&enbase;/gnome/newsflash.html">FreeBSD 上的 GNOME</a></li>
</ul>
- <p>ԲӪyzBСBMӪo檩AЬ <strong><a
- href="&enbase;/releases/index.html">Release T</a></strong>oC</p>
+ <p>更詳細的描述、介紹、和未來的發行版本,請看 <strong><a
+ href="&enbase;/releases/index.html">Release 資訊</a></strong>這頁。</p>
- <p> FreeBSD wiA Ьd\ <a href="&base;/security/#adv">wT</a> C</p>
+ <p>對於 FreeBSD 的安全公告, 請查閱 <a href="&base;/security/#adv">安全資訊</a> 頁面。</p>
</xsl:template>
<xsl:template name="html-news-list-newsflash-homelink">
- <a href="&base;/news/news.html">sD</a>
+ <a href="&base;/news/news.html">新聞首頁</a>
</xsl:template>
<xsl:template name="html-news-make-olditems-list">
- <p>󦭪iG
+ <p>更早的公告:
<a href="&enbase;/news/2003/index.html">2003</a>,
<a href="&enbase;/news/2002/index.html">2002</a>,
<a href="&enbase;/news/2001/index.html">2001</a>,
@@ -58,12 +58,12 @@
</xsl:template>
<xsl:variable name="html-news-list-press-homelink">
- <a href="&base;/news/press.html">Cɭ</a>
+ <a href="&base;/news/press.html">媒體報導首頁</a>
</xsl:variable>
<xsl:template name="html-news-list-press-preface">
- <p>pGzDڭ̨Sbo̦CX FreeBSD A мgH
- <a href="mailto:www@FreeBSD.org">www@FreeBSD.org</a> HKڭ̧sA¡C</p>
+ <p>如果您知道我們沒有在這裡列出的關於 FreeBSD 的消息, 請寫信到
+ <a href="mailto:www@FreeBSD.org">www@FreeBSD.org</a> 以便我們更新,謝謝。</p>
</xsl:template>
<xsl:template name="html-events-list-preface">
@@ -80,19 +80,19 @@
<xsl:param name="nummonth"/>
<xsl:variable name="month" select="number($nummonth)"/>
<xsl:choose>
- <xsl:when test="$month=1">@</xsl:when>
- <xsl:when test="$month=2">G</xsl:when>
- <xsl:when test="$month=3">T</xsl:when>
- <xsl:when test="$month=4">|</xsl:when>
- <xsl:when test="$month=5"></xsl:when>
- <xsl:when test="$month=6"></xsl:when>
- <xsl:when test="$month=7">C</xsl:when>
- <xsl:when test="$month=8">K</xsl:when>
- <xsl:when test="$month=9">E</xsl:when>
- <xsl:when test="$month=10">Q</xsl:when>
- <xsl:when test="$month=11">Q@</xsl:when>
- <xsl:when test="$month=12">QG</xsl:when>
- <xsl:otherwise>L</xsl:otherwise>
+ <xsl:when test="$month=1">一月</xsl:when>
+ <xsl:when test="$month=2">二月</xsl:when>
+ <xsl:when test="$month=3">三月</xsl:when>
+ <xsl:when test="$month=4">四月</xsl:when>
+ <xsl:when test="$month=5">五月</xsl:when>
+ <xsl:when test="$month=6">六月</xsl:when>
+ <xsl:when test="$month=7">七月</xsl:when>
+ <xsl:when test="$month=8">八月</xsl:when>
+ <xsl:when test="$month=9">九月</xsl:when>
+ <xsl:when test="$month=10">十月</xsl:when>
+ <xsl:when test="$month=11">十一月</xsl:when>
+ <xsl:when test="$month=12">十二月</xsl:when>
+ <xsl:otherwise>月份無效</xsl:otherwise>
</xsl:choose>
</xsl:template>
@@ -100,7 +100,7 @@
<xsl:param name="year" />
<xsl:param name="month" />
- <xsl:value-of select="concat($year, ' ~ ', $month)" />
+ <xsl:value-of select="concat($year, ' 年 ', $month)" />
</xsl:template>
</xsl:stylesheet>
diff --git a/zh_TW.Big5/share/xml/mailing-lists.ent b/zh_TW.UTF-8/share/xml/mailing-lists.ent
index 708d5a9450..ff654a3bab 100644
--- a/zh_TW.Big5/share/xml/mailing-lists.ent
+++ b/zh_TW.UTF-8/share/xml/mailing-lists.ent
@@ -1,6 +1,6 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
- Names of FreeBSD l׾s and related software.
+ Names of FreeBSD 郵遞論壇s and related software.
The FreeBSD Traditional-Chinese Documentation Project
Original revision: 1.57
@@ -12,23 +12,23 @@
<!ENTITY a.mailman.lists.link "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.mailman.listinfo;'>&a.mailman.listinfo;</link>">
<!ENTITY a.acpi.url "&a.mailman.listinfo;/freebsd-acpi">
-<!ENTITY a.acpi "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.acpi.url;'>FreeBSD ACPI l׾</link>">
+<!ENTITY a.acpi "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.acpi.url;'>FreeBSD ACPI 郵遞論壇</link>">
<!ENTITY a.acpi.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.acpi.url;'>freebsd-acpi</link>">
<!ENTITY a.advocacy.url "&a.mailman.listinfo;/freebsd-advocacy">
-<!ENTITY a.advocacy "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.advocacy.url;'>FreeBSD advocacy l׾</link>">
+<!ENTITY a.advocacy "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.advocacy.url;'>FreeBSD advocacy 郵遞論壇</link>">
<!ENTITY a.advocacy.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.advocacy.url;'>freebsd-advocacy</link>">
<!ENTITY a.afs.url "&a.mailman.listinfo;/freebsd-afs">
-<!ENTITY a.afs "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.afs.url;'>FreeBSD AFS porting l׾</link>">
+<!ENTITY a.afs "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.afs.url;'>FreeBSD AFS porting 郵遞論壇</link>">
<!ENTITY a.afs.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.afs.url;'>freebsd-afs</link>">
<!ENTITY a.aic7xxx.url "&a.mailman.listinfo;/aic7xxx">
-<!ENTITY a.aic7xxx "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.aic7xxx.url;'>FreeBSD Adaptec AIC7xxx discussions l׾</link>">
+<!ENTITY a.aic7xxx "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.aic7xxx.url;'>FreeBSD Adaptec AIC7xxx discussions 郵遞論壇</link>">
<!ENTITY a.aic7xxx.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.aic7xxx.url;'>freebsd-aic7xxx</link>">
<!ENTITY a.alpha.url "&a.mailman.listinfo;/freebsd-alpha">
-<!ENTITY a.alpha "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.alpha.url;'>FreeBSD Alpha porting l׾</link>">
+<!ENTITY a.alpha "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.alpha.url;'>FreeBSD Alpha porting 郵遞論壇</link>">
<!ENTITY a.alpha.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.alpha.url;'>freebsd-alpha</link>">
<!ENTITY a.amd64.url "&a.mailman.listinfo;/freebsd-amd64">
@@ -36,85 +36,85 @@
<!ENTITY a.amd64.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.amd64.url;'>freebsd-amd64</link>">
<!ENTITY a.announce.url "&a.mailman.listinfo;/freebsd-announce">
-<!ENTITY a.announce "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.announce.url;'>FreeBSD announcements l׾</link>">
+<!ENTITY a.announce "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.announce.url;'>FreeBSD announcements 郵遞論壇</link>">
<!ENTITY a.announce.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.announce.url;'>freebsd-announce</link>">
<!ENTITY a.apache.url "&a.mailman.listinfo;/freebsd-apache">
-<!ENTITY a.apache "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.apache.url;'>FreeBSD Apache l׾</link>">
+<!ENTITY a.apache "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.apache.url;'>FreeBSD Apache 郵遞論壇</link>">
<!ENTITY a.apache.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.apache.url;'>freebsd-apache</link>">
<!ENTITY a.arch.url "&a.mailman.listinfo;/freebsd-arch">
-<!ENTITY a.arch "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.arch.url;'>FreeBSD architecture and design l׾</link>">
+<!ENTITY a.arch "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.arch.url;'>FreeBSD architecture and design 郵遞論壇</link>">
<!ENTITY a.arch.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.arch.url;'>freebsd-arch</link>">
<!ENTITY a.arm.url "&a.mailman.listinfo;/freebsd-arm">
-<!ENTITY a.arm "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.arm.url;'>FreeBSD ARM porting l׾</link>">
+<!ENTITY a.arm "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.arm.url;'>FreeBSD ARM porting 郵遞論壇</link>">
<!ENTITY a.arm.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.arm.url;'>freebsd-arm</link>">
<!ENTITY a.atm.url "&a.mailman.listinfo;/freebsd-atm">
-<!ENTITY a.atm "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.atm.url;'>FreeBSD ATM networking l׾</link>">
+<!ENTITY a.atm "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.atm.url;'>FreeBSD ATM networking 郵遞論壇</link>">
<!ENTITY a.atm.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.atm.url;'>freebsd-atm</link>">
<!ENTITY a.audit.url "&a.mailman.listinfo;/freebsd-audit">
-<!ENTITY a.audit "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.audit.url;'>FreeBSD source code audit l׾</link>">
+<!ENTITY a.audit "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.audit.url;'>FreeBSD source code audit 郵遞論壇</link>">
<!ENTITY a.audit.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.audit.url;'>freebsd-audit</link>">
<!ENTITY a.binup.url "&a.mailman.listinfo;/freebsd-binup">
-<!ENTITY a.binup "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.binup.url;'>FreeBSD binary update system l׾</link>">
+<!ENTITY a.binup "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.binup.url;'>FreeBSD binary update system 郵遞論壇</link>">
<!ENTITY a.binup.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.binup.url;'>freebsd-binup</link>">
<!ENTITY a.bluetooth.url "&a.mailman.listinfo;/freebsd-bluetooth">
-<!ENTITY a.bluetooth "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.bluetooth.url;'>FreeBSD Bluetooth l׾</link>">
+<!ENTITY a.bluetooth "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.bluetooth.url;'>FreeBSD Bluetooth 郵遞論壇</link>">
<!ENTITY a.bluetooth.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.bluetooth.url;'>freebsd-bluetooth</link>">
<!ENTITY a.bugbusters.url "&a.mailman.listinfo;/freebsd-bugbusters">
-<!ENTITY a.bugbusters "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.bugbusters.url;'>FreeBSD bugbusters l׾</link>">
+<!ENTITY a.bugbusters "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.bugbusters.url;'>FreeBSD bugbusters 郵遞論壇</link>">
<!ENTITY a.bugbusters.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.bugbusters.url;'>freebsd-bugbusters</link>">
<!ENTITY a.bugs.url "&a.mailman.listinfo;/freebsd-bugs">
-<!ENTITY a.bugs "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.bugs.url;'>FreeBSD problem reports l׾</link>">
+<!ENTITY a.bugs "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.bugs.url;'>FreeBSD problem reports 郵遞論壇</link>">
<!ENTITY a.bugs.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.bugs.url;'>freebsd-bugs</link>">
<!ENTITY a.chat.url "&a.mailman.listinfo;/freebsd-chat">
-<!ENTITY a.chat "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.chat.url;'>FreeBSD chat l׾</link>">
+<!ENTITY a.chat "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.chat.url;'>FreeBSD chat 郵遞論壇</link>">
<!ENTITY a.chat.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.chat.url;'>freebsd-chat</link>">
<!ENTITY a.cluster.url "&a.mailman.listinfo;/freebsd-cluster">
-<!ENTITY a.cluster "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.cluster.url;'>FreeBSD clustering l׾</link>">
+<!ENTITY a.cluster "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.cluster.url;'>FreeBSD clustering 郵遞論壇</link>">
<!ENTITY a.cluster.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.cluster.url;'>freebsd-cluster</link>">
-<!ENTITY a.committers "FreeBSD committer's l׾">
+<!ENTITY a.committers "FreeBSD committer's 郵遞論壇">
<!ENTITY a.committers.name "cvs-committers">
<!ENTITY a.core "FreeBSD core team">
<!ENTITY a.core.name "freebsd-core">
<!ENTITY a.current.url "&a.mailman.listinfo;/freebsd-current">
-<!ENTITY a.current "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.current.url;'>&os.current; l׾</link>">
+<!ENTITY a.current "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.current.url;'>&os.current; 郵遞論壇</link>">
<!ENTITY a.current.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.current.url;'>freebsd-current</link>">
<!ENTITY a.ctm-announce.url "&a.mailman.listinfo;/ctm-announce">
-<!ENTITY a.ctm-announce "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-announce.url;'>CTM i</link>">
+<!ENTITY a.ctm-announce "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-announce.url;'>CTM 公告</link>">
<!ENTITY a.ctm-announce.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-announce.url;'>ctm-announce</link>">
<!ENTITY a.ctm-cvs-cur.url "&a.mailman.listinfo;/ctm-cvs-cur">
-<!ENTITY a.ctm-cvs-cur "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-cvs-cur.url;'>zL CTM oG CVS ɮ</link>">
+<!ENTITY a.ctm-cvs-cur "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-cvs-cur.url;'>透過 CTM 發佈的 CVS 檔案</link>">
<!ENTITY a.ctm-cvs-cur.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-cvs-cur.url;'>ctm-cvs-cur</link>">
<!ENTITY a.ctm-src-4.url "&a.mailman.listinfo;/ctm-src-4">
-<!ENTITY a.ctm-src-4 "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-src-4.url;'>CTM 4-STABLE src branch distribution l׾</link>">
+<!ENTITY a.ctm-src-4 "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-src-4.url;'>CTM 4-STABLE src branch distribution 郵遞論壇</link>">
<!ENTITY a.ctm-src-4.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-src-4.url;'>ctm-src-4</link>">
<!ENTITY a.ctm-src-cur.url "&a.mailman.listinfo;/ctm-src-cur">
-<!ENTITY a.ctm-src-cur "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-src-cur.url;'>CTM -CURRENT src branch distribution l׾</link>">
+<!ENTITY a.ctm-src-cur "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-src-cur.url;'>CTM -CURRENT src branch distribution 郵遞論壇</link>">
<!ENTITY a.ctm-src-cur.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-src-cur.url;'>ctm-src-cur</link>">
<!ENTITY a.ctm-users.url "&a.mailman.listinfo;/ctm-users">
-<!ENTITY a.ctm-users "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-users.url;'>CTM user discussion l׾</link>">
+<!ENTITY a.ctm-users "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-users.url;'>CTM user discussion 郵遞論壇</link>">
<!ENTITY a.ctm-users.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ctm-users.url;'>ctm-users</link>">
<!ENTITY a.cvsall.url "&a.mailman.listinfo;/cvs-all">
-<!ENTITY a.cvsall "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.cvsall.url;'>FreeBSD CVS commit message l׾</link>">
+<!ENTITY a.cvsall "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.cvsall.url;'>FreeBSD CVS commit message 郵遞論壇</link>">
<!ENTITY a.cvsall.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.cvsall.url;'>cvs-all</link>">
<!ENTITY a.cvs-doc.url "&a.mailman.listinfo;/cvs-doc">
@@ -134,24 +134,24 @@
<!ENTITY a.cvs-src.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.cvs-src.url;'>cvs-src</link>">
<!ENTITY a.cvsweb.url "&a.mailman.listinfo;/freebsd-cvsweb">
-<!ENTITY a.cvsweb "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.cvsweb.url;'>FreeBSD CVSweb @l׾</link>">
+<!ENTITY a.cvsweb "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.cvsweb.url;'>FreeBSD CVSweb 維護郵遞論壇</link>">
<!ENTITY a.cvsweb.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.cvsweb.url;'>freebsd-cvsweb</link>">
<!ENTITY a.database.url "&a.mailman.listinfo;/freebsd-database">
-<!ENTITY a.database "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.database.url;'>FreeBSD based Databases l׾</link>">
+<!ENTITY a.database "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.database.url;'>FreeBSD based Databases 郵遞論壇</link>">
<!ENTITY a.database.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.database.url;'>freebsd-database</link>">
-<!ENTITY a.developers "FreeBSD developers l׾">
+<!ENTITY a.developers "FreeBSD developers 郵遞論壇">
<!ENTITY a.developers.name "freebsd-developers">
<!ENTITY a.doc.url "&a.mailman.listinfo;/freebsd-doc">
-<!ENTITY a.doc "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.doc.url;'>FreeBSD documentation project l׾</link>">
+<!ENTITY a.doc "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.doc.url;'>FreeBSD documentation project 郵遞論壇</link>">
<!ENTITY a.doc.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.doc.url;'>freebsd-doc</link>">
-<!ENTITY a.doc-committers "FreeBSD doc/ committer's l׾">
+<!ENTITY a.doc-committers "FreeBSD doc/ committer's 郵遞論壇">
<!ENTITY a.doc-committers.name "doc-committers">
-<!ENTITY a.doc-developers "FreeBSD doc/ developers l׾">
+<!ENTITY a.doc-developers "FreeBSD doc/ developers 郵遞論壇">
<!ENTITY a.doc-developers.name "doc-developers">
<!ENTITY a.drivers.url "&a.mailman.listinfo;/freebsd-drivers">
@@ -163,99 +163,99 @@
<!ENTITY a.eclipse.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.eclipse.url;'>freebsd-eclipse</link>">
<!ENTITY a.embedded.url "&a.mailman.listinfo;/freebsd-embedded">
-<!ENTITY a.embedded "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.embedded.url;'>FreeBSD-embedded l׾</link>">
+<!ENTITY a.embedded "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.embedded.url;'>FreeBSD-embedded 郵遞論壇</link>">
<!ENTITY a.embedded.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.embedded.url;'>freebsd-embedded</link>">
<!ENTITY a.emulation.url "&a.mailman.listinfo;/freebsd-emulation">
-<!ENTITY a.emulation "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.emulation.url;'>FreeBSD-emulation l׾</link>">
+<!ENTITY a.emulation "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.emulation.url;'>FreeBSD-emulation 郵遞論壇</link>">
<!ENTITY a.emulation.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.emulation.url;'>freebsd-emulation</link>">
<!ENTITY a.eol.url "&a.mailman.listinfo;/freebsd-eol">
-<!ENTITY a.eol "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.eol.url;'>FreeBSD-eol l׾</link>">
+<!ENTITY a.eol "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.eol.url;'>FreeBSD-eol 郵遞論壇</link>">
<!ENTITY a.eol.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.eol.url;'>freebsd-eol</link>">
<!ENTITY a.firewire.url "&a.mailman.listinfo;/freebsd-firewire">
-<!ENTITY a.firewire "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.firewire.url;'>FreeBSD FireWire (IEEE 1394) discussion l׾</link>">
+<!ENTITY a.firewire "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.firewire.url;'>FreeBSD FireWire (IEEE 1394) discussion 郵遞論壇</link>">
<!ENTITY a.firewire.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.firewire.url;'>freebsd-firewire</link>">
<!ENTITY a.fs.url "&a.mailman.listinfo;/freebsd-fs">
-<!ENTITY a.fs "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.fs.url;'>FreeBSD file system project l׾</link>">
+<!ENTITY a.fs "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.fs.url;'>FreeBSD file system project 郵遞論壇</link>">
<!ENTITY a.fs.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.fs.url;'>freebsd-fs</link>">
<!ENTITY a.geom.url "&a.mailman.listinfo;/freebsd-geom">
-<!ENTITY a.geom "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.geom.url;'>FreeBSD GEOM l׾</link>">
+<!ENTITY a.geom "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.geom.url;'>FreeBSD GEOM 郵遞論壇</link>">
<!ENTITY a.geom.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.geom.url;'>freebsd-geom</link>">
<!ENTITY a.gnome.url "&a.mailman.listinfo;/freebsd-gnome">
-<!ENTITY a.gnome "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.gnome.url;'>FreeBSD GNOME and GNOME applications l׾</link>">
+<!ENTITY a.gnome "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.gnome.url;'>FreeBSD GNOME and GNOME applications 郵遞論壇</link>">
<!ENTITY a.gnome.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.gnome.url;'>freebsd-gnome</link>">
<!ENTITY a.hackers.url "&a.mailman.listinfo;/freebsd-hackers">
-<!ENTITY a.hackers "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.hackers.url;'>FreeBSD technical discussions l׾</link>">
+<!ENTITY a.hackers "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.hackers.url;'>FreeBSD technical discussions 郵遞論壇</link>">
<!ENTITY a.hackers.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.hackers.url;'>freebsd-hackers</link>">
<!ENTITY a.hardware.url "&a.mailman.listinfo;/freebsd-hardware">
-<!ENTITY a.hardware "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.hardware.url;'>FreeBSD hardware and equipment l׾</link>">
+<!ENTITY a.hardware "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.hardware.url;'>FreeBSD hardware and equipment 郵遞論壇</link>">
<!ENTITY a.hardware.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.hardware.url;'>freebsd-hardware</link>">
<!ENTITY a.hubs.url "&a.mailman.listinfo;/freebsd-hubs">
-<!ENTITY a.hubs "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.hubs.url;'>FreeBSD mirror sites l׾s</link>">
+<!ENTITY a.hubs "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.hubs.url;'>FreeBSD mirror sites 郵遞論壇s</link>">
<!ENTITY a.hubs.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.hubs.url;'>freebsd-hubs</link>">
<!ENTITY a.i18n.url "&a.mailman.listinfo;/freebsd-i18n">
-<!ENTITY a.i18n "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.i18n.url;'>FreeBSD internationalization l׾</link>">
+<!ENTITY a.i18n "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.i18n.url;'>FreeBSD internationalization 郵遞論壇</link>">
<!ENTITY a.i18n.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.i18n.url;'>freebsd-i18n</link>">
<!ENTITY a.i386.url "&a.mailman.listinfo;/freebsd-i386">
-<!ENTITY a.i386 "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.i386.url;'>FreeBSD i386-specific issues l׾</link>">
+<!ENTITY a.i386 "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.i386.url;'>FreeBSD i386-specific issues 郵遞論壇</link>">
<!ENTITY a.i386.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.i386.url;'>freebsd-i386</link>">
<!ENTITY a.ia32.url "&a.mailman.listinfo;/freebsd-ia32">
-<!ENTITY a.ia32 "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ia32.url;'>FreeBSD IA32 porting l׾</link>">
+<!ENTITY a.ia32 "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ia32.url;'>FreeBSD IA32 porting 郵遞論壇</link>">
<!ENTITY a.ia32.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ia32.url;'>freebsd-ia32</link>">
<!ENTITY a.ia64.url "&a.mailman.listinfo;/freebsd-ia64">
-<!ENTITY a.ia64 "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ia64.url;'>FreeBSD IA64 porting l׾</link>">
+<!ENTITY a.ia64 "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ia64.url;'>FreeBSD IA64 porting 郵遞論壇</link>">
<!ENTITY a.ia64.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ia64.url;'>freebsd-ia64</link>">
<!ENTITY a.ipfw.url "&a.mailman.listinfo;/freebsd-ipfw">
-<!ENTITY a.ipfw "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ipfw.url;'>FreeBSD IPFW code l׾</link>">
+<!ENTITY a.ipfw "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ipfw.url;'>FreeBSD IPFW code 郵遞論壇</link>">
<!ENTITY a.ipfw.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ipfw.url;'>freebsd-ipfw</link>">
<!ENTITY a.isdn.url "&a.mailman.listinfo;/freebsd-isdn">
-<!ENTITY a.isdn "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.isdn.url;'>FreeBSD ISDN l׾</link>">
+<!ENTITY a.isdn "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.isdn.url;'>FreeBSD ISDN 郵遞論壇</link>">
<!ENTITY a.isdn.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.isdn.url;'>freebsd-isdn</link>">
<!ENTITY a.isp.url "&a.mailman.listinfo;/freebsd-isp">
-<!ENTITY a.isp "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.isp.url;'>FreeBSD Internet service provider's l׾</link>">
+<!ENTITY a.isp "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.isp.url;'>FreeBSD Internet service provider's 郵遞論壇</link>">
<!ENTITY a.isp.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.isp.url;'>freebsd-isp</link>">
<!ENTITY a.jail.url "&a.mailman.listinfo;/freebsd-jail">
-<!ENTITY a.jail "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.jail.url;'>FreeBSD jails l׾</link>">
+<!ENTITY a.jail "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.jail.url;'>FreeBSD jails 郵遞論壇</link>">
<!ENTITY a.jail.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.jail.url;'>freebsd-jail</link>">
<!ENTITY a.java.url "&a.mailman.listinfo;/freebsd-java">
-<!ENTITY a.java "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.java.url;'>FreeBSD Java Language l׾</link>">
+<!ENTITY a.java "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.java.url;'>FreeBSD Java Language 郵遞論壇</link>">
<!ENTITY a.java.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.java.url;'>freebsd-java</link>">
<!ENTITY a.jobs.url "&a.mailman.listinfo;/freebsd-jobs">
-<!ENTITY a.jobs "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.jobs.url;'>FreeBSD related employment l׾</link>">
+<!ENTITY a.jobs "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.jobs.url;'>FreeBSD related employment 郵遞論壇</link>">
<!ENTITY a.jobs.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.jobs.url;'>freebsd-jobs</link>">
<!ENTITY a.kde.url "https://mail.kde.org/mailman/listinfo/kde-freebsd">
-<!ENTITY a.kde "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.kde.url;'>FreeBSD KDE/Qt and KDE applications l׾</link>">
+<!ENTITY a.kde "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.kde.url;'>FreeBSD KDE/Qt and KDE applications 郵遞論壇</link>">
<!ENTITY a.kde.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.kde.url;'>freebsd-kde</link>">
<!ENTITY a.lfs.url "&a.mailman.listinfo;/freebsd-lfs">
-<!ENTITY a.lfs "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.lfs.url;'>FreeBSD LFS porting l׾</link>">
+<!ENTITY a.lfs "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.lfs.url;'>FreeBSD LFS porting 郵遞論壇</link>">
<!ENTITY a.lfs.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.lfs.url;'>freebsd-lfs</link>">
<!ENTITY a.libh.url "&a.mailman.listinfo;/freebsd-libh">
-<!ENTITY a.libh "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.libh.url;'>FreeBSD libh installation and packaging system l׾</link>">
+<!ENTITY a.libh "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.libh.url;'>FreeBSD libh installation and packaging system 郵遞論壇</link>">
<!ENTITY a.libh.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.libh.url;'>freebsd-libh</link>">
<!ENTITY a.mips.url "&a.mailman.listinfo;/freebsd-mips">
-<!ENTITY a.mips "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.mips.url;'>FreeBSD MIPS porting l׾</link>">
+<!ENTITY a.mips "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.mips.url;'>FreeBSD MIPS porting 郵遞論壇</link>">
<!ENTITY a.mips.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.mips.url;'>freebsd-mips</link>">
<!ENTITY a.mirror-announce.url "&a.mailman.listinfo;/mirror-announce">
@@ -263,69 +263,69 @@
<!ENTITY a.mirror-announce.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.mirror-announce.url;'>mirror-announce</link>">
<!ENTITY a.mobile.url "&a.mailman.listinfo;/freebsd-mobile">
-<!ENTITY a.mobile "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.mobile.url;'>FreeBSD laptop computer l׾</link>">
+<!ENTITY a.mobile "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.mobile.url;'>FreeBSD laptop computer 郵遞論壇</link>">
<!ENTITY a.mobile.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.mobile.url;'>freebsd-mobile</link>">
<!ENTITY a.mozilla.url "&a.mailman.listinfo;/freebsd-mozilla">
-<!ENTITY a.mozilla "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.mozilla.url;'>FreeBSD port of the Mozilla browser l׾</link>">
+<!ENTITY a.mozilla "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.mozilla.url;'>FreeBSD port of the Mozilla browser 郵遞論壇</link>">
<!ENTITY a.mozilla.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.mozilla.url;'>freebsd-mozilla</link>">
<!ENTITY a.multimedia.url "&a.mailman.listinfo;/freebsd-multimedia">
-<!ENTITY a.multimedia "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.multimedia.url;'>FreeBSD multimedia l׾</link>">
+<!ENTITY a.multimedia "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.multimedia.url;'>FreeBSD multimedia 郵遞論壇</link>">
<!ENTITY a.multimedia.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.multimedia.url;'>freebsd-multimedia</link>">
<!ENTITY a.net.url "&a.mailman.listinfo;/freebsd-net">
-<!ENTITY a.net "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.net.url;'>FreeBSD networking l׾</link>">
+<!ENTITY a.net "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.net.url;'>FreeBSD networking 郵遞論壇</link>">
<!ENTITY a.net.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.net.url;'>freebsd-net</link>">
<!ENTITY a.newbies.url "&a.mailman.listinfo;/freebsd-newbies">
-<!ENTITY a.newbies "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.newbies.url;'>FreeBSD new users l׾</link>">
+<!ENTITY a.newbies "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.newbies.url;'>FreeBSD new users 郵遞論壇</link>">
<!ENTITY a.newbies.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.newbies.url;'>freebsd-newbies</link>">
<!ENTITY a.newbus.url "&a.mailman.listinfo;/freebsd-new-bus">
-<!ENTITY a.newbus "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.newbus.url;'>FreeBSD new-bus l׾</link>">
+<!ENTITY a.newbus "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.newbus.url;'>FreeBSD new-bus 郵遞論壇</link>">
<!ENTITY a.newbus.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.newbus.url;'>freebsd-new-bus</link>">
<!ENTITY a.openoffice.url "&a.mailman.listinfo;/freebsd-openoffice">
-<!ENTITY a.openoffice "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.openoffice.url;'>FreeBSD OpenOffice l׾</link>">
+<!ENTITY a.openoffice "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.openoffice.url;'>FreeBSD OpenOffice 郵遞論壇</link>">
<!ENTITY a.openoffice.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.openoffice.url;'>freebsd-openoffice</link>">
<!ENTITY a.performance.url "&a.mailman.listinfo;/freebsd-performance">
-<!ENTITY a.performance "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.performance.url;'>FreeBSD performance l׾</link>">
+<!ENTITY a.performance "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.performance.url;'>FreeBSD performance 郵遞論壇</link>">
<!ENTITY a.performance.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.performance.url;'>freebsd-performance</link>">
<!ENTITY a.perl.url "&a.mailman.listinfo;/freebsd-perl">
-<!ENTITY a.perl "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.perl.url;'>FreeBSD Perl l׾</link>">
+<!ENTITY a.perl "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.perl.url;'>FreeBSD Perl 郵遞論壇</link>">
<!ENTITY a.perl.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.perl.url;'>freebsd-perl</link>">
<!ENTITY a.pf.url "&a.mailman.listinfo;/freebsd-pf">
-<!ENTITY a.pf "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.pf.url;'>FreeBSD packet filter l׾</link>">
+<!ENTITY a.pf "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.pf.url;'>FreeBSD packet filter 郵遞論壇</link>">
<!ENTITY a.pf.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.pf.url;'>freebsd-pf</link>">
<!ENTITY a.platforms.url "&a.mailman.listinfo;/freebsd-platforms">
-<!ENTITY a.platforms "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.platforms.url;'>FreeBSD non-Intel platforms porting l׾</link>">
+<!ENTITY a.platforms "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.platforms.url;'>FreeBSD non-Intel platforms porting 郵遞論壇</link>">
<!ENTITY a.platforms.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.platforms.url;'>freebsd-platforms</link>">
<!ENTITY a.policy.url "&a.mailman.listinfo;/freebsd-policy">
-<!ENTITY a.policy "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.policy.url;'>FreeBSD core team policy decisions l׾</link>">
+<!ENTITY a.policy "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.policy.url;'>FreeBSD core team policy decisions 郵遞論壇</link>">
<!ENTITY a.policy.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.policy.url;'>freebsd-policy</link>">
<!ENTITY a.ports.url "&a.mailman.listinfo;/freebsd-ports">
-<!ENTITY a.ports "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ports.url;'>FreeBSD ports l׾</link>">
+<!ENTITY a.ports "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ports.url;'>FreeBSD ports 郵遞論壇</link>">
<!ENTITY a.ports.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ports.url;'>freebsd-ports</link>">
<!ENTITY a.ports-bugs.url "&a.mailman.listinfo;/freebsd-ports-bugs">
-<!ENTITY a.ports-bugs "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ports-bugs.url;'>FreeBSD ports bugs l׾</link>">
+<!ENTITY a.ports-bugs "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ports-bugs.url;'>FreeBSD ports bugs 郵遞論壇</link>">
<!ENTITY a.ports-bugs.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ports-bugs.url;'>freebsd-ports-bugs</link>">
-<!ENTITY a.ports-committers "FreeBSD ports/ committer's l׾">
+<!ENTITY a.ports-committers "FreeBSD ports/ committer's 郵遞論壇">
<!ENTITY a.ports-committers.name "ports-committers">
-<!ENTITY a.ports-developers "FreeBSD ports/ developers l׾">
+<!ENTITY a.ports-developers "FreeBSD ports/ developers 郵遞論壇">
<!ENTITY a.ports-developers.name "ports-developers">
<!ENTITY a.ppc.url "&a.mailman.listinfo;/freebsd-ppc">
-<!ENTITY a.ppc "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ppc.url;'>FreeBSD PowerPC porting l׾</link>">
+<!ENTITY a.ppc "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ppc.url;'>FreeBSD PowerPC porting 郵遞論壇</link>">
<!ENTITY a.ppc.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.ppc.url;'>freebsd-ppc</link>">
<!ENTITY a.proliant.url "&a.mailman.listinfo;/freebsd-proliant">
@@ -333,93 +333,93 @@
<!ENTITY a.proliant.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.proliant.url;'>freebsd-proliant</link>">
<!ENTITY a.python.url "&a.mailman.listinfo;/freebsd-python">
-<!ENTITY a.python "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.python.url;'>FreeBSD Python l׾</link>">
+<!ENTITY a.python "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.python.url;'>FreeBSD Python 郵遞論壇</link>">
<!ENTITY a.python.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.python.url;'>freebsd-python</link>">
<!ENTITY a.qa.url "&a.mailman.listinfo;/freebsd-qa">
-<!ENTITY a.qa "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.qa.url;'>FreeBSD Quality Assurance l׾</link>">
+<!ENTITY a.qa "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.qa.url;'>FreeBSD Quality Assurance 郵遞論壇</link>">
<!ENTITY a.qa.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.qa.url;'>freebsd-qa</link>">
<!ENTITY a.questions.url "&a.mailman.listinfo;/freebsd-questions">
-<!ENTITY a.questions "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.questions.url;'>FreeBSD general questions l׾</link>">
+<!ENTITY a.questions "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.questions.url;'>FreeBSD general questions 郵遞論壇</link>">
<!ENTITY a.questions.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.questions.url;'>freebsd-questions</link>">
<!ENTITY a.rc.url "&a.mailman.listinfo;/freebsd-rc">
-<!ENTITY a.rc "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.rc.url;'>FreeBSD boot script system l׾</link>">
+<!ENTITY a.rc "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.rc.url;'>FreeBSD boot script system 郵遞論壇</link>">
<!ENTITY a.rc.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.rc.url;'>freebsd-rc</link>">
<!ENTITY a.realtime.url "&a.mailman.listinfo;/freebsd-realtime">
-<!ENTITY a.realtime "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.realtime.url;'>FreeBSD realtime extensions l׾</link>">
+<!ENTITY a.realtime "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.realtime.url;'>FreeBSD realtime extensions 郵遞論壇</link>">
<!ENTITY a.realtime.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.realtime.url;'>freebsd-realtime</link>">
<!ENTITY a.scsi.url "&a.mailman.listinfo;/freebsd-scsi">
-<!ENTITY a.scsi "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.scsi.url;'>FreeBSD SCSI subsystem l׾</link>">
+<!ENTITY a.scsi "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.scsi.url;'>FreeBSD SCSI subsystem 郵遞論壇</link>">
<!ENTITY a.scsi.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.scsi.url;'>freebsd-scsi</link>">
<!ENTITY a.security.url "&a.mailman.listinfo;/freebsd-security">
-<!ENTITY a.security "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.security.url;'>FreeBSD security l׾</link>">
+<!ENTITY a.security "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.security.url;'>FreeBSD security 郵遞論壇</link>">
<!ENTITY a.security.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.security.url;'>freebsd-security</link>">
<!ENTITY a.security-notifications.url "&a.mailman.listinfo;/freebsd-security-notifications">
-<!ENTITY a.security-notifications "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.security-notifications.url;'>FreeBSD security notifications l׾</link>">
+<!ENTITY a.security-notifications "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.security-notifications.url;'>FreeBSD security notifications 郵遞論壇</link>">
<!ENTITY a.security-notifications.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.security-notifications.url;'>freebsd-security-notifications</link>">
<!ENTITY a.small.url "&a.mailman.listinfo;/freebsd-small">
-<!ENTITY a.small "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.small.url;'>FreeBSD-small l׾</link>">
+<!ENTITY a.small "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.small.url;'>FreeBSD-small 郵遞論壇</link>">
<!ENTITY a.small.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.small.url;'>freebsd-small</link>">
<!ENTITY a.smp.url "&a.mailman.listinfo;/freebsd-smp">
-<!ENTITY a.smp "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.smp.url;'>FreeBSD symmetric multiprocessing l׾</link>">
+<!ENTITY a.smp "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.smp.url;'>FreeBSD symmetric multiprocessing 郵遞論壇</link>">
<!ENTITY a.smp.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.smp.url;'>freebsd-smp</link>">
<!ENTITY a.sparc.url "&a.mailman.listinfo;/freebsd-sparc64">
-<!ENTITY a.sparc "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.sparc.url;'>FreeBSD SPARC porting l׾</link>">
+<!ENTITY a.sparc "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.sparc.url;'>FreeBSD SPARC porting 郵遞論壇</link>">
<!ENTITY a.sparc.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.sparc.url;'>freebsd-sparc64</link>">
-<!ENTITY a.src-committers "FreeBSD src/ committer's l׾">
+<!ENTITY a.src-committers "FreeBSD src/ committer's 郵遞論壇">
<!ENTITY a.src-committers.name "freebsd-src-committers">
-<!ENTITY a.src-developers "FreeBSD src/ developers l׾">
+<!ENTITY a.src-developers "FreeBSD src/ developers 郵遞論壇">
<!ENTITY a.src-developers.name "freebsd-src-developers">
<!ENTITY a.stable.url "&a.mailman.listinfo;/freebsd-stable">
-<!ENTITY a.stable "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.stable.url;'>&os.stable; l׾</link>">
+<!ENTITY a.stable "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.stable.url;'>&os.stable; 郵遞論壇</link>">
<!ENTITY a.stable.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.stable.url;'>freebsd-stable</link>">
<!ENTITY a.standards.url "&a.mailman.listinfo;/freebsd-standards">
-<!ENTITY a.standards "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.standards.url;'>FreeBSD C99 and POSIX compliance l׾</link>">
+<!ENTITY a.standards "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.standards.url;'>FreeBSD C99 and POSIX compliance 郵遞論壇</link>">
<!ENTITY a.standards.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.standards.url;'>freebsd-standards</link>">
<!ENTITY a.sun4v.url "&a.mailman.listinfo;/freebsd-sun4v">
-<!ENTITY a.sun4v "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.sun4v.url;'>FreeBSD sun4v porting l׾</link>">
+<!ENTITY a.sun4v "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.sun4v.url;'>FreeBSD sun4v porting 郵遞論壇</link>">
<!ENTITY a.sun4v.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.sun4v.url;'>freebsd-sun4v</link>">
<!ENTITY a.test.url "&a.mailman.listinfo;/freebsd-test">
-<!ENTITY a.test "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.test.url;'>FreeBSD test l׾</link>">
+<!ENTITY a.test "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.test.url;'>FreeBSD test 郵遞論壇</link>">
<!ENTITY a.test.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.test.url;'>freebsd-test</link>">
<!ENTITY a.testing.url "&a.mailman.listinfo;/freebsd-testing">
-<!ENTITY a.testing "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.testing.url;'>FreeBSD performance and stability testing l׾</link>">
+<!ENTITY a.testing "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.testing.url;'>FreeBSD performance and stability testing 郵遞論壇</link>">
<!ENTITY a.testing.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.testing.url;'>freebsd-testing</link>">
<!ENTITY a.threads.url "&a.mailman.listinfo;/freebsd-threads">
-<!ENTITY a.threads "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.threads.url;'>FreeBSD threads l׾</link>">
+<!ENTITY a.threads "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.threads.url;'>FreeBSD threads 郵遞論壇</link>">
<!ENTITY a.threads.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.threads.url;'>freebsd-threads</link>">
<!ENTITY a.tokenring.url "&a.mailman.listinfo;/freebsd-tokenring">
-<!ENTITY a.tokenring "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.tokenring.url;'>FreeBSD tokenring l׾</link>">
+<!ENTITY a.tokenring "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.tokenring.url;'>FreeBSD tokenring 郵遞論壇</link>">
<!ENTITY a.tokenring.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.tokenring.url;'>freebsd-tokenring</link>">
<!ENTITY a.usb.url "&a.mailman.listinfo;/freebsd-usb">
-<!ENTITY a.usb "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.usb.url;'>FreeBSD USB l׾</link>">
+<!ENTITY a.usb "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.usb.url;'>FreeBSD USB 郵遞論壇</link>">
<!ENTITY a.usb.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.usb.url;'>freebsd-usb</link>">
<!ENTITY a.usergroups.url "&a.mailman.listinfo;/freebsd-user-groups">
-<!ENTITY a.usergroups "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.usergroups.url;'>FreeBSD user group coordination l׾</link>">
+<!ENTITY a.usergroups "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.usergroups.url;'>FreeBSD user group coordination 郵遞論壇</link>">
<!ENTITY a.usergroups.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.usergroups.url;'>freebsd-user-groups</link>">
<!ENTITY a.vendors.url "&a.mailman.listinfo;/freebsd-vendors">
-<!ENTITY a.vendors "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.vendors.url;'>FreeBSD vendors pre-release coordination l׾</link>">
+<!ENTITY a.vendors "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.vendors.url;'>FreeBSD vendors pre-release coordination 郵遞論壇</link>">
<!ENTITY a.vendors.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.vendors.url;'>freebsd-vendors</link>">
<!ENTITY a.vuxml.url "&a.mailman.listinfo;/freebsd-vuxml">
@@ -428,11 +428,11 @@ infrastructure</link>">
<!ENTITY a.vuxml.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.vuxml.url;'>freebsd-vuxml</link>">
<!ENTITY a.www.url "&a.mailman.listinfo;/freebsd-www">
-<!ENTITY a.www "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.www.url;'>FreeBSD Webmaster l׾</link>">
+<!ENTITY a.www "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.www.url;'>FreeBSD Webmaster 郵遞論壇</link>">
<!ENTITY a.www.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.www.url;'>freebsd-www</link>">
<!ENTITY a.x11.url "&a.mailman.listinfo;/freebsd-x11">
-<!ENTITY a.x11 "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.x11.url;'>FreeBSD X11 l׾</link>">
+<!ENTITY a.x11 "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.x11.url;'>FreeBSD X11 郵遞論壇</link>">
<!ENTITY a.x11.name "<link xmlns='http://docbook.org/ns/docbook' xlink:href='&a.x11.url;'>freebsd-x11</link>">
<!-- Not really proper mailing lists -->
diff --git a/zh_TW.UTF-8/share/xml/navibar.l10n.ent b/zh_TW.UTF-8/share/xml/navibar.l10n.ent
new file mode 100644
index 0000000000..06c22998b5
--- /dev/null
+++ b/zh_TW.UTF-8/share/xml/navibar.l10n.ent
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $FreeBSD$
+
+ The FreeBSD Traditional Chinese Project
+ Original Revision: 1.11
+-->
+
+<!ENTITY nav.about '
+<div xmlns="http://www.w3.org/1999/xhtml" id="sidenav">
+<h2 class="blockhide">Section Navigation</h2>
+<ul>
+<li><a href="&base;/about.html">關於</a></li>
+<li><a href="&base;/features.html">特色</a></li>
+<li><a href="&base;/applications.html">應用程式</a></li>
+<li><a href="&base;/internet.html">Internet</a></li>
+<li><a href="&base;/advocacy/">提倡</a></li>
+<li><a href="&enbase;/marketing/">市場</a></li>
+<li><a href="&base;/news/newsflash.html">新聞</a></li>
+<li><a href="&enbase;/events/events.html">近期活動</a></li>
+<li><a href="&base;/news/press.html">媒體報導</a></li>
+<li><a href="&base;/art.html">插圖</a></li>
+<li><a href="&base;/logo.html">Logo</a></li>
+<li><a href="&base;/donations/">捐贈</a></li>
+<li><a href="&base;/copyright/">法律須知</a></li>
+</ul>
+</div> <!-- sidenav -->
+'>
+
+<!ENTITY nav.community '
+<div xmlns="http://www.w3.org/1999/xhtml" id="sidenav">
+<h2 class="blockhide">Section Navigation</h2>
+<ul>
+<li><a href="&base;/community.html">社群</a></li>
+<li><a href="&enbase;/community/mailinglists.html">郵件論壇</a></li>
+<li><a href="&enbase;/community/irc.html">IRC</a></li>
+<li><a href="&enbase;/community/newsgroups.html">newsgroup</a></li>
+<li><a href="&enbase;/usergroups.html">愛用者組織</a></li>
+<li><a href="&enbase;/community/webresources.html">Web 資源</a></li>
+</ul>
+</div> <!-- sidenav -->
+'>
+
+<!ENTITY nav.developers '
+<div xmlns="http://www.w3.org/1999/xhtml" id="sidenav">
+<h2 class="blockhide">Section Navigation</h2>
+<ul>
+<li><a href="&enbase;/projects/index.html">開發</a></li>
+<li><a href="&enbase;/doc/zh_TW.UTF-8/books/developers-handbook">開發手冊</a></li>
+<li><a href="&enbase;/doc/zh_TW.UTF-8/books/porters-handbook">Porter 手冊</a></li>
+<li><a href="&enbase;/developers/cvs.html">CVS 代碼庫</a></li>
+<li><a href="&enbase;/releng/index.html">Release Engineering</a></li>
+<li><a href="&base;/platforms/">平台</a>
+ <ul>
+ <li><a href="&base;/platforms/alpha.html">alpha</a></li>
+ <li><a href="&base;/platforms/amd64.html">amd64</a></li>
+ <li><a href="&base;/platforms/arm.html">ARM</a></li>
+ <li><a href="&base;/platforms/i386.html">i386</a></li>
+ <li><a href="&base;/platforms/ia64/index.html">ia64</a></li>
+ <li><a href="&base;/platforms/mips.html">MIPS</a></li>
+ <li><a href="&base;/platforms/pc98.html">pc98</a></li>
+ <li><a href="&base;/platforms/ppc.html">ppc</a></li>
+ <li><a href="&base;/platforms/sparc.html">sparc64</a></li>
+ <li><a href="&base;/platforms/xbox.html">xbox</a></li>
+ </ul>
+</li>
+<li><a href="&base;/projects/ideas/">新點子計劃</a></li>
+<li><a href="&enbase;/doc/zh_TW.UTF-8/articles/contributing/index.html">為 FreeBSD 提供幫助</a></li>
+</ul>
+</div> <!-- sidenav -->
+'>
+
+<!ENTITY nav.docs '
+<div xmlns="http://www.w3.org/1999/xhtml" id="sidenav">
+<h2 class="blockhide">Section Navigation</h2>
+<ul>
+<li><a href="&base;/docs.html">文件</a></li>
+<li><a href="&enbase;/doc/zh_TW.UTF-8/books/faq/">FAQ</a></li>
+<li><a href="&enbase;/doc/zh_TW.UTF-8/books/handbook/">使用手冊</a></li>
+<li><a href="&cgibase;/man.cgi">Manual 查閱</a></li>
+<li><a href="&base;/docs/books.html">網路文章</a></li>
+<li><a href="&enbase;/marketing/">市場文宣</a></li>
+<li><a href="&enbase;/publish.html">實體書本</a></li>
+<li><a href="&base;/docs/webresources.html">Web 資源</a></li>
+<li><a href="&enbase;/projects/newbies.html">新手上路</a></li>
+<li><a href="&enbase;/docproj/">FreeBSD 文件計劃</a></li>
+</ul>
+</div> <!-- sidenav -->
+'>
+
+<![ %beta.testing; [
+<!ENTITY beta.listitem '
+ <li xmlns="http://www.w3.org/1999/xhtml"><a href="&enbase;/&u.betarel.schedule;">即將發佈: &betarel.current;</a></li>
+'>
+]]>
+<!ENTITY beta.listitem ''>
+
+<![ %beta2.testing; [
+<!ENTITY beta2.listitem '
+ <li xmlns="http://www.w3.org/1999/xhtml"><a href="&u.betarel2.schedule;">即將發佈: &betarel2.current;</a></li>
+'>
+]]>
+<!ENTITY beta2.listitem ''>
+
+<!ENTITY nav.download '
+<div xmlns="http://www.w3.org/1999/xhtml" id="sidenav">
+<h2 class="blockhide">Section Navigation</h2>
+<ul>
+<li><a href="&base;/where.html">取得 FreeBSD</a></li>
+<li><a href="&enbase;/releases/">發行資訊</a>
+ <ul>
+ <li><a href="&enbase;/&u.rel.announce;">Production Release: &rel.current;</a></li>
+ <li><a href="&enbase;/&u.rel2.announce;">Production Release(舊式): &rel2.current;</a></li>
+ <li><a href="&enbase;/snapshots/">Snapshot Releases</a></li>
+ &beta.listitem;
+ &beta2.listitem;
+ </ul>
+</li>
+<li><a href="&enbase;/ports/">移植的應用程式(ports)</a></li>
+</ul>
+</div> <!-- sidenav -->
+'>
+
+<!ENTITY nav.ports '
+<div xmlns="http://www.w3.org/1999/xhtml" id="sidenav">
+<h2 class="blockhide">Section Navigation</h2>
+<ul>
+<li><a href="&enbase;/ports/index.html">關於 ports</a></li>
+<li><a href="&enbase;/ports/installing.html">安裝</a></li>
+<li><a href="&enbase;/ports/updating.html">更新</a></li>
+<li><a href="&enbase;/ports/searching.html">搜尋</a></li>
+<li>&nbsp;&nbsp;&nbsp;&nbsp;目錄
+ <ul>
+ <li><a href="&enbase;/ports/categories-alpha.html">按字母序</a></li>
+ <li><a href="&enbase;/ports/categories-grouped.html">按邏輯分類序</a></li>
+ </ul>
+</li>
+<li><a href="&enbase;/ports/master-index.html">全部 Ports</a></li>
+<li><a href="&enbase;/ports/references.html">更多資訊</a></li>
+</ul>
+</div> <!-- sidenav -->
+'>
+
+<!ENTITY nav.support '
+<div xmlns="http://www.w3.org/1999/xhtml" id="sidenav">
+<h2 class="blockhide">Section Navigation</h2>
+<ul>
+<li><a href="&enbase;/support.html">支援</a></li>
+<li><a href="&enbase;/commercial/">商業產品</a>
+ <ul>
+ <li><a href="&enbase;/commercial/software_bycat.html">軟體</a></li>
+ <li><a href="&enbase;/commercial/hardware.html">硬體</a></li>
+ <li><a href="&enbase;/commercial/consult_bycat.html">咨詢</a></li>
+ <li><a href="&enbase;/commercial/isp.html">Internet 服務</a></li>
+ <li><a href="&enbase;/commercial/misc.html">其它</a></li>
+ </ul>
+</li>
+<li><a href="&base;/security/">安全資訊</a></li>
+<li><a href="&enbase;/support/bugreports.html">Bug 報告</a>
+ <ul>
+ <li><a href="&base;/send-pr.html">提交問題報告</a></li>
+ </ul>
+</li>
+<li><a href="&enbase;/support/webresources.html">Web 資源</a></li>
+</ul>
+</div> <!-- sidenav -->
+'>
+
diff --git a/zh_TW.UTF-8/share/xml/news.xml b/zh_TW.UTF-8/share/xml/news.xml
new file mode 100644
index 0000000000..1802543169
--- /dev/null
+++ b/zh_TW.UTF-8/share/xml/news.xml
@@ -0,0 +1,2579 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE news PUBLIC "-//FreeBSD//DTD FreeBSD XML Database for News//EN"
+ "http://www.FreeBSD.org/XML/www/share/xml/news.dtd">
+
+<!-- Simple schema for FreeBSD Project news.
+
+ Divide time in to <year>, <month>, and <day> elements, each of which
+ has a <name>.
+
+ each <day> element contains one or more <event> elements.
+
+ Each <event> contains an optional <title>, and then a <p>. <p> elements
+ can contain <a> anchors. Within the "href" attribute of the anchor
+ &base; or &enbase; will be replaced with the base URI necessary to reach
+ the FreeBSD document root, and should always be used to start URLs at
+ www.FreeBSD.org or one of the mirrors.
+
+ Use the <title> element if the <p> content is lengthy. When generating
+ synopses of this information (e.g., for syndication using RDF files),
+ the contents of <title> will be preferred over <p>.
+
+ The FreeBSD Traditional Chinese Documentation Project
+ Original Revision: 1.40
+ From: www/share/xml/news.xml
+-->
+
+<news>
+ <cvs:keyword xmlns:cvs="http://www.FreeBSD.org/XML/CVS">
+ $FreeBSD$
+ </cvs:keyword>
+
+ <year>
+ <name>2006</name>
+ <month>
+ <name>12</name>
+
+ <day>
+ <name>27</name>
+ <event>
+ <p>New committer: <a href="mailto:jls@freebsd.org">Jordan Sissel</a>
+ (src)</p>
+ </event>
+
+ <event>
+ <title>FreeBSD 6.2-RC2 Available</title>
+
+ <p>FreeBSD 6.2 的第二個候選發佈版本現已 <a
+ href="http://lists.freebsd.org/pipermail/freebsd-stable/2006-December/031742.html">發佈</a>。
+ 用於 Tier-1 平台的 ISO 映像檔案,已可以透過眾多的
+ <a href="http://www.FreeBSD.org/doc/zh_TW.UTF-8/books/handbook/mirrors-ftp.html">
+ FreeBSD 鏡像站點</a> 獲得。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>26</name>
+ <event>
+ <p>新增 committer:<a href="mailto:dryice@FreeBSD.org">劉棟</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>22</name>
+ <event>
+ <p>新增 committer:<a href="mailto:nox@FreeBSD.org">Juergen Lock</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>10</name>
+ <event>
+ <title>對 FreeBSD 開發人員 Joseph Koshy 的 Podcast 訪談</title>
+
+ <p>在最新一期 <a href="http://bsdtalk.blogspot.com/">bsdtalk</a>
+ podcast 中,Will Backman 就 FreeBSD 開發人員 Joseph Koshy
+ 近期在 libElf 上所做的工作進行了訪談。 這期 podcast 可以透過
+ <a
+ href="http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk087.mp3">
+ http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk087.mp3</a> 收聽。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>7</name>
+ <event>
+ <title>對 FreeBSD 開發人員 Kip Macy 的 Podcast 訪談</title>
+
+ <p>在最新一期 <a href="http://bsdtalk.blogspot.com/">bsdtalk</a>
+ podcast 中,Will Backman 就近期 FreeBSD/sun4v
+ 的移植進展,對 FreeBSD 開發人員 Joseph Koshy 進行了採訪。 這期 podcast 可以透過
+ <a
+ href="http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk086.mp3">
+ http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk086.mp3</a> 收聽。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>5</name>
+ <event>
+ <p>新增 committer:<a href="mailto:nivit@FreeBSD.org">Nicola Vitale</a>
+ (ports)</p>
+ </event>
+
+ <event>
+ <p>新增 committer:<a href="mailto:gabor@FreeBSD.org">G&aacute;bor K&ouml;vesd&aacute;n</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>1</name>
+ <event>
+ <title>對 FreeBSD 開發人員 Tom McLaughlin 的 Podcast 訪談</title>
+
+ <p>在最新一期 <a href="http://bsdtalk.blogspot.com/">bsdtalk</a>
+ podcast 中,Will Backman 就 BSD# 計劃和 FreeBSD 上的 Mono
+ 對 FreeBSD 開發人員 Tom McLaughlin 進行了採訪。 這期 podcast 可以透過
+ <a
+ href="http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk085.mp3">
+ http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk085.mp3</a> 收聽。</p>
+ </event>
+ </day>
+ </month>
+
+ <month>
+ <name>11</name>
+
+ <day>
+ <name>29</name>
+ <event>
+ <p>新增 committer:<a href="mailto:lx@FreeBSD.org">David Thiel</a>
+ (ports)</p>
+ </event>
+
+ <event>
+ <title>對 FreeBSD release engineer馬源浩的 Podcast 訪談</title>
+
+ <p>在最新一期 <a href="http://bsdtalk.blogspot.com/">bsdtalk</a>
+ podcast 中,Will Backman 就將要發佈的 FreeBSD 6.2 版對release engineer馬源浩 (Bruce
+ Mah) 進行了採訪。 這期 podcast 可以透過
+ <a
+ href="http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk084.mp3">
+ http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk084.mp3</a> 收聽</p>
+ </event>
+ </day>
+
+ <day>
+ <name>17</name>
+ <event>
+ <title>FreeBSD 6.2-RC1 發佈了</title>
+
+ <p>FreeBSD 6.2 的第一個候選發佈版本現已 <a
+ href="http://lists.freebsd.org/pipermail/freebsd-stable/2006-November/030811.html">發佈</a>。
+ 用於 Tier-1 平台的 ISO 映像檔案,已可透過眾多的
+ <a href="http://www.FreeBSD.org/doc/zh_TW.UTF-8/books/handbook/mirrors-ftp.html">
+ FreeBSD 鏡像站點</a> 獲得。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>16</name>
+ <event>
+ <title>FreeBSD 基金會秋季募捐</title>
+
+ <p><a
+ href="http://www.freebsdfoundation.org/">FreeBSD 基金會</a>
+ 正在舉行 <a
+ href="http://www.freebsdfoundation.org/donate/">秋季募捐</a>。
+ 本次募捐將在很大程度上影響明年基金會的預算。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>14</name>
+ <event>
+ <title>FreeBSD.org 系統搬移推遲</title>
+
+ <p>計劃於 11 月 13 日 (周一) 進行的 FreeBSD.org 系統搬移工作因故推遲。
+ 目前的最新計劃是於美國太平洋時間 11 月 17 日 (周五) 進行此項工作。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>12</name>
+ <event>
+ <title>FreeBSD/sun4v 安裝 / Live CD 發佈了</title>
+
+ <p>在 Sun 的 UltraSparc-T1 架構上的 FreeBSD 移植工作目前已經取得了階段性的進展,
+ 我們制作了一張包含現場檔案系統的安裝 ISO。 更多細節請參見
+ <a href="http://www.FreeBSD.org/platforms/sun4v.html">FreeBSD/sun4v 計劃專頁</a>。</p>
+ </event>
+
+ <event>
+ <p>新增 committer:<a href="mailto:koitsu@FreeBSD.org">Jeremy Chadwick</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>7</name>
+ <event>
+ <p>新增 committer:<a href="mailto:farrokhi@FreeBSD.org">Babak Farrokhi</a>
+ (ports)</p>
+ </event>
+
+ <event>
+ <p>新增 committer:<a href="mailto:laszlof@FreeBSD.org">Frank J. Laszlo</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>5</name>
+ <event>
+ <title>FreeBSD.org 系統遷移</title>
+
+ <p>用於提供 FreeBSD Project 郵件、web、CVS 等的 FreeBSD.org 伺服器,
+ 即將遷移到新的數據中心。 我們計劃在 11 月 13 日周一 (美國太平洋標準時間)
+ 進行本次遷移。</p>
+
+ <p>本次搬移的準備過程可能導致 FreeBSD.org 在最終完成遷移之前出現短暫的服務停止。
+ 在搬移的當天,只有靜態的部分 (例如,純 HTML 頁面,而不包括 CGI) 的 <a
+ href="http://www.FreeBSD.org/">http://www.FreeBSD.org/</a>
+ 會提供服務。</p>
+ </event>
+ </day>
+ </month>
+
+ <month>
+ <name>10</name>
+
+ <day>
+ <name>31</name>
+ <event>
+ <title>FreeBSD 6.2-BETA3 發佈了</title>
+
+ <p>FreeBSD 6.2 的第三個 beta 版本現已 <a
+ href="http://lists.freebsd.org/pipermail/freebsd-stable/2006-November/030277.html">發佈</a>。
+ 用於 Tier-1 平台的 ISO 映像檔案,已可以透過眾多的
+ <a href="http://www.FreeBSD.org/doc/zh_TW.UTF-8/books/handbook/mirrors-ftp.html">
+ FreeBSD 鏡像站點</a> 獲得。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>25</name>
+ <event>
+ <title>Summer of Code 計劃結項了</title>
+
+ <p>我們非常高興全部 14 位學生都成功地完成了他們的 FreeBSD <a
+ href="&base;/projects/summerofcode-2006.html">Summer of
+ Code</a> 計劃。 在此祝賀參與計劃的導師和學生,並感謝 <a
+ href="http://www.google.com/bsd">Google</a> 運營此項活動,
+ 並為其提供資金贊助。</p>
+
+ </event>
+ </day>
+
+ <day>
+ <name>19</name>
+ <event>
+ <title>2006 年第三季度開發進度報告</title>
+
+ <p>2006 年第三季度開發進度報告 <a
+ href="&base;/news/status/report-june-2006-oct-2006.html">現已發表</a>,其中介紹了 49 項內容。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>14</name>
+ <event>
+ <title>用於 FreeBSD 的 GNOME 2.16.1 發佈了</title>
+
+ <p>GNOME 2.16.1 已經發佈,並已合併到了 FreeBSD
+ ports tree。 請訪問
+ <a href="&enbase;/gnome/index.html">FreeBSD GNOME 主頁</a>
+ 以查看正式的公告,以及重要的
+ <a href="&base;/gnome/docs/faq216.html">升級指南</a>。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>8</name>
+ <event>
+ <p>新增 committer:<a
+ href="mailto:syrinx@FreeBSD.org">Shteryana Shopova</a>
+ (src)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>5</name>
+ <event>
+ <title>FreeBSD 6.2-BETA2 發佈了</title>
+
+ <p>FreeBSD 6.2 的第二個 beta 版本現已 <a
+ href="http://lists.freebsd.org/pipermail/freebsd-stable/2006-October/029171.html">發佈</a>。
+ 用於 Tier-1 平台的 ISO 映像檔案,已可以透過眾多的
+ <a href="http://www.FreeBSD.org/doc/zh_TW.UTF-8/books/handbook/mirrors-ftp.html">
+ FreeBSD 鏡像站點</a> 獲得。</p>
+ </event>
+ </day>
+ </month>
+ <month>
+ <name>9</name>
+
+ <day>
+ <name>28</name>
+ <event>
+ <p>新增 committer:<a href="mailto:xride@FreeBSD.org">Soeren Straarup</a> (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>21</name>
+ <event>
+ <p>新增 committer:<a href="mailto:jfv@FreeBSD.org">Jack F. Vogel</a>
+ (src)</p>
+ </event>
+
+ <event>
+ <title>FreeBSD 6.2-BETA1 發佈了</title>
+
+ <p>FreeBSD 6.2 的第一個 beta 版本現已 <a
+ href="http://lists.freebsd.org/pipermail/freebsd-stable/2006-September/028584.html">發佈</a>。
+ 本次 BETA1 的 ISO 映像檔案,已可以透過眾多的
+ <a href="http://www.FreeBSD.org/doc/zh_TW.UTF-8/books/handbook/mirrors-ftp.html">
+ FreeBSD 鏡像站點</a> 獲得。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>20</name>
+ <event>
+ <p>新增 committer:<a href="mailto:chinsan@FreeBSD.org">黃青山</a>
+ (doc)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>18</name>
+ <event>
+ <p>新增 committer:<a href="mailto:stas@FreeBSD.org">Stanislav Sedov</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>12</name>
+ <event>
+ <p>新增 committer:<a href="mailto:alexbl@FreeBSD.org">Alexander Botero-Lowry</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>1</name>
+ <event>
+ <p>新增 committer:<a href="mailto:rrs@FreeBSD.org">Randall R. Stewart</a>
+ (src)</p>
+ </event>
+ </day>
+ </month>
+ <month>
+ <name>8</name>
+
+ <day>
+ <name>20</name>
+ <event>
+ <p>新增 committer:<a href="mailto:danger@FreeBSD.org">Daniel
+ Ger&zcaron;o</a> (doc)</p>
+ </event>
+ </day>
+ </month>
+
+ <month>
+ <name>7</name>
+ <day>
+ <name>26</name>
+ <event>
+ <title>選舉產生了新一屆 FreeBSD Core Team</title>
+
+ <p>FreeBSD Core Team 競選已經結束。
+ 選舉結果已在 <a
+ href="http://docs.freebsd.org/cgi/getmsg.cgi?fetch=0+0+archive/2006/freebsd-announce/20060730.freebsd-announce">這裡</a> 公布。
+ </p>
+ </event>
+ </day>
+
+ <day>
+ <name>19</name>
+ <event>
+ <title>對 FreeBSD 開發人員 Greg Lehey 的 Podcast 訪談</title>
+
+ <p>在最新一期 <a href="http://bsdtalk.blogspot.com/">bsdtalk</a>
+ podcast 中,Will Backman 對 FreeBSD 開發人員 Greg Lehey
+ 就他在 FreeBSD 和 MySQL 上的工作進行了採訪。 這期 podcast 可以透過
+ <a
+ href="http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk055.mp3">
+ http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk055.mp3</a> 收聽。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>18</name>
+ <event>
+ <p>新增 committer:<a href="mailto:acm@FreeBSD.org">Jose Alonso Cardenas Marquez</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>13</name>
+ <event>
+ <title>對 FreeBSD 開發人員 Pawel Jakub Dawidek 的 Podcast 訪談</title>
+
+ <p>在最新一期 <a href="http://bsdtalk.blogspot.com/">bsdtalk</a>
+ podcast 中,Will Backman 對 FreeBSD 開發人員 Pawel Jakub Dawidek
+ 就他在 FreeBSD 上的工作,特別是 GEOM 日志計劃進行了採訪。 這期
+ podcast 可以透過 <a
+ href="http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk052.mp3">
+ http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk052.mp3</a> 收聽。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>12</name>
+ <event>
+ <title>2006 年第二季度開發進度報告發佈了</title>
+
+ <p>2006 年第二季度的開發進度報告 <a
+ href="&enbase;/news/status/report-apr-2006-jun-2006.html">現已發佈</a>,
+ 其中介紹了 39 項內容。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>5</name>
+ <event>
+ <title>FreeBSD 基金會發佈了用於 FreeBSD 5.5、6.1 以及 AMD64 平台的預編譯 Java</title>
+
+ <p>FreeBSD 基金會現已開始提供基於 Sun Microsystems UPDATE7 的專用於 FreeBSD
+ 的預編譯版本 Java JDK 和 JRE 1.5。 欲了解更多詳情,
+ 請參見 FreeBSD 基金會 <a
+ href="http://www.freebsdfoundation.org/press/20060705-PRrelease.shtml">
+ 發佈的新聞</a>。</p>
+ </event>
+ </day>
+ </month>
+
+ <month>
+ <name>6</name>
+
+ <day>
+ <name>24</name>
+ <event>
+ <p>
+ 新增 committer:<a href="mailto:rafan@FreeBSD.org">範榮恩</a>
+ (ports)
+ </p>
+ </event>
+ </day>
+
+ <day>
+ <name>21</name>
+ <event>
+ <p>
+ 新增 committer:<a href="mailto:bsam@FreeBSD.org">Boris Samorodov</a>
+ (ports)
+ </p>
+ </event>
+ </day>
+
+ <day>
+ <name>19</name>
+ <event>
+ <p>新增 committer:<a
+ href="mailto:shaun@FreeBSD.org">Shaun Amott</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>5</name>
+ <event>
+ <p>新增 committer:<a
+ href="mailto:kib@FreeBSD.org">Konstantin Belousov</a>
+ (src)</p>
+ </event>
+
+ <event>
+ <p>新增 committer:<a
+ href="mailto:miwi@FreeBSD.org">Martin Wilke</a>
+ (ports)</p>
+ </event>
+ </day>
+ </month>
+
+ <month>
+ <name>5</name>
+ <day>
+ <name>30</name>
+ <event>
+ <title>在校生計劃資助計劃公告</title>
+
+ <p>The FreeBSD Project 收到了超過 120 份 <a
+ href="http://code.google.com/summerofcode.html">Google's
+ Summer of Code</a> 計劃計劃申請,並從中選出了 14 個進行資助。
+ 非常遺憾的是,第一流的申請遠遠超出了學生的名額。 不過,
+ 我們鼓勵在校生繼續與我們一起工作。 The FreeBSD Project
+ 一直都希望能夠透過我們的郵件列表和開發論壇,
+ 幫助帶領學生了解更多關於操作系統開發。 為開源軟體計劃提供幫助,
+ 是 Computer Scienc 教育中的重要一環,
+ 同時也是軟體開發職業生涯的一項絕佳的準備條件。</p>
+
+ <p>選出的完整的學生和計劃名單可以在 <a
+href="http://www.freebsd.org/projects/summerofcode.html">這裡</a> 找到。 <a
+href="http://wikitest.freebsd.org/moin.cgi/SummerOfCode2006">Summer of Code wiki</a> 也提供了更多的細節資訊。</p>
+ </event>
+
+ <event>
+ <title>新增 committer:<a
+ href="mailto:piso@FreeBSD.org">Paolo Pisati</a>
+ (src)。 前 SoC2005 計劃成員。</title>
+
+ <p><a href="mailto:piso@FreeBSD.org">Paolo Pisati</a>,
+ 去年 Summer of Code 計劃的獲選學生,仍在繼續參加 FreeBSD Project
+ 並成為了正式的 src/ committer。</p>
+
+ </event>
+ </day>
+
+ <day>
+ <name>26</name>
+ <event>
+ <title>對 FreeBSD 開發者 Poul-Henning Kamp 的 Podcast 訪談</title>
+
+ <p>在最新的 <a href="http://bsdtalk.blogspot.com/">bsdtalk</a>
+ podcast 中,Will Backman 就 FreeBSD 上的開發活動採訪了 FreeBSD
+ 開發者 Poul-Henning Kamp。 這期 podcast 可以透過 <a
+ href="http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk048.mp3">
+ http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk048.mp3</a> 收聽。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>25</name>
+ <event>
+ <title>FreeBSD 5.5-RELEASE 發佈了</title>
+
+ <p><a href="&enbase;/releases/5.5R/announce.html">FreeBSD
+ 5.5-RELEASE</a> 發佈了。 請查看 <a
+ href="&enbase;/releases/5.5R/errata.html">發行版勘誤</a>
+ 以了解最新發生的新聞和已知問題。 <a
+ href="&enbase;/releases/index.html">發行版資訊</a>
+ 網頁提供了關於 FreeBSD 發行版的進一步詳情。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>21</name>
+ <event>
+ <title>FreeBSD 能夠在 Sun T1 處理器上獨立運行了</title>
+
+ <p>FreeBSD 目前已經能夠在 <a
+ href="http://www.sun.com/processors/UltraSPARC-T1/">採用 CoolThreads
+ 技術的 Sun T1 處理器</a> 的電腦上完整地完成
+ "make buildworld" 命令,從而達到了獨立運行的目標。
+ 這些原始碼目前存放於 <a
+ href="http://perforce.freebsd.org/branchView.cgi?BRANCH=kmacy%5fsun4v">
+ FreeBSD 的 Perforce 版本控制系統</a> 中,
+ 並將在對 logical domaining 的支持功能完成後,會合併回官方的 CVS repository。
+ 開機過程的 log 檔可以在 <a
+ href="http://www.fsmware.com/sun4v/dmesg_latest.txt">這裡</a> 找到。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>17</name>
+ <event>
+ <p>新增 committer:<a
+ href="mailto:twinterg@FreeBSD.org">Thomas Wintergerst</a>
+ (src)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>16</name>
+
+ <event>
+ <title>FreeBSD 5.5-RC1 發佈了</title>
+
+ <p>FreeBSD 5.5 的首個,同時也有望成為最終的發行候選版本 <a
+ href="http://lists.freebsd.org/pipermail/freebsd-stable/2006-May/025589.html">發佈了</a>。
+ RC1 ISO 映像檔案,已經可以從眾多
+ <a href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/mirrors-ftp.html">
+ FreeBSD 鏡像站點</a> 獲得。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>8</name>
+ <event>
+ <title>FreeBSD 6.1-RELEASE 發佈了</title>
+
+ <p><a href="&enbase;/releases/6.1R/announce.html">FreeBSD
+ 6.1-RELEASE</a> 正式發佈了。 在安裝前,請查看 <a
+ href="&enbase;/releases/6.1R/errata.html">發行版勘誤</a>
+ 以了解關於 6.1 最新的消息和已知問題。 在 <a
+ href="&enbase;/releases/index.html">發行版資訊</a>
+ 頁面上提供了關於 FreeBSD 發行版的進一步資訊。</p>
+ </event>
+
+ <event>
+ <title>Summer of Code 申請最後期限延長 1 天</title>
+
+ <p>Google 的 <a
+ href="http://code.google.com/summerofcode.html">Summer
+ of Code 2006</a> 活動的申請最後期限已延長至太平洋時間周二
+ 11:00AM PDT。 關於 FreeBSD 專屬計劃以及候選導師的資訊可以在 <a
+ href="&enbase;/projects/summerofcode.html">here</a> 找到。</p>
+ </event>
+
+ </day>
+
+ <day>
+ <name>7</name>
+ <event>
+ <p>新增 committer:<a
+ href="mailto:itetcu@FreeBSD.org">Ion-Mihai Tetcu</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>6</name>
+ <event>
+ <p>新增 committer:<a
+ href="mailto:stefan@FreeBSD.org">Stefan Walter</a>
+ (ports)</p>
+ </event>
+
+ <event>
+ <p>新增 committer:<a
+ href="mailto:sat@FreeBSD.org">Andrew Pantyukhin</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>2</name>
+
+ <event>
+ <title>FreeBSD 6.1-RC2 發佈了</title>
+
+ <p>FreeBSD 6.1 的第二個,也應該是最後一個候選發行版 <a
+ href="http://lists.freebsd.org/pipermail/freebsd-hackers/2006-May/016386.html">發佈了</a>。
+ RC2 ISO 映像檔案,可以從眾多
+ <a href="http://www.FreeBSD.org/doc/zh_TW.UTF-8/books/handbook/mirrors-ftp.html">
+ FreeBSD 鏡像站點</a> 獲得。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>1</name>
+ <event>
+ <title>開始接受 Summer of Code 計劃申請</title>
+
+ <p>FreeBSD Project 現在開始接受先前宣布的 Google <a
+ href="http://code.google.com/summerofcode.html">Summer
+ of Code 2006</a> 計劃的計劃申請。
+ 這個計劃將為在暑期為開源計劃提供幫助的學生提供資助。
+ FreeBSD 專有的計劃以及潛在的導師名單,可以在 <a
+ href="&enbase;/projects/summerofcode.html">這裡</a> 找到。</p>
+
+ <p>如果找到了合適的計劃以及導師,則有興趣參與計劃的學生應完成申請,
+ 並提交給 Google。 這些申請的最後期限是太平洋日光時間 2006 年
+ 5 月 8 日 17:00 (UTC 時間 2006 年 5 月 9 日午夜)。 獲贗的候選人,
+ 將在五月下旬宣布。 請參見 <a
+ href="http://code.google.com/soc/studentfaq.html">Student
+ FAQ</a> 以了解進一步的資訊。</p>
+ </event>
+
+ <event>
+ <title>新增了用於 HighPoint RocketRAID 232x SATA RAID 控制器的驅動</title>
+
+ <p>在 FreeBSD-CURRENT 以及 RELENG_6 和 RELENG_6_1 分支中,
+ 新增了 HighPoint 的 RocketRAID 232x 系列 SATA RAID 控制器驅動 rr232x(4)。
+ 這一驅動將包含在將發佈的 FreeBSD 6.1-RELEASE 版本中。</p>
+ </event>
+
+ <event>
+ <p>commit 權限提升:<a
+ href="mailto:delphij@FreeBSD.org">李鑫</a>
+ (src, doc, ports)</p>
+ </event>
+ </day>
+ </month>
+
+ <month>
+ <name>4</name>
+
+ <day>
+ <name>30</name>
+ <event>
+ <p>新增 committer:<a
+ href="mailto:lbr@FreeBSD.org">Lars Balker Rasmussen</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>15</name>
+ <event>
+ <title>對 FreeBSD 開發者 Joe Marcus Clarke 的 Podcast 訪談</title>
+
+ <p>在最新的 <a href="http://bsdtalk.blogspot.com/">bsdtalk</a>
+ podcast中,Will Backman 訪問了 FreeBSD 開發者 Joe Marcus Clarke,
+ 討論了與 FreeBSD 上的 GNOME 桌面環境有關的話題。 這期 podcast 可以從 <a
+ href="http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk032.mp3">
+ http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk032.mp3</a> 下載。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>14</name>
+ <event>
+ <title>2006 年一至三月進度報告</title>
+
+ <p>現在可以訪問包含 29 個計劃的 2006 年一至三月 <a
+ href="&enbase;/news/status/report-jan-2006-mar-2006.html">進度報告</a>
+ 了。</p>
+ </event>
+
+ <event>
+ <title>Summer of Code</title>
+
+ <p>FreeBSD Project 愉快地參加了 Google 的
+ <a href="http://code.google.com/summerofcode.html">Summer
+ of Code 2006</a> 計劃。 這一計劃將為在校生參與開源計劃提供資助。
+ FreeBSD 專屬的計劃和導師候選人可以在 <a
+ href="&enbase;/projects/summerofcode.html">這裡</a> 訪問。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>13</name>
+ <event>
+ <title>FreeBSD 6.1-RC1 發佈了</title>
+
+ <p>FreeBSD 6.1 的第一個候選發行版 <a
+ href="http://lists.freebsd.org/pipermail/freebsd-hackers/2006-April/016104.html">發佈了</a>。
+ RC1 的 ISO 映像檔案可以從多數
+ <a href="http://www.FreeBSD.org/doc/zh_TW.UTF-8/books/handbook/mirrors-ftp.html">
+ FreeBSD 鏡像站點</a> 獲得。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>11</name>
+ <event>
+ <title>新增了用於 Broadcom NetXtreme II 千兆以太網芯片的驅動</title>
+
+ <p>在 FreeBSD-CURRENT 中新增了 bce(4),一個用於
+ Broadcom NetXtreme II 系列千兆以太網控制芯片的驅動。
+ 這一驅動將很快合併至 FreeBSD 6-STABLE 分支。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>6</name>
+ <event>
+ <title>FreeBSD 基金會宣布用於 FreeBSD 的預編譯版本 Java JDK 和 JRE 1.5</title>
+
+ <p>FreeBSD 基金會現在開始提供用於 FreeBSD 的預編譯版本 Java JDK 和 JRE
+ 1.5。 更多細節,請參見
+ FreeBSD 基金會的 <a
+ href="http://www.freebsdfoundation.org/press/20060405-PRrelease.shtml">
+ 新聞稿</a>。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>4</name>
+ <event>
+ <p>新增 committer:<a
+ href="mailto:alepulver@FreeBSD.org">Alejandro Pulver</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>2</name>
+ <event>
+ <p>新增 committer:<a
+ href="mailto:johans@FreeBSD.org">Johan van Selst</a>
+ (ports)</p>
+ </event>
+ </day>
+ </month>
+
+ <month>
+ <name>3</name>
+
+ <day>
+ <name>31</name>
+ <event>
+ <p>新增 committer:<a
+ href="mailto:jmelo@FreeBSD.org">Jean Milanez Melo</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>15</name>
+ <event>
+ <title>FreeBSD 5.5-BETA4 和 6.1-BETA4 發佈了</title>
+
+ <p>FreeBSD 5.5 和 FreeBSD 6.1 的第四個 beta 版本 <a
+ href="http://lists.freebsd.org/pipermail/freebsd-hackers/2006-March/015730.html">發佈了</a>。
+ 這些 BETA4 ISO 映像檔案,可以在多數
+ <a href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/mirrors-ftp.html">
+ FreeBSD 鏡像站點</a> 上獲得。</p>
+ </event>
+ </day>
+ </month>
+
+ <month>
+ <name>2</name>
+
+ <day>
+ <name>22</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:wkoszek@FreeBSD.org">Wojciech A. Koszek</a>
+ (src)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>20</name>
+ <event>
+ <title>FreeBSD 5.5-BETA2 和 6.1-BETA2 發佈了</title>
+
+ <p>FreeBSD 5.5 和 FreeBSD 6.1 的第二個 BETA 版本現在 <a
+ href="http://lists.freebsd.org/pipermail/freebsd-hackers/2006-February/015499.html">可用了</a>。
+ 對應的 BETA2 ISO 鏡像檔案可以從眾多
+ <a href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/mirrors-ftp.html">
+ FreeBSD 鏡像站點</a> 之一下載。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>18</name>
+ <event>
+ <title>對 FreeBSD 開發者 Kirk McKusick 的 Podcast 訪談</title>
+
+ <p>在最新的 <a href="http://bsdtalk.blogspot.com/">bsdtalk</a>
+ podcast 中,Will Backman 訪問了 FreeBSD 開發者 Marshall Kirk
+ McKusick。 這期 podcast 可以從 <a
+ href="http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk018.mp3">
+ http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk018.mp3</a>
+ 下載。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>17</name>
+ <event>
+ <title>對 FreeBSD release engineer Scott Long 的 Podcast 訪談</title>
+
+ <p>在 <a href="http://bsdtalk.blogspot.com/">bsdtalk</a>
+ 系列 podcast 的第 17 期中,Will Backman 訪問了 FreeBSD release engineer 之一的
+ Scott Long,並就正在開發的 FreeBSD 5.5 和 6.1 版本,
+ 以及一些相關話題進行了討論。 這期 podcast 可以從 <a
+ href="http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk017.mp3">
+ http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk017.mp3</a>
+ 下載。
+ </p>
+ </event>
+ </day>
+
+ <day>
+ <name>13</name>
+ <event>
+ <p>新增 committer:<a
+ href="mailto:cel@FreeBSD.org">Chuck Lever</a>
+ (src)</p>
+ </event>
+
+ <event>
+ <title>即將進行的晚間 FreeBSD kernel code 導讀課程</title>
+
+ <p>在 2006 年春季將舉辦 “FreeBSD Kernel Internals: An Intensive Code
+ Walkthrough” 課程。 這一課程將在具有歷史意義的 Hillside Club
+ 進行,其地址是 2286 Cedar Strett, Berkeley, CA 94709,
+ 從伯克利校園出發向北三個街區即可到達。 課程從 2 月 22 日周三開始,
+ 到 6 月 13 日結束,每周一次,從 6:30PM 到
+ 9:45PM。 您可以從 <a
+ href="http://www.mckusick.com/courses/adveveclass.html">這裡</a>
+ 了解參加這一培訓班的詳情。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>9</name>
+ <event>
+ <title>FreeBSD 5.5-BETA1 和 6.1-BETA1 發佈了</title>
+
+ <p>FreeBSD 5.5 和 FreeBSD 6.1 的首個 BETA 版本現在 <a
+ href="http://lists.freebsd.org/pipermail/freebsd-hackers/2006-February/015418.html">可用</a> 了。
+ 對應的 BETA1 ISO 鏡像可以從許多
+ <a href="http://www.FreeBSD.org/doc/zh_TW.UTF-8/books/handbook/mirrors-ftp.html">
+ FreeBSD 鏡像站點</a> 之一下載。</p>
+ </event>
+ </day>
+ </month>
+
+ <month>
+ <name>1</name>
+
+ <day>
+ <name>31</name>
+ <event>
+ <p>commit 權限提升:<a
+ href="mailto:cperciva@FreeBSD.org">Colin Percival</a>
+ (src, ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>26</name>
+ <event>
+ <title>2005 年十至十二月進度報告</title>
+
+ <p>現在可以訪問包含 26 個計劃的 2005 年十至十二月 <a
+ href="&enbase;/news/status/report-oct-2005-dec-2005.html">進度報告</a>
+ 了。</p>
+ </event>
+ </day>
+ <day>
+ <name>19</name>
+ <event>
+ <p>新增 committer:<a
+ href="mailto:matteo@FreeBSD.org">Matteo Riondato</a>
+ (src)</p>
+ </event>
+
+ <event>
+ <p>新增 committer:<a
+ href="mailto:vd@FreeBSD.org">Vasil Dimov</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>16</name>
+ <event>
+ <p>新增 committer:<a
+ href="mailto:rink@FreeBSD.org">Rink Springer</a>
+ (src)</p>
+ </event>
+ </day>
+ </month>
+ </year>
+
+ <year>
+ <name>2005</name>
+
+ <month>
+ <name>12</name>
+
+ <day>
+ <name>23</name>
+ <event>
+ <title>FreeBSD 基金會發佈十二月通訊</title>
+
+ <p>FreeBSD 基金會發佈了其 <a
+ href="http://www.freebsdfoundation.org/press/2005Dec-newsletter.shtml">十二月通訊</a>,
+ 對本年度基金會的活動進行了總結。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>21</name>
+ <event>
+ <p>歸來的 committer: <a
+ href="mailto:jasone@FreeBSD.org">Jason Evans</a>
+ (src)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>17</name>
+ <event>
+ <title>2006 年發行版工作計劃</title>
+
+ <p>Scott Long 代表交付工程組宣布了 2006 年度的發行版工作計劃。
+ 請參見 <a
+ href="http://lists.freebsd.org/pipermail/freebsd-current/2005-December/058964.html">
+ 公告</a> 以了解進一步的資訊。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>14</name>
+ <event>
+ <title>在 FreeBSD-CURRENT 上加入了 XFS 的只讀支持</title>
+
+ <p>在 FreeBSD 上加入了 XFS 文件系統的只讀支持。 這些原始碼派生自 SGI
+ 所發佈的 source code ,它受限於 GPL 授權。 您可以在 <a
+ href="http://lists.freebsd.org/pipermail/freebsd-current/2005-December/058907.html">
+ 公告</a> 中找到更多資訊。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>12</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:anray@FreeBSD.org">Andrey Slusar</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>7</name>
+ <event>
+ <title>新增網站欄目: 針對志願者的計劃和想法</title>
+
+ <p>FreeBSD project 有數百名遍布世界各地的活躍的開發人員,
+ 他們分別在 source code 樹上的不同部分進行工作。 但是,
+ 還有許多新的有趣的計劃和想法需要加以研究和評估,
+ 在這些地方,FreeBSD project 需要來自志願者的英雄般的努力。
+ 在 FreeBSD 網站上新增了一個欄目,其中列出了這樣的計劃。
+ 盡管這個列表還有待進一步的補充,但它是希望在未來成為
+ committer 的志願者的一個很好的起點。 您可以 <a
+ href="&enbase;/projects/ideas/">在這裡查看計劃列表</a>。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>1</name>
+
+ <event>
+ <title>惠普公司向 FreeBSD 基金會捐獻 blade 式伺服器 cluster</title>
+
+ <p>FreeBSD 基金會收到了來自惠普公司的一項 blade 系統捐贈,
+ 它將用作 third-party 軟體的構建工作。 這個包含 20 個節點的 HP BladeSystem
+ cluster 將 i386 預編譯 package 的構建過程提高了三倍。 您可以 <a
+ href="http://www.freebsdfoundation.org/press/20051201-PRreleaseHP.pdf">
+ 在這裡看到更多的細節</a>。</p>
+ </event>
+
+ <event>
+ <p>新增 committer: <a
+ href="mailto:tdb@FreeBSD.org">Tim Bishop</a>
+ (ports)</p>
+ </event>
+ </day>
+ </month>
+
+ <month>
+ <name>11</name>
+
+ <day>
+ <name>29</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:oleg@FreeBSD.org">Oleg Bulyzhin</a>
+ (src)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>27</name>
+
+ <event>
+ <title>新文章: 用 FreeBSD 來做產品</title>
+
+ <p>一篇新的文章,<a
+ href="&enbase;/doc/en_US.ISO8859-1/articles/building-products/">
+ 用 FreeBSD 來做產品</a> 介紹了在開發產品時與 FreeBSD
+ project 合作的好處。 成功的軟體產品中的技術投入的一大部分,
+ 是來自於如何讓其符合不斷變化的市場節奏。 透過使用成熟的、
+ 採用寬鬆授權的原始碼,例如 FreeBSD project 的原始碼作為基礎,
+ 並遵循這篇文章中所介紹的最佳實踐,
+ 開發組織就能夠從因此而降低的研發投入和更好的市場佔有率中受益。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>18</name>
+
+ <event>
+ <title>2005 年七月至十月進度報告</title>
+
+ <p>2005 年七月至十月的進度報告 <a
+ href="&enbase;/news/status/report-july-2005-oct-2005.html">現在發佈了</a>,
+ 其中包括了 37 項內容。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>5</name>
+
+ <event>
+ <title>FreeBSD 版本的 KDE 3.4.3 發佈了</title>
+
+ <p>KDE 3.4.3 已經合併到了 ports tree 中。
+ 要了解自 KDE 3.4.2 版本以來的改進,
+ 請參見 KDE 3.4.2 <a
+ href="http://www.kde.org/announcements/changelogs/changelog3_4_2to3_4_3.php">
+ 修改日志</a>。 要了解進一步資訊,請參見 KDE 3.4.3
+ <a href="http://www.kde.org/info/3.4.3.php">資訊頁</a>。
+ 要了解關於在 FreeBSD 上運行 KDE 的日常資訊,
+ 請參閱 FreeBSD 上的 KDE <a href="http://freebsd.kde.org">計劃主頁</a>。</p>
+ </event>
+
+ <event>
+ <title>FreeBSD 版本的 GNOME 2.12.1 發佈了</title>
+
+ <p>伴隨著 6.0 的發佈,GNOME 2.12.1 也已經進入 ports tree 。
+ 請務必閱讀 <a href="&enbase;/gnome/docs/faq212.html">升級 FAQ</a>
+ 以了解全部修改、升級指導,以及已知問題。
+ 您還可以在 <a href="&enbase;/gnome/index.html">FreeBSD GNOME
+ 主頁</a> 上找到更多資料。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>4</name>
+
+ <event>
+ <title>FreeBSD 6.0-RELEASE 發佈了</title>
+
+ <p><a href="&enbase;/releases/6.0R/announce.html">FreeBSD
+ 6.0-RELEASE</a> 發佈了。 請在安裝前參見 <a
+ href="&enbase;/releases/6.0R/errata.html">發行版勘誤</a>
+ 以了解關於 6.0 的最新新聞和問題。 在 <a
+ href="&enbase;/releases/index.html">發行版資訊</a>
+ 網頁中提供了關於 FreeBSD 發行版的進一步資訊。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>1</name>
+ <event>
+ <title>FreeBSD 標志設計大賽結果</title>
+
+ <p>我們非常愉快地宣布我們的標志設計大賽的勝者: Anton K. Gural。
+ 要了解關於比賽的進一步詳情,請參見 <a
+ href="http://logo-contest.freebsd.org/result/">比賽結果網頁</a>。
+ 透過新的標志,我們將能夠更好的在網絡上展示我們的身份,
+ 同時也為市場推廣鋪平了道路。 我們將很快發佈一個指導性頁面,
+ 其中將給出使用規則,以及可用的 (矢量格式) 標志數據,
+ 以與 FreeBSD 同樣的 BSD 授權發佈。</p>
+ </event>
+ </day>
+ </month>
+
+ <month>
+ <name>10</name>
+
+ <day>
+ <name>30</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:aaron@FreeBSD.org">Aaron Dalton</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>18</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:ariff@FreeBSD.org">Ariff Abdullah</a>
+ (src)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>11</name>
+ <event>
+ <title>FreeBSD 6.0-RC1 發佈了</title>
+
+ <p>FreeBSD 6.0 的第一個發行候選版本 <a
+ href="http://lists.freebsd.org/pipermail/freebsd-stable/2005-October/018790.html">發佈了</a>。
+ RC1 ISO 鏡像,以及透過 FTP 的安裝支持可以在絕大多數的
+ <a href="&enbase;/doc/zh_TW.UTF-8/books/handbook/mirrors-ftp.html">
+ FreeBSD 鏡像站點</a> 找到。</p>
+
+ </event>
+ </day>
+
+ <day>
+ <name>6</name>
+ <event>
+ <title>新增成功案例: Argentina.com</title>
+
+ <p>新增了成功案例,<a
+ href="&enbase;/doc/en_US.ISO8859-1/articles/casestudy-argentina.com/">
+ argentina.com</a>,介紹了在拉丁美洲的一家 ISP
+ 是如何透過使用 FreeBSD 在競爭激烈的市場上取得成功的。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>5</name>
+ <event>
+ <title>新網站發佈了</title>
+
+ <p>新網站發佈了。 我們希望新的設計能夠使瀏覽變得更容易。
+ 這一版本的網站是 Emily Boyd 在 <a
+ href="http://code.google.com/summerofcode.html">Google 的
+ Summer of Code</a> 計劃中完成的。 出於比較的目的,
+ 舊網站的備份留在了
+ <a href="http://www.FreeBSD.org/old">這裡</a>。
+ 請將您關於新站點的看法發到 freebsd-www@FreeBSD.org 郵件列表。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>3</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:bvs@FreeBSD.org">Vitaly Bogdanov</a>
+ (doc)</p>
+ </event>
+
+ <event>
+ <p>新增 committer: <a
+ href="mailto:ehaupt@FreeBSD.org">Emanuel Haupt</a>
+ (ports)</p>
+ </event>
+
+ <event>
+ <p>新增 committer: <a
+ href="mailto:az@FreeBSD.org">Andrej Zverev</a>
+ (ports)</p>
+ </event>
+ </day>
+ </month>
+
+ <month>
+ <name>9</name>
+
+ <day>
+ <name>18</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:tmclaugh@FreeBSD.org">Tom McLaughlin</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>15</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:mnag@FreeBSD.org">Marcus Alves Grando</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>7</name>
+ <event>
+ <title>FreeBSD 6.0-BETA4 發佈了</title>
+ <p><a href="http://lists.freebsd.org/pipermail/freebsd-stable/2005-September/018186.html">6.0-BETA4 發佈公告</a>。</p>
+ </event>
+ </day>
+ </month>
+
+ <month>
+ <name>8</name>
+
+ <day>
+ <name>29</name>
+ <event>
+ <title>FreeBSD 6.0-BETA3 發佈了</title>
+ <p><a href="http://lists.freebsd.org/pipermail/freebsd-stable/2005-August/018061.html">6.0-BETA3 發佈公告</a>。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>22</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:garys@FreeBSD.org">Gary W. Swearingen</a>
+ (doc)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>21</name>
+
+ <event>
+ <title>新任安全官: Colin Percival</title>
+
+ <p>在擔任安全官 43 個月之後,Jacques Vidrine
+ 將這一職務交給了 Colin Percival。 Colin 的主要作品包括
+ FreeBSD Update、portsnap、bsdiff 工具,
+ 以及最近發表的關於在 hyperthreaded 處理器系統上敏感資訊洩露問題的論文
+ "Cache missing for fun and profit"。 您可以在 <a
+ href="http://lists.freebsd.org/pipermail/freebsd-security/2005-August/003115.html">
+ 這裡</a> 找到進一步的資訊。
+ </p>
+ </event>
+ </day>
+
+ <day>
+ <name>17</name>
+
+ <event>
+ <title>增加了 FreeBSD 活動的 iCalendar Feed</title>
+
+ <p>使用能夠支持 iCalendar 格式的日程軟體的用戶,現在可以訂閱
+ <a href="&enbase;/events/events.ics">FreeBSD 近期活動歷</a> 了。</p>
+ </event>
+
+ <event>
+ <title>新增文章: 如何選擇 FreeBSD 版本</title>
+
+ <p>新增的一篇文章,<a
+ href="http://docs.freebsd.org/doc/9.0-RELEASE/usr/share/doc/freebsd/en_US.ISO8859-1/articles/version-guide/index.html">
+ 選擇適合您的 FreeBSD 版本</a>,
+ 討論了選擇最適合具體應用的 FreeBSD 版本時所需要考慮的問題。
+ 其中包括發行版與分支,以及 FreeBSD-STABLE 和
+ FreeBSD-CURRENT 等一些概念的區別。 此外,它還介紹了 FreeBSD
+ 的開發過程如何達到適應頻繁發佈主要版本的目標,
+ 如何引入較小的功能集,並比較了過去的發行版所採用的方法。
+ 這篇文章的目標讀者是正準備安裝 FreeBSD 的新用戶,
+ 以及準備未來進行升級的現有用戶。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>5</name>
+
+ <event>
+ <title>FreeBSD 6.0-BETA2 發佈了</title>
+
+ <p><a href="http://lists.freebsd.org/pipermail/freebsd-stable/2005-August/017586.html">6.0-BETA2 發佈公告</a>。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>1</name>
+
+ <event>
+ <title>新的 FreeBSD/Linux 白皮書</title>
+
+ <p>Dru Lavigne 剛剛發佈了 <a
+ href="&enbase;/doc/en_US.ISO8859-1/articles/linux-comparison/">FreeBSD:
+ Linux 的一種開源替代品</a>。 這篇白皮書的目的是,
+ 介紹 FreeBSD 所提供的功能和好處,並與 Linux
+ 進行適當的比較。 它為那些打算尋找 Linux
+ 的開源替代品的人提供了一個好的起點。</p>
+ </event>
+ </day>
+ </month>
+
+ <month>
+ <name>7</name>
+
+ <day>
+ <name>22</name>
+
+ <event>
+ <title>2005 年 三月至六月進度報告</title>
+
+ <p>2005 三月至六月的進度報告 <a
+ href="&enbase;/news/status/report-mar-2005-june-2005.html">現已發佈</a>,
+ 其中包括了 43 個計劃。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>20</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:vsevolod@FreeBSD.org">Vsevolod Stakhov</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>18</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:bruno@FreeBSD.org">Bruno Ducrot</a>
+ (src)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>16</name>
+
+ <event>
+ <title>宣布了受資助的在校生計劃</title>
+
+ <p>FreeBSD Project 收到了超過 350 個關於 <a
+ href="http://code.google.com/summerofcode.html">Google 的
+ Summer of Code</a> 計劃的申請,其中選出了 18 個進行資助。
+ 遺憾的是,能夠進行資助的數量不到申請數量的零頭。
+ 不過,我們鼓勵在校生與我們一同進行全年的工作。 FreeBSD
+ Project 一直希望,透過我們日常的社區郵件列表,
+ 以及開發論壇來幫助指導在校生了解更多的關於操作系統開發的過程。
+ 為開源軟體計劃提供幫助,是計算科學教育中非常有價值的一部分,
+ 也是個人軟體開發職業生涯的一項重要準備。</p>
+
+ <p>關於資助在校生計劃的更多資訊,可以從 <a
+ href="http://wikitest.freebsd.org/moin.cgi/SummerOfCode2005">FreeBSD
+ Summer of Code Wiki</a> 獲得。</p>
+
+ </event>
+ </day>
+
+ <day>
+ <name>15</name>
+
+ <event>
+ <title>FreeBSD 6.0-BETA1 發佈了</title>
+
+ <p><a href="http://lists.freebsd.org/pipermail/freebsd-stable/2005-July/016958.html">6.0-BETA1 發佈公告</a>.</p>
+ </event>
+ </day>
+
+ <day>
+ <name>11</name>
+
+ <event>
+ <title>6-STABLE 分支 (RELENG_6) 建立了</title>
+
+ <p>我們已經到達了 6.0-RELEASE 過程的下一個裡程碑。 RELENG_6
+ CVS 分支已經從 HEAD 上分離出來。 即將發佈的 6.0-RELEASE,
+ 以及所有後續的 6.x 版本,都將從這一分支上開發。
+ 更多詳情請參見:
+ <a href="&enbase;/releases/6.0R/schedule.html">6.0-RELEASE 計劃</a>、
+ <a href="http://lists.freebsd.org/pipermail/freebsd-stable/2005-July/016855.html">RELENG_6 公告</a>。</p>
+ </event>
+
+ <event>
+ <p>新增 committer: <a
+ href="mailto:garga@FreeBSD.org">Renato Botelho</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>6</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:jkim@FreeBSD.org">Jung-uk Kim</a>
+ (src)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>2</name>
+
+ <event>
+ <title>2005 年 7 月的快照版本發佈了</title>
+
+ <p>FreeBSD 6-CURRENT 在 2005 年 7 月的快照版本發佈了。
+ 這應該是 RELENG_6 分支創建前的最後一個 6.0-CURRENT 快照版本。
+ FreeBSD 交付工程組發佈了 5-STABLE 和 6-CURRENT
+ 以鼓勵人們測試其中的新功能,並改善其可靠性。
+ 要了解更進一步的細節,請參見
+ <a href="&enbase;/snapshots/index.html">快照主頁</a>。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>1</name>
+
+ <event>
+ <p>新增 committer: <a
+ href="mailto:wsalamon@FreeBSD.org">Wayne Salamon</a>
+ (src)</p>
+ </event>
+ </day>
+ </month>
+
+ <month>
+ <name>6</name>
+
+ <day>
+ <name>17</name>
+
+ <event>
+ <p>新增志願者: <a
+ href="mailto:matteo@FreeBSD.org">Matteo Riondato</a>
+ (PR database)</p>
+ </event>
+
+ <event>
+ <p>新增 committer: <a
+ href="mailto:kmacy@FreeBSD.org">Kip Macy</a>
+ (src)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>11</name>
+
+ <event>
+ <title>6.0-RELEASE 原始碼凍結開始</title>
+
+ <p><a href="&enbase;/releases/6.0R/schedule.html">FreeBSD
+ 6.0</a> 原始碼凍結開始了。 開發人員在 src/ 的 HEAD 分支上提交原始碼之前,
+ 必須首先得到 re@FreeBSD.org 的許可。 您可以從 FTP 站點下載
+ 6.0 的最新快照版本,並幫助測試這個新的 FreeBSD 主要版本。
+ 要了解進一步的資訊,請參見網站的 <a
+ href="&enbase;/releng/index.html">交付工程</a> 部分。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>1</name>
+
+ <event>
+ <title>受資助的在校生編碼工作機會</title>
+
+ <p>FreeBSD Project 很高興地參加了 Google 的
+ <a href="http://code.google.com/summerofcode.html">Summer
+ of Code 2005</a> 計劃,為將在暑期參與開源軟體計劃的在校學生提供資助。
+ FreeBSD 專屬的計劃列表和候選導師可以在 <a
+ href="&enbase;/projects/summerofcode.html">這裡</a> 找到。</p>
+ </event>
+
+ <event>
+ <p>新增 committer: <a
+ href="mailto:brd@FreeBSD.org">Brad Davis</a>
+ (doc)</p>
+ </event>
+ </day>
+ </month>
+
+ <month>
+ <name>5</name>
+
+ <day>
+ <name>26</name>
+
+ <event>
+ <p>新增 committer: <a
+ href="mailto:thompsa@FreeBSD.org">Andrew Thompson</a>
+ (src)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>21</name>
+
+ <event>
+ <p>新增 committer: <a
+ href="mailto:rodrigc@FreeBSD.org">Craig Rodrigues</a>
+ (src)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>15</name>
+
+ <event>
+ <title>BSDCan 大會總結</title>
+
+ <p>在渥太華的又一次 <a href="http://www.bsdcan.org">BSD
+ conference</a> 盛會已經圓滿結束了。 此前舉行了為期兩天的 FreeBSD
+ 開發人員峰會。 特別感謝 Dan Langille 組織本次會議,以及由
+ Scott Long 組織的峰會。</p>
+
+ </event>
+ </day>
+
+ <day>
+ <name>9</name>
+
+ <event>
+ <title>FreeBSD 5.4-RELEASE 正式發佈了</title>
+
+ <p><a href="&enbase;/releases/5.4R/announce.html">FreeBSD
+ 5.4-RELEASE</a> 正式發佈了。 安裝前,請查看 <a
+ href="&enbase;/releases/5.4R/errata.html">發行勘誤</a>
+ 以了解 5.4 上新發現的問題。 <a
+ href="&enbase;/releases/index.html">發行版資訊</a>
+ 網頁提供了關於 FreeBSD 發行版的更多資訊。</p>
+
+ </event>
+ </day>
+
+ <day>
+ <name>3</name>
+
+ <event>
+ <title>FreeBSD 5.4-RC4 版發佈了</title>
+
+ <p>FreeBSD 5.4-RC4 版本已經發佈。 FreeBSD 交付工程組愉快地宣布,
+ 現在 FreeBSD 5.4-RC3,FreeBSD 5.4
+ 交付工程中的第四個發行候選版本已經可用。 除非發現重大問題,
+ 這將是最後一個發行候選版本。 RC4 ISO 映像檔案,
+ 以及透過 FTP 的安裝支持,已經可以從眾多
+ <a href="http://www.FreeBSD.org/doc/zh_TW.UTF-8/books/handbook/mirrors-ftp.html"
+ >FreeBSD 鏡像站點</a> 上獲得。</p>
+ </event>
+
+ <event>
+ <title>PF 更新到了 3.7</title>
+
+ <p>packet filter (pf) 原始碼已經被更新為即將發佈的
+ OpenBSD 3.7 相同的版本。 包括嵌套 anchor 和連接速率限制,
+ 現在都可以為 FreeBSD 用戶直接使用了。</p>
+ </event>
+ </day>
+ </month>
+
+ <month>
+ <name>4</name>
+
+ <day>
+ <name>21</name>
+
+ <event>
+ <title>2005 年第一季度開發進度報告</title>
+
+ <p>2005 年第一季度開發進度報告共有 39 個條目,可以在 <a
+ href="&enbase;/news/status/report-jan-2005-mar-2005.html">這裡</a>訪問。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>18</name>
+
+ <event>
+ <title>FreeBSD 5.4-RC3 版發佈了</title>
+
+ <p>FreeBSD 5.4-RC3 版本已經發佈。 FreeBSD 交付工程組愉快地宣布,
+ 現在 FreeBSD 5.4-RC3,FreeBSD 5.4
+ 交付工程中的第三個發行候選版本已經可用。 RC3 ISO 映像檔案,
+ 以及透過 FTP 的安裝支持,已經可以從眾多
+ <a href="http://www.FreeBSD.org/doc/zh_TW.UTF-8/books/handbook/mirrors-ftp.html"
+ >FreeBSD 鏡像站點</a> 上獲得。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>13</name>
+
+ <event>
+ <p>新增 committer:<a
+ href="mailto:qingli@FreeBSD.org">Qing Li</a>
+ (src)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>12</name>
+
+ <event>
+ <p>新增 committer:<a
+ href="mailto:jylefort@FreeBSD.org">Jean-Yves Lefort</a>
+ (ports)</p>
+ </event>
+
+ <event>
+ <p>新增 committer:<a
+ href="mailto:lawrance@FreeBSD.org">Sam Lawrance</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>11</name>
+
+ <event>
+ <title>FreeBSD 5.4-RC2 版發佈了</title>
+
+ <p>FreeBSD 5.4-RC2 版本已經發佈。 FreeBSD 交付工程組愉快地宣布,
+ 現在 FreeBSD 5.4-RC2,FreeBSD 5.4
+ 交付工程中的第二個發行候選版本已經可用。
+ 我們鼓勵大家對這個版本進行測試,
+ 以便發現其中的遺留問題並加以修正。 RC2 ISO 映像檔案,
+ 以及透過 FTP 的安裝支持,已經可以從眾多
+ <a href="&enbase;/doc/zh_TW.UTF-8/books/handbook/mirrors-ftp.html"
+ >FreeBSD 鏡像站點</a> 上獲得。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>7</name>
+
+ <event>
+ <p>新增 committer:<a
+ href="mailto:joel@FreeBSD.org">Joel Dahl</a>
+ (doc)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>5</name>
+
+ <event>
+ <title>FreeBSD 5.4-RC1 版發佈了</title>
+
+ <p>FreeBSD 5.4-RC1 版發佈了。
+ FreeBSD 交付工程組愉快地宣布,
+ 現在 FreeBSD 5.4-RC1,FreeBSD 5.4
+ 的第一個發行候選版本已經發佈。 我們鼓勵人們幫助對其進行測試,
+ 以便發現其中的遺留問題並加以修正。 RC1 ISO 映像檔案,
+ 以及透過 FTP 的安裝支持,已經可以從眾多
+ <a href="&enbase;/doc/zh_TW.UTF-8/books/handbook/mirrors-ftp.html"
+ >FreeBSD 鏡像站點</a> 上找到。</p>
+ </event>
+ </day>
+ </month>
+
+ <month>
+ <name>3</name>
+
+ <day>
+ <name>31</name>
+
+ <event>
+ <p>增強 commit 權限:<a href="mailto:netchild@FreeBSD.org">Alexander Leidinger</a> (src, ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>20</name>
+
+ <event>
+ <title>FreeBSD 5.4-BETA1 版發佈了</title>
+
+ <p>FreeBSD 5.4-BETA1 版正式發佈了。
+ 這是 FreeBSD 5.4 發行周期的第一個 BETA 版本,Release Engineering
+ 團隊鼓勵人們幫助測試以便於在正式發佈前確定並解決任何最終的
+ bug。安裝支持的 ISO 鏡像和 FTP 可以訪問大多數的
+ <a href="http://www.FreeBSD.org/doc/zh_TW.UTF-8/books/handbook/mirrors-ftp.html"
+ >FreeBSD 鏡像站點</a>。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>17</name>
+
+ <event>
+ <title>2005 年三月版的快照發行版可用了</title>
+
+ <p>FreeBSD 6-CURRENT 的 2005 年三月快照版本現在可用了。
+ 請注意本月的快照並不包括 5-STABLE,因為很快將發佈
+ 5.4-PRERELEASE。 FreeBSD Release Engineering 團隊,
+ 透過發佈每月一次的 5-STABLE 和 6-CURRENT 快照版本,
+ 來鼓勵人們常識新特性,並提高軟體的可靠性。
+ 要了解更多細節,請訪問
+ <a href="&enbase;/snapshots/index.html">快照</a> 的網頁。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>12</name>
+
+ <event>
+ <title>GNOME 2.10.0 可以在 FreeBSD 上用了</title>
+
+ <p>GNOME 2.10.0 已經發佈,並進入了 ports tree,
+ 從而可以趕上 5.4-RELEASE 的進度了。 請務必閱讀我們的
+ <a href="&enbase;/gnome/docs/faq210.html">升級 FAQ</a>
+ 以了解關於變動、升級指導,以及已知的問題。
+ 更多資源,可以在 <a href="&enbase;/gnome/index.html">FreeBSD GNOME
+ 主頁</a> 找到。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>7</name>
+
+ <event>
+ <p>新增 committer: <a href="mailto:novel@FreeBSD.org">Roman Bogorodskiy</a> (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>3</name>
+
+ <event>
+ <p>新增 committer: <a href="mailto:damien@FreeBSD.org">Damien Bergamini</a> (src)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>1</name>
+
+ <event>
+ <p>新增 committer: <a href="mailto:jcamou@FreeBSD.org">Jesus R. Camou</a> (doc)</p>
+ </event>
+
+ <event>
+ <p>新增 committer: <a href="mailto:flz@FreeBSD.org">Florent Thoumie</a> (ports)</p>
+ </event>
+ </day>
+ </month>
+
+ <month>
+ <name>2</name>
+
+ <day>
+ <name>27</name>
+
+ <event>
+ <p>新增 committer: <a href="mailto:barner@FreeBSD.org">Simon Barner</a> (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>22</name>
+
+ <event>
+ <p><a href="http://logo-contest.FreeBSD.org/">標志設計競賽</a> 全面啟動。</p>
+ </event>
+
+ <event>
+ <p>新增 committer: <a href="mailto:avatar@FreeBSD.org">Tai-hwa Liang</a> (src)</p>
+ </event>
+ </day>
+ </month>
+
+ <month>
+ <name>1</name>
+
+ <day>
+ <name>25</name>
+ <event>
+ <title>FreeBSD 4.11-RELEASE 正式發佈了</title>
+
+ <p><a href="&enbase;/releases/4.11R/announce.html">FreeBSD
+ 4.11-RELEASE</a> 正式發佈了。 安裝之前請查看 <a
+ href="&enbase;/releases/4.11R/errata.html">發行版勘誤</a>
+ 以了解新發現的 4.11 版本的問題。 <a
+ href="&enbase;/releases/index.html">發行版資料</a>
+ 頁提供了關於 FreeBSD 發行版更為詳盡的資料。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>17</name>
+
+ <event>
+ <title>2004 年 下半年度計劃狀況報告</title>
+
+ <p>您 <a
+ href="&enbase;/news/status/report-july-2004-dec-2004.html">現在</a>
+ 就可以從包含了 44 個條目的狀況報告,來了解去年七月到十二月的計劃發展情況。</p>
+ </event>
+
+ <event>
+ <title>FreeBSD 4.11 RC3 發佈了</title>
+
+ <p>FreeBSD 4.11 的第三個發行候選版本現在已經可以使用了。 請參見
+ FreeBSD-STABLE 郵件列表上的 <a
+ href="http://docs.freebsd.org/cgi/mid.cgi?20050117020739.GA2736">這份公告</a>。
+ 完整的 4.11 發佈計劃可以在 <a
+ href="&enbase;/releases/4.11R/schedule.html">這裡</a> 找到。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>2</name>
+
+ <event>
+ <title>FreeBSD 4.11 RC2 發佈了</title>
+
+ <p>FreeBSD 4.11 的第二個發行候選版本現在已經可以使用了。 請參見
+ FreeBSD-STABLE 郵件列表上的 <a
+ href="http://docs.freebsd.org/cgi/mid.cgi?20050103054251.GA60361">這份</a>
+ 完整的公告。 完整的 4.11 發佈計劃可以在 <a
+ href="&enbase;/releases/4.11R/schedule.html">這裡</a> 找到。</p>
+ </event>
+ </day>
+ </month>
+ </year>
+
+ <year>
+ <name>2004</name>
+
+ <month>
+ <name>12</name>
+
+ <day>
+ <name>28</name>
+
+ <event>
+ <title>Mozilla 授權 FreeBSD 的 thunderbird 和 firefox ports</title>
+
+ <p><a href="http://www.mozilla.org/foundation/licensing.html">Mozilla 授權團隊</a>
+ 已經 <a href="http://people.freebsd.org/~ahze/firefox_thunderbird-approved.txt">授權</a>
+ <a href="/gnome/index.html">FreeBSD Gnome 團隊</a>
+ 使用 Firefox 和 Thunderbird 的名稱、官方圖標,
+ 以及制作官方品牌的預編譯版本。</p>
+ </event>
+ <event>
+ <p>新增 committer: <a href="mailto:sah@FreeBSD.org">Sam Hopkins</a> (src)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>23</name>
+
+ <event>
+ <title>FreeBSD 基金會季刊發佈</title>
+
+ <p>FreeBSD 基金會發佈了它的 <a
+ href="http://www.freebsdfoundation.org/press/20041221-newsletter.shtml">
+ 季刊</a>,並借此呼籲對其進行捐助以維持它的 501(c)3
+ 非盈利慈善團體地位。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>18</name>
+
+ <event>
+ <title>FreeBSD 4.11 RC1 發佈了</title>
+
+ <p>FreeBSD 4.11 的第一個發行候選版本現在已經可以使用了。 請參見
+ FreeBSD-STABLE 郵件列表上的 <a
+ href="http://docs.freebsd.org/cgi/getmsg.cgi?fetch=495816+0+archive/2004/freebsd-stable/20041219.freebsd-stable">完整公告</a>。
+ 完整的 4.11 發佈計劃可以在 <a
+ href="&enbase;/releases/4.11R/schedule.html">這裡</a> 找到。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>13</name>
+
+ <event>
+ <p>新增 committer: <a
+ href="mailto:niels@FreeBSD.org">Niels Heinen</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>6</name>
+
+ <event>
+ <p><a href="http://www.FreeSBIE.org/">FreeSBIE</a> 1.1 FreeBSD
+ Live CD 發佈了 ── 參見 <a href="http://www.freesbie.org/doc/1.1/ANNOUNCE.txt">
+ 發佈公告</a> 了解更進一步的詳情。</p>
+ </event>
+
+ <event>
+ <p>新增 committer: <a
+ href="mailto:girgen@FreeBSD.org">Palle Girgensohn</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>2</name>
+
+ <event>
+ <title>正式公告 FreeBSD 4.11 發行日程</title>
+
+ <p>FreeBSD 4.11 發行版的發行日程已經正式公告,
+ 我們的目標是在 2005 年 1 月 24 日發佈它。
+ 完整的日程表在 <a
+ href="http://www.freebsd.org/releases/4.11R/schedule.html">
+ 這裡</a>。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>1</name>
+
+ <event>
+ <p>新增 committer: <a
+ href="mailto:dumbbell@FreeBSD.org">Jean-S&#233;bastien P&#233;dron</a>
+ (src)</p>
+ </event>
+ </day>
+ </month>
+
+ <month>
+ <name>11</name>
+
+ <day>
+ <name>27</name>
+
+ <event>
+ <title>FreeBSD 商標已轉入基金會名下</title>
+
+ <p>'FreeBSD' 商標在 1996 年曾被授予由 Walnut Creek CDROM (現在的 <a
+ href="http://www.freebsdmall.com">FreeBSD Mall,
+ Inc.</a>) 使用,它現在已經轉到了 <a
+ href="http://www.freebsdfoundation.org">FreeBSD
+ 基金會</a> 名下。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>19</name>
+
+ <event>
+ <p>新增 committer: <a
+ href="mailto:carvay@FreeBSD.org">Vicente Carrasco</a>
+ (doc)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>11</name>
+
+ <event>
+ <p>新增 committer: <a
+ href="mailto:jkois@FreeBSD.org">Johann Kois</a>
+ (doc)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>7</name>
+
+ <event>
+ <title>GNOME 2.8.1 發佈了 FreeBSD 版本</title>
+
+ <p>在 FreeBSD 5.3 發佈之後,GNOME 2.8.1 已經合併到了 ports tree 中。
+ 請參見
+ <a href="&enbase;/gnome/index.html">FreeBSD GNOME
+ 主頁</a> 以獲取升級的具體步驟。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>6</name>
+
+ <event>
+ <title>FreeBSD 5.3-RELEASE 發佈了</title>
+
+ <p><a href="&enbase;/releases/5.3R/announce.html">FreeBSD
+ 5.3-RELEASE</a> 正式發佈了。 在安裝前請查看 <a
+ href="&enbase;/releases/5.3R/errata.html">發行版勘誤</a>
+ 以了解 5.3 上面新近發現的問題和新聞。 <a
+ href="&enbase;/releases/index.html">發行版資訊</a>
+ 頁面提供了更多的關於發行版的資訊。</p>
+
+ </event>
+ </day>
+ </month>
+
+ <month>
+ <name>10</name>
+
+ <day>
+ <name>31</name>
+
+ <event>
+ <title>FreeBSD 5.3-RC2 發佈了</title>
+
+ <p>FreeBSD Release Engineering Team 驕傲地宣布,
+ FreeBSD 5.3-RC2 已經可以用了。
+ 由於在 RC1 測試中發現了兩個嚴重問題,
+ 我們認為需要再發佈一個 RC 以讓這些問題的修正得到更廣泛的測試。
+ 如果沒有再出現新的嚴重問題,這將是 5.3-RELEASE
+ 之前的最後一個發行測試版本。 請參見
+ FreeBSD-CURRENT 上的完整公告,它在 <a
+ href="http://docs.freebsd.org/cgi/getmsg.cgi?fetch=219950+0+current/freebsd-current">這裡</a>。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>29</name>
+
+ <event>
+ <p>新增 committer: <a
+ href="mailto:ahze@FreeBSD.org">Michael Johnson</a> (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>16</name>
+
+ <event>
+ <p>新增 committer: <a
+ href="mailto:remko@FreeBSD.org">Remko Lodder</a> (doc)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>12</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:gnn@FreeBSD.org">George V. Neville-Neil</a>
+ (src)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>8</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:ups@FreeBSD.org">Stephan Uphoff</a>
+ (src)</p>
+ </event>
+ </day>
+
+ </month>
+
+ <month>
+ <name>9</name>
+
+ <day>
+ <name>15</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:kwm@FreeBSD.org">Koop Mast</a>
+ (ports)</p>
+ </event>
+
+ <event>
+ <p>新增 committer: <a
+ href="mailto:delphij@FreeBSD.org">李鑫</a>
+ (src, doc)</p>
+ </event>
+ </day>
+
+ </month>
+
+ <month>
+ <name>8</name>
+
+ <day>
+ <name>20</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:danfe@FreeBSD.org">Alexey Dokuchaev</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>19</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:lesi@FreeBSD.org">Dejan Lesjak</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>18</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:clsung@FreeBSD.org">宋政隆</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>10</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:marck@FreeBSD.org">Dmitry Morozovsky</a>
+ (doc)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>5</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:hq@FreeBSD.org">Herve Quiroz</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>2</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:yongari@FreeBSD.org">Pyun YongHyeon</a>
+ (src)</p>
+ </event>
+ </day>
+
+ </month>
+
+ <month>
+ <name>7</name>
+
+ <day>
+ <name>27</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:bz@FreeBSD.org">Bjoern A. Zeeb</a>
+ (src)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>26</name>
+ <event>
+ <title>2004 年五月至六月進度報告發佈</title>
+
+ <p>五月至六月的進度報告發佈了; 請參見 <a
+ href="&enbase;/news/status/status.html">進度報告 Web
+ 頁</a> 了解具體資訊。</p> </event>
+ </day>
+
+ <day>
+ <name>24</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:ssouhlal@FreeBSD.org">Suleiman Souhlal</a>
+ (PowerPC)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>23</name>
+ <event>
+ <title>FreeBSD 切換為使用 X.Org</title>
+ <p>FreeBSD-CURRENT 現在默認採用 X.Org 的 X 系統,
+ 而 XFree86 仍然繼續被支持。 欲了解如何在 -CURRENT 和 -STABLE 上升級到 X.org
+ 的詳情,請參考
+ <a href="http://lists.freebsd.org/pipermail/freebsd-current/2004-July/032267.html">
+ HEADS UP</a>。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>14</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:glebius@FreeBSD.org">Gleb Smirnoff</a>
+ (src)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>7</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:sem@FreeBSD.org">Sergey Matveychuk</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ </month>
+
+ <month>
+ <name>5</name>
+
+ <day>
+ <name>30</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:lth@FreeBSD.org">Lars Thegler</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>27</name>
+ <event>
+ <title>FreeBSD 4.10-RELEASE 正式發佈了</title>
+
+ <p><a href="&enbase;/releases/4.10R/announce.html">FreeBSD
+ 4.10-RELEASE</a> 已經正式發佈了。 在安裝之前請首先參考 <a
+ href="&enbase;/releases/4.10R/errata.html">發佈版勘誤</a>
+ 以了解關於 4.10 的最新的消息和已知問題。
+ <a
+ href="&enbase;/releases/index.html">Release Information</a>
+ 頁提供了關於 FreeBSD 發行版本的進一步資訊。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>23</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:metal@FreeBSD.org">Koichi Suzuki</a>
+ (doc)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>15</name>
+ <event>
+ <title>2004 年 3、4 月開發進度報告</title>
+
+ <p> 3、4 月開發進度報告,更多資訊請看
+ <a href="&enbase;/news/status/status.html">web狀態頁面</a>。
+ </p>
+ </event>
+ </day>
+
+ <day>
+ <name>4</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:csjp@FreeBSD.org">Christian S.J. Peron</a>
+ (src)</p>
+ </event>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:stefanf@FreeBSD.org">Stefan Farfeleder</a>
+ (src)</p>
+ </event>
+ </day>
+
+ </month>
+
+ <month>
+ <name>4</name>
+
+ <day>
+ <name>30</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:mezz@FreeBSD.org">Jeremy Messenger</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>19</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:tackerman@FreeBSD.org">Tony Ackerman</a>
+ (src)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>17</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:marius@FreeBSD.org">Marius Strobl</a>
+ (src)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>5</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:dhartmei@FreeBSD.org">Daniel Hartmeier</a>
+ (src)</p>
+ </event>
+ </day>
+
+ </month>
+
+ <month>
+ <name>3</name>
+
+ <day>
+ <name>29</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:niklas@FreeBSD.org">Niklas J. Saers</a>
+ (doc)</p>
+ </event>
+ </day>
+
+
+ <day>
+ <name>25</name>
+ <event>
+ <title>刪去了 Gallery</title>
+
+ <p>由於維護困難而收效甚微,我們決定刪去
+ <a href="&enbase;/gallery/">gallery</a> 頁面。
+ 這些內容將在兩周後刪除,今後提交的內容將不再受理。
+ 不過,這並不影響
+ <a href="&enbase;/commercial/">Commercial Gallery</a>。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>18</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:marks@FreeBSD.org">Mark Santcroos</a>
+ (src)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>17</name>
+ <event>
+ <title>2004 年一月至二月進度報告</title>
+
+ <p>一月至二月的進度報告現在發佈了; 請參見
+ <a href="&enbase;/news/status/status.html">進度報告網站</a>
+ 了解更多資訊。</p>
+ </event>
+ </day>
+ <day>
+ <name>13</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:thierry@FreeBSD.org">Thierry Thomas</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>10</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:vs@FreeBSD.org">Volker Stolz</a>
+ (ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>9</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:peadar@FreeBSD.org">Peter Edwards</a>
+ (src)</p>
+ </event>
+ </day>
+
+ </month>
+
+ <month>
+ <name>2</name>
+
+ <day>
+ <name>26</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:vkashyap@FreeBSD.org">Vinod Kashyap</a>
+ (src)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>25</name>
+ <event>
+ <title>FreeBSD 5.2.1-RELEASE 發佈了</title>
+
+ <p><a href="&enbase;/releases/5.2.1R/announce.html">FreeBSD
+ 5.2.1-RELEASE</a> 發佈了。 在安裝前,請查看 <a
+ href="&enbase;/releases/5.2.1R/errata.html">發行版勘誤</a>
+ 以了解最新消息和 5.2.1 發佈之後所發現的問題。 在 <a
+ href="&enbase;/releases/index.html">發行版資訊</a>
+ 網頁中,您可以找到更多關於 FreeBSD 發行版的資訊。</p>
+
+ </event>
+ </day>
+
+ <day>
+ <name>22</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:markus@FreeBSD.org">Markus Br&#252;ffer</a>
+ (Ports)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>17</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:rees@FreeBSD.org">Jim Rees</a>
+ (src)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>15</name>
+ <event>
+ <p>核心團隊成員辭職: <a
+ href="mailto:grog@FreeBSD.org">Greg Lehey</a> </p>
+ </event>
+ </day>
+
+ <day>
+ <name>10</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:mlaier@FreeBSD.org">Max Laier</a>
+ (src)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>2</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:le@FreeBSD.org">Lukas Ertl</a>
+ (src)</p>
+ </event>
+
+ <event>
+ <p>新增 committer: <a
+ href="mailto:pjd@FreeBSD.org">Pawel Jakub Dawidek</a>
+ (src)</p>
+ </event>
+ </day>
+
+ </month>
+
+ <month>
+ <name>1</name>
+
+ <day>
+ <name>28</name>
+
+ <event>
+ <title>2003 年十月至十二月開發進度報告</title>
+
+ <p>剛剛發表了十月至十二月的開發進度報告; 請參見
+ <a href="&enbase;/news/status/status.html">進度報告網站</a>
+ 以了解進一步的資訊。</p>
+ </event>
+ </day>
+
+ <day>
+ <name>21</name>
+ <event>
+ <p>新增 committer:<a
+ href="mailto:philip@FreeBSD.org">Philip Paeps</a>
+ (src)</p>
+ </event>
+
+ <event>
+ <p>新增 committer:<a
+ href="mailto:cperciva@FreeBSD.org">Colin Percival</a>
+ (src)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>15</name>
+ <event>
+ <p>新增 committer:<a
+ href="mailto:josef@FreeBSD.org">Josef El-Rayes</a>
+ (docs)</p>
+ </event>
+ </day>
+
+ <day>
+ <name>12</name>
+ <event>
+ <title>FreeBSD 5.2-RELEASE 正式發佈了</title>
+
+ <p><a href="&enbase;/releases/5.2R/announce.html">FreeBSD
+ 5.2-RELEASE</a> 正式發佈了。 安裝之前請查閱 <a
+ href="&enbase;/releases/5.2R/errata.html">發行版勘誤資訊</a>
+ 以便了解關於 5.2 發表之後的新聞和問題。 <a
+ href="&enbase;/releases/index.html">發行版資訊</a>
+ 提供了關於 FreeBSD 發行版的進一步資訊。</p>
+
+ </event>
+ </day>
+
+ <day>
+ <name>4</name>
+ <event>
+ <p>新增 committer: <a
+ href="mailto:viny@FreeBSD.org">Vincent Tougait</a>
+ (文件計劃)</p>
+ </event>
+ </day>
+
+ </month>
+
+ </year>
+
+</news>
diff --git a/zh_TW.Big5/share/xml/press.xml b/zh_TW.UTF-8/share/xml/press.xml
index 383bea1b68..7f7fc915f8 100644
--- a/zh_TW.Big5/share/xml/press.xml
+++ b/zh_TW.UTF-8/share/xml/press.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5" ?>
+<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE press PUBLIC "-//FreeBSD//DTD FreeBSD XML Database for Press//EN"
"http://www.FreeBSD.org/XML/www/share/xml/press.dtd">
<!--
@@ -22,36 +22,36 @@
<name>12</name>
<story>
- <name>w FreeBSD 6.1</name>
+ <name>安裝 FreeBSD 6.1</name>
<url>http://www.openaddict.com/installing_freebsd_6_1.html</url>
<site-name>OpenAddict</site-name>
<site-url>http://www.openaddict.com/</site-url>
- <date>2006 ~ 12 11 </date>
+ <date>2006 年 12 月 11 日</date>
<author>Sharaz</author>
- <p>@g FreeBSD 6.1 w˹L{ԲӤФ峹</p>
+ <p>一篇關於 FreeBSD 6.1 安裝過程的詳細介紹文章</p>
</story>
<story>
- <name>p FreeBSD 6.1 Aֳtn</name>
+ <name>部署 FreeBSD 6.1 伺服器之快速指南</name>
<url>http://www.openaddict.com/quick_and_dirty_guide_to_deploying_a_freebsd_6_1_server.html</url>
<site-name>OpenAddict</site-name>
<site-url>http://www.openaddict.com/</site-url>
- <date>2006 ~ 12 08 </date>
+ <date>2006 年 12 月 08 日</date>
<author>Rich Morgan</author>
- <p>Цptm FreeBSD 6.1 AAæbWw
- ApacheBWebminBPHP 5BMySQL 5.0B SMTP { SendmailBBind
- DNSBSNMP HΥaɶPBAȪ峹C</p>
+ <p>介紹如何配置 FreeBSD 6.1 伺服器,並在其上安裝
+ Apache、Webmin、PHP 5、MySQL 5.0、具 SMTP 身份認証的 Sendmail、Bind
+ DNS、SNMP 以及本地時間同步服務的文章。</p>
</story>
<story>
- <name>oA OSF pQѻP䤤</name>
+ <name>中國研發伺服器 OS; 聯想參與其中</name>
<url>http://www.pacificepoch.com/newsstories/82819_0_5_0_M/</url>
- <site-name>ȥ@N</site-name>
+ <site-name>彌亞世代</site-name>
<site-url>http://www.pacificepoch.com/</site-url>
- <date>2006 ~ 12 04 </date>
+ <date>2006 年 12 月 04 日</date>
<author>Zhengqian Zhou</author>
- <p>ꪺ޳(MOST)ź١AwgF@ FreeBSD-based
- A@~tΪou@C</p>
+ <p>中國的科技部(MOST)宣稱,中國已經完成了一種 FreeBSD-based
+ 的伺服器作業系統的研發工作。</p>
</story>
</month>
@@ -59,24 +59,24 @@
<name>11</name>
<story>
- <name>FreeBSD wƥ]</name>
+ <name>FreeBSD 安全事件稽核</name>
<url>http://www.securityfocus.com/columnists/422</url>
<site-name>Security Focus</site-name>
<site-url>http://www.securityfocus.com/</site-url>
- <date>2006 ~ 11 10 </date>
+ <date>2006 年 11 月 10 日</date>
<author>Federico Biancuzzi</author>
- <p> FreeBSD }oH Robert Watson N FreeBSD 6.2
- sW]֤ltΪX͡C</p>
+ <p>對 FreeBSD 開發人員 Robert Watson 就 FreeBSD 6.2
+ 中新增的稽核子系統的訪談。</p>
</story>
<story>
- <name>FreeBSD oF 6.2 Beta 3</name>
+ <name>FreeBSD 發布了 6.2 Beta 3</name>
<url>http://www.itjungle.com/tug/tug110906-story06.html</url>
<site-name>IT Jungle</site-name>
<site-url>http://www.itjungle.com/</site-url>
- <date>2006 ~ 11 9 </date>
+ <date>2006 年 11 月 9 日</date>
<author>Timothy Prickett Morgan</author>
- <p>YNo 6.2 release sDAPɤФF@ FreeBSD 7 s\C</p>
+ <p>關於即將發布的 6.2 release 的新聞,同時介紹了一些 FreeBSD 7 的新功能。</p>
</story>
</month>
@@ -84,74 +84,74 @@
<name>10</name>
<story>
- <name>~ Unix U@vG PC-BSD i|OU@ Linux</name>
+ <name>企業 Unix 的下一輪競爭: PC-BSD 可能會是下一個 Linux</name>
<url>http://www.serverwatch.com/eur/article.php/3640151</url>
<site-name>ServerWatch.com</site-name>
<site-url>http://www.serverwatch.com/</site-url>
- <date>2006 ~ 10 25 </date>
+ <date>2006 年 10 月 25 日</date>
<author>Brian Proffitt</author>
- <p> iXsystems FreeBSD-based PC-BSD iC</p>
+ <p>關於 iXsystems 收購 FreeBSD-based 的 PC-BSD 的交易公告的說明。</p>
</story>
<story>
- <name>iXsystems PC-BSD</name>
+ <name>iXsystems 為何收購 PC-BSD</name>
<url>http://www.onlamp.com/pub/a/bsd/2006/10/23/ixsystems-pc-bsd.html</url>
<site-name>OnLamp.com</site-name>
<site-url>http://www.onlamp.com/</site-url>
- <date>2006 ~ 10 23 </date>
+ <date>2006 年 10 月 23 日</date>
<author>Dru Lavigne</author>
- <p>@gN iXsystems Inc. PC-BSD w Kris Moore M Matt Olander
- X͡C</p>
+ <p>一篇就 iXsystems Inc. 收購 PC-BSD 的針對 Kris Moore 和 Matt Olander
+ 的訪談。</p>
</story>
<story>
- <name>QεƧ޳Nc NAS ]</name>
+ <name>利用虛擬化技術構建 NAS 設備</name>
<url>http://www.itweek.co.uk/2166671</url>
<site-name>IT Week</site-name>
<site-url>http://www.itweek.co.uk/</site-url>
- <date>2006 ~ 10 18 </date>
+ <date>2006 年 10 月 18 日</date>
<author>Alan Stevens</author>
- <p>b VMWare Q FreeBSD-based FreeNAS إ߱zۤvsx]ơC</p>
+ <p>在 VMWare 虛擬機中利用 FreeBSD-based 的 FreeNAS 建立您自己的虛擬網路存儲設備。</p>
</story>
<story>
- <name>Desktop FreeBSDG uƪ 6.x w</name>
+ <name>Desktop FreeBSD: 全面優化的 6.x 安裝</name>
<url>http://www.ofb.biz/safari/article/402.html</url>
<site-name>Open For Business</site-name>
<site-url>http://www.ofb.biz/</site-url>
- <date>2006 ~ 10 12 </date>
+ <date>2006 年 10 月 12 日</date>
<author>Ed Hurst</author>
- <p>夶ФFpuƩʯqlX () sĶ FreeBSD tΡC</p>
+ <p>本文介紹了如何為優化性能從源原始碼 (重) 編譯 FreeBSD 系統。</p>
</story>
<story>
- <name>FreeBSD-based PC-BSD QʤF</name>
+ <name>FreeBSD-based 的 PC-BSD 被收購了</name>
<url>http://www.internetnews.com/dev-news/article.php/3637341</url>
<site-name>InternetNews.com</site-name>
<site-url>http://www.internetnews.com/</site-url>
- <date>2006 ~ 10 12 </date>
+ <date>2006 年 10 月 12 日</date>
<author>Sean Michael Kerner</author>
- <p>iXsystems Inc. ʤF PC-BSD (FreeBSD-based @خୱ@~tΤӼvBz]v)C</p>
+ <p>iXsystems Inc. 收購了 PC-BSD (FreeBSD-based 的一種桌面作業系統之商標權、智慧財產權)。</p>
</story>
<story>
- <name>NªOqܬ@MK⦡Gٱưt</name>
+ <name>將舊的筆記型電腦變為一套便攜式網路故障排除系統</name>
<url>http://www.techbuilder.org/recipes/193105146</url>
<site-name>TechBuilder</site-name>
<site-url>http://www.techbuilder.org/</site-url>
- <date>2006 ~ 10 09 </date>
+ <date>2006 年 10 月 09 日</date>
<author>David S. Markowitz</author>
- <p>pªOqM FreeBSD ӫإߺʱtΡC</p>
+ <p>如何用舊的筆記型電腦和 FreeBSD 來建立網路監控系統。</p>
</story>
<story>
- <name>Desktop FreeBSDG 64줸</name>
+ <name>Desktop FreeBSD: 64位元之未來</name>
<url>http://www.ofb.biz/safari/article/400.html</url>
<site-name>Open For Business</site-name>
<site-url>http://www.ofb.biz/</site-url>
- <date>2006 ~ 10 04 </date>
+ <date>2006 年 10 月 04 日</date>
<author>Ed Hurst</author>
- <p>og峹@̤ФFإߥOHN FreeBSD-based 64 줸ୱpĪGC</p>
+ <p>這篇文章的作者介紹了建立令人滿意的 FreeBSD-based 的 64 位元桌面計算效果。</p>
</story>
</month>
@@ -159,16 +159,16 @@
<name>9</name>
<story>
- <name>Win4BSD oF</name>
+ <name>Win4BSD 發布了</name>
<url>http://win4bsd.com/content/index.php?option=com_content&amp;task=view&amp;id=20&amp;Itemid=2</url>
<site-name>Win4BSD</site-name>
<site-url>http://www.win4bsd.com/</site-url>
- <date>2006 ~ 09 25 </date>
+ <date>2006 年 09 月 25 日</date>
<author>Dan Perlman</author>
- <p>Virtual BridgesA@aQεƧ޳N{~M SMB ѨMתӤѫťo Win4BSD
- Pro Desktop&trade;C Win4BSD Pro Desktop @
- &os;/PC-BSD ε{BAä\ΤB Windows ε{MୱA
- ӵLݹ BSD xi䥦ܰʡC</p>
+ <p>Virtual Bridges,一家利用虛擬化技術實現企業和 SMB 解決方案的供應商今天宣布發布 Win4BSD
+ Pro Desktop&trade;。 Win4BSD Pro Desktop 作為
+ &os;/PC-BSD 的應用程式運行,並允許用戶運行 Windows 應用程式和桌面,
+ 而無需對 BSD 平台進行其它變動。</p>
</story>
<story>
@@ -176,29 +176,29 @@
<url>http://www.informit.com/articles/article.asp?p=607373&amp;seqNum=1&amp;rl=1</url>
<site-name>InformIT</site-name>
<site-url>http://www.informit.com/</site-url>
- <date>2006 ~ 09 22 </date>
+ <date>2006 年 09 月 22 日</date>
<author>David Chisnall</author>
- <p>ФF FreeBSD M䥦} OS asynchronous I/O {gC</p>
+ <p>介紹了 FreeBSD 和其它開源 OS 中的 asynchronous I/O 程式撰寫。</p>
</story>
<story>
- <name>DesktopBSD 1.0GΩୱ FreeBSD</name>
+ <name>DesktopBSD 1.0:用於桌面的 FreeBSD</name>
<url>http://os.newsforge.com/os/06/09/01/2053249.shtml</url>
<site-name>NewsForge</site-name>
<site-url>http://www.newsforge.com/</site-url>
- <date>2006 ~ 09 11 </date>
+ <date>2006 年 09 月 11 日</date>
<author>Stefan Vrabie</author>
- <p> DesktopBSD 1.0 סC</p>
+ <p>關於 DesktopBSD 1.0 的評論。</p>
</story>
<story>
- <name>(쪺) FreeBSD 6.1 @h</name>
+ <name>(遲到的) FreeBSD 6.1 一瞥</name>
<url>http://weblog.infoworld.com/venezia/archives/007779.html</url>
<site-name>InfoWorld</site-name>
<site-url>http://www.infoworld.com/</site-url>
- <date>2006 ~ 09 06 </date>
+ <date>2006 年 09 月 06 日</date>
<author>Paul Venezia</author>
- <p>@̤ФFϥγn RAID M PF FreeBSD-based lAM Web DC</p>
+ <p>作者介紹了使用軟體 RAID 和 PF 的 FreeBSD-based 的郵件伺服器和 Web 主機。</p>
</story>
</month>
@@ -206,56 +206,56 @@
<name>8</name>
<story>
- <name>VMware ]v Ӫ̬OH</name>
+ <name>VMware 的虛擬設備競賽 - 勝者是?</name>
<url>http://weblog.infoworld.com/virtualization/archives/2006/08/vmwares_virtual_1.html</url>
<site-name>InfoWorld</site-name>
<site-url>http://www.infoworld.com/</site-url>
- <date>2006 ~ 08 15 </date>
+ <date>2006 年 08 月 15 日</date>
<author>David Marshall</author>
- <p>FreeBSD-based FreeNAS sxAȶĹoF VMWare Inc. vɤjC</p>
+ <p>FreeBSD-based 的 FreeNAS 存儲服務項目贏得了 VMWare Inc. 的虛擬化競賽大獎。</p>
</story>
<story>
- <name>FreeBSD 6 Ŧw˥</name>
+ <name>FreeBSD 6 中的高級安裝任務</name>
<url>http://www.informit.com/articles/article.asp?p=597694&amp;rl=1</url>
<site-name>InformIT</site-name>
<site-url>http://www.informit.com</site-url>
- <date>2006~ 8 11</date>
+ <date>2006年 8月 11日</date>
<author>Brian Tiemann</author>
- <p>q "FreeBSD 6 Unleashed" Ѥ`A
- ФFDзǪ FreeBSD wˤkC</p>
+ <p>從 "FreeBSD 6 Unleashed" 書中的節錄,
+ 介紹了非標準的 FreeBSD 安裝方法。</p>
</story>
<story>
- <name>PC-BSDG Ǫ̳̤͵ OS</name>
+ <name>PC-BSD: 對初學者最友善的 OS</name>
<url>http://www.osweekly.com/index.php?option=com_content&amp;task=view&amp;id=2287&amp;Itemid=449</url>
<site-name>OSWeekly.com</site-name>
<site-url>http://www.osweekly.com/</site-url>
- <date>2006~ 8 10</date>
+ <date>2006年 8月 10日</date>
<author>Matt Hartley</author>
- <p> PC-BSD @gסAФFw˩MM޲zC</p>
+ <p>對 PC-BSD 的一篇評論,介紹了它的安裝和套件管理。</p>
</story>
<story>
- <name>ei BSD Unix </name>
+ <name>持續前進的 BSD Unix 項目</name>
<url>http://www.itjungle.com/breaking/bn080206-story01.html</url>
<site-name>ITJungle</site-name>
<site-url>http://www.itjungle.com/</site-url>
<date>2 August 2006</date>
<author>Timothy Prickett Morgan</author>
- <p>og峹DF FreeBSD project V Sparc (T1) xӪiiA
- HΦb̷sXo檩iYʤ譱iC PɡA
- ]FL BSD ت@ǶiipC</p>
+ <p>這篇文章報道了 FreeBSD project 向 Sparc (T1) 平台移植的進展,
+ 以及在最新的幾次發行版本中可伸縮性方面的改進。 同時,
+ 它也提到了其他 BSD 項目的一些進展情況。</p>
</story>
<story>
- <name>b Sun Fire X2100 Wϥ gmirror</name>
+ <name>在 Sun Fire X2100 上使用 gmirror</name>
<url>http://ezine.daemonnews.org/200608/gmirror_1.html</url>
<site-name>DaemonNews</site-name>
<site-url>http://www.daemonnews.org/</site-url>
<date>August 2006</date>
<author>Grzegorz Czaplinski</author>
- <p>pcةMU gmirror tΪgtC峹Ĥ@C</p>
+ <p>關於如何構建和卸下 gmirror 系統的兩篇系列文章的第一部分。</p>
</story>
</month>
@@ -263,48 +263,48 @@
<name>7</name>
<story>
- <name>CBC ϥζ}~I</name>
+ <name>CBC 的網站全面使用開源產品!</name>
<url>http://www.insidethecbc.com/2006/07/15/under-the-hood-at-cbcca-open-source</url>
<site-name>InsideTheCBC.com</site-name>
<site-url>http://www.insidethecbc.com/</site-url>
- <date>2006~ 7 15</date>
+ <date>2006年 7月 15日</date>
<author>Blake Crosby</author>
- <p>@g[jsqХL̦b IT ¦]Iϥ FreeBSD 峹C</p>
+ <p>一篇關於加拿大廣播公司介紹他們在 IT 基礎設施中使用 FreeBSD 的文章。</p>
</story>
<story>
- <name> NVIDIA q Andy Ritger M Christian Zander ijX</name>
+ <name>對 NVIDIA 公司 Andy Ritger 和 Christian Zander 的採訪</name>
<url>http://bsdtalk.blogspot.com/2006/07/bsdtalk054-interview-with-andy-ritger.html</url>
<site-name>BSDTalk</site-name>
<site-url>http://bsdtalk.blogspot.com/</site-url>
- <date>2006~ 7 14</date>
+ <date>2006年 7月 14日</date>
<author>Will Backman</author>
- <p>Will Backman PӦ NVIDIA Andy Ritger M Christian Zander
- N NVIDIA FreeBSD Xʵ{iFܡC
- oФFXʵ{ثeѪ\BӪipA
- ôNvM NVIDIA ѻP}ضiF@ǰQסC</p>
+ <p>Will Backman 與來自 NVIDIA 的 Andy Ritger 和 Christian Zander
+ 就 NVIDIA FreeBSD 顯示驅動程式進行了對話。
+ 這期介紹了該驅動程式目前提供的功能、未來的改進計劃,
+ 並就授權和 NVIDIA 參與開源項目進行了一些討論。</p>
</story>
<story>
- <name>ϥ DesktopBSD</name>
+ <name>使用 DesktopBSD</name>
<url>http://www.onlamp.com/pub/a/bsd/2006/07/13/FreeBSDBasics.html</url>
<site-name>OnLamp.com</site-name>
<site-url>http://www.onlamp.com/</site-url>
- <date>2006~ 7 13</date>
+ <date>2006年 7月 13日</date>
<author>Dru Lavigne</author>
- <p>og峹`JФF DesktopBSDA@ةΪwୱ FreeBSD 5.5
- C</p>
+ <p>這篇文章深入介紹了 DesktopBSD,一種易用的針對桌面的 FreeBSD 5.5
+ 版本。</p>
</story>
<story>
- <name>ΩϤߪ PC-BSD</name>
+ <name>用於社區中心的 PC-BSD</name>
<url>http://os.newsforge.com/os/06/06/23/1442207.shtml?tid=8</url>
<site-name>NewsForge</site-name>
<site-url>http://www.newsforge.com/</site-url>
- <date>2006 ~ 7 03 </date>
+ <date>2006 年 7 月 03 日</date>
<author>Henry Gillow-Wiles</author>
- <p>@aDQϤߪ IT `ʹ FreeBSD-based PC-BSD
- @~tΪtסBiaʥHεwۮeʤQNC</p>
+ <p>一家非營利社區中心的 IT 總監對於 FreeBSD-based 的 PC-BSD
+ 作業系統的速度、可靠性以及硬體相容性十分滿意。</p>
</story>
</month>
@@ -312,35 +312,35 @@
<name>6</name>
<story>
- <name>δqwM FreeBSD إ߶lAA 2 </name>
+ <name>用普通硬體和 FreeBSD 建立郵件伺服器,第 2 部分</name>
<url>http://www.techbuilder.org/article/189400686</url>
<site-name>TechBuilder</site-name>
<site-url>http://www.techbuilder.org/</site-url>
- <date>2006~ 6 12</date>
+ <date>2006年 6月 12日</date>
<author>David S. Markowitz</author>
- <p>TechBuilder oרҪĤGФFpbϥ FreeBSD M PC cتlAWA
- W[ϯfrBUl@H webmail \C</p>
+ <p>TechBuilder 這份案例的第二部分介紹了如何在使用 FreeBSD 和 PC 構建的郵件伺服器上,
+ 增加反病毒、垃圾郵件防護以及 webmail 功能。</p>
</story>
<story>
- <name>̥iaaDޤq</name>
+ <name>五月份最可靠的六家主機托管公司</name>
<url>http://news.netcraft.com/archives/2006/06/06/six_hosting_companies_most_reliable_hoster_in_may.html</url>
<site-name>Netcraft</site-name>
<site-url>http://www.netcraft.com/</site-url>
- <date>2006~ 6 06</date>
+ <date>2006年 6月 06日</date>
<author>Mandy</author>
- <p>Netcraft b 2006 ~Ҷi檺dܡA
- iaʱƦWe Internet Dޤq|aϥ FreeBSDC</p>
+ <p>Netcraft 在 2006 年五月所進行的普查顯示,
+ 可靠性排名前五的 Internet 主機托管公司中有四家使用 FreeBSD。</p>
</story>
<story>
- <name>δqwM FreeBSD إ߶lAA 1 </name>
+ <name>用普通硬體和 FreeBSD 建立郵件伺服器,第 1 部分</name>
<url>http://www.techbuilder.org/article/188701471</url>
<site-name>TechBuilder</site-name>
<site-url>http://www.techbuilder.org/</site-url>
- <date>2006~ 6 05</date>
+ <date>2006年 6月 05日</date>
<author>David S. Markowitz</author>
- <p>pϥ PC M FreeBSD p~إ߶lAC</p>
+ <p>如何使用 PC 和 FreeBSD 為中小企業建立郵件伺服器。</p>
</story>
</month>
@@ -348,78 +348,78 @@
<name>5</name>
<story>
- <name>FreeNAS ALH</name>
+ <name>FreeNAS 伺服器印象</name>
<url>http://hardware.newsforge.com/hardware/06/05/19/1349206.shtml?tid=69</url>
<site-name>NewsForge</site-name>
<site-url>http://www.newsforge.com/</site-url>
- <date>2006~ 5 30</date>
+ <date>2006年 5月 30日</date>
<author>Gary Sims</author>
- <p>@g FreeNASA@ذ FreeBSD NAS ~峹C</p>
+ <p>一篇關於 FreeNAS,一種基於 FreeBSD 的 NAS 產品的文章。</p>
</story>
<story>
- <name>DTrace b FreeBSD Wɬq</name>
+ <name>DTrace 在 FreeBSD 上的黃金時段</name>
<url>http://www.zdnet.com.au/news/software/soa/DTrace_reaches_prime_time_on_FreeBSD/0,2000061733,39257452,00.htm</url>
<site-name>ZDNet Australia</site-name>
<site-url>http://www.zdnet.com.au/</site-url>
- <date>2006~ 5 29</date>
+ <date>2006年 5月 29日</date>
<author>Renai LeMay</author>
- <p>ZDNet @g FreeBSD W DTrace 峹C</p>
+ <p>ZDNet 的一篇關於 FreeBSD 上的 DTrace 的文章。</p>
</story>
<story>
- <name>BSD M޲zt</name>
+ <name>BSD 的套件管理系統</name>
<url>http://www.informit.com/articles/article.asp?p=471098&amp;rl=1</url>
<site-name>InformIT.com</site-name>
<site-url>http://www.informit.com/</site-url>
<date>26 May 2006</date>
<author>David Chisnall</author>
- <p>@gU BSD @~tΤM޲ztΪ峹C</p>
+ <p>一篇關於各式 BSD 作業系統中套件管理系統的文章。</p>
</story>
<story>
- <name>MX FlightAware Karl Lehenbauer of</name>
+ <name>專訪 FlightAware 的 Karl Lehenbauer of</name>
<url>http://bsdtalk.blogspot.com/2006/05/bsdtalk042-interview-with-karl.html</url>
<site-name>BSDTalk</site-name>
<site-url>http://bsdtalk.blogspot.com/</site-url>
- <date>2006~ 5 15</date>
+ <date>2006年 5月 15日</date>
<author>Will Backman</author>
<p><a href="http://www.amd.com/us-en/Corporate/VirtualPressRoom/0,,51_104_566~107687,00.html">FlightAware
- ϥ FreeBSD/amd64 t</a> ΥHlܨChF 70, 000
- [ZmC Will Backman P Karl Lehenbauer
- @PQפF FlightAware p󦨥\aB FreeBSD HΨL}޳NA
- HXʨ䲣~DC</p>
+ 使用 FreeBSD/amd64 系統</a> 用以追蹤每日多達 70, 000
+ 架次的航班位置。 Will Backman 與 Karl Lehenbauer
+ 共同討論了關於 FlightAware 如何成功地運用 FreeBSD 以及其他開源技術,
+ 以驅動其產品的相關話題。</p>
</story>
<story>
- <name>FreeBSD }P Linux ୱtΤ@MU</name>
+ <name>FreeBSD 誓與 Linux 桌面系統一決高下</name>
<url>http://news.com.com/2100-1011_3-6071598.html</url>
<site-name>News.com</site-name>
<site-url>http://news.com.com/</site-url>
- <date>2006~ 5 12</date>
+ <date>2006年 5月 12日</date>
<author>Ingrid Marson</author>
- <p>ZDNet FreeBSD YNW[ୱSʪ峹C</p>
+ <p>ZDNet 關於 FreeBSD 即將增加的桌面特性的文章。</p>
</story>
<story>
- <name>FreeBSD 6.1 </name>
+ <name>FreeBSD 6.1 評論</name>
<url>http://www.softwareinreview.com/cms/content/view/37/1/</url>
<site-name>Software in review</site-name>
<site-url>http://www.softwareinreview.com/</site-url>
- <date>2006~ 5 12</date>
+ <date>2006年 5月 12日</date>
<author>Jem Matzan</author>
- <p> amd64 xW FreeBSD 6.1 סC</p>
+ <p>關於 amd64 平台上 FreeBSD 6.1 的評論。</p>
</story>
<story>
- <name>FreeBSD 6.1 íw</name>
+ <name>FreeBSD 6.1 的穩定性</name>
<url>http://www.internetnews.com/dev-news/article.php/3605211</url>
<site-name>InternetNews.com</site-name>
<site-url>http://www.internetnews.com/</site-url>
- <date>2006~ 5 10</date>
+ <date>2006年 5月 10日</date>
<author>Sean Michael Kerner</author>
- <p>@g FreeBSD ت峹AIQפF 6.1 M 5.5
- iaʩM~豱C</p>
+ <p>一篇介紹 FreeBSD 項目的文章,重點討論了 6.1 和 5.5
+ 版本的可靠性和品質控制。</p>
</story>
</month>
@@ -428,25 +428,25 @@
<name>4</name>
<story>
- <name>X͡G FreeBSD | Deb Goodkin</name>
+ <name>訪談: FreeBSD 基金會的 Deb Goodkin</name>
<url>http://blogs.ittoolbox.com/unix/bsd/archives/008670.asp</url>
- <site-name>BlogG BSD S@~ͬ</site-name>
+ <site-name>Blog: BSD 領袖一年的生活</site-name>
<site-url>http://blogs.ittoolbox.com/unix/bsd/</site-url>
- <date>2006~ 4 11</date>
+ <date>2006年 4月 11日</date>
<author>Dru Lavigne</author>
- <p>boXͤADeb Goodkin ФF@DZzP쪺 FreeBSD
- |TAΨu@C</p>
+ <p>在這次訪談中,Deb Goodkin 介紹了一些您感興趣的關於 FreeBSD
+ 基金會的資訊,及其工作內幕。</p>
</story>
<story>
- <name>X͡G FreeBSD John Baldwin</name>
+ <name>訪談: FreeBSD 的 John Baldwin</name>
<url>http://blogs.ittoolbox.com/unix/bsd/archives/008672.asp</url>
- <site-name>BlogG BSD S@~ͬ</site-name>
+ <site-name>Blog: BSD 領袖一年的生活</site-name>
<site-url>http://blogs.ittoolbox.com/unix/bsd/</site-url>
- <date>2006~ 4 10</date>
+ <date>2006年 4月 10日</date>
<author>Dru Lavigne</author>
- <p>boXͤAFreeBSD ت John Baldwin
- ФF FreeBSD }oζAHΦbj}حI᪺@ǨƱC</p>
+ <p>在這次訪談中,FreeBSD 項目的 John Baldwin
+ 介紹了 FreeBSD 開發團隊,以及在大型開源項目背後的一些事情。</p>
</story>
</month>
@@ -454,13 +454,13 @@
<name>3</name>
<story>
- <name>b FreeBSD 6 tm Linux ۮe</name>
+ <name>在 FreeBSD 6 中配置 Linux 相容環境</name>
<url>http://os.newsforge.com/os/06/03/22/1531252.shtml?tid=8&amp;tid=2</url>
<site-name>Newsforge</site-name>
<site-url>http://www.newsforge.com/</site-url>
- <date>2006~ 3 31</date>
+ <date>2006年 3月 31日</date>
<author>Gordon McEwen</author>
- <p>@pb FreeBSD 6 tmMB Linux ε{C</p>
+ <p>一份關於如何在 FreeBSD 6 中配置和運行 Linux 應用程式的說明。</p>
</story>
</month>
@@ -468,25 +468,25 @@
<name>2</name>
<story>
- <name>zL@~tΡAiLo</name>
+ <name>透過作業系統,進行網路過濾</name>
<url>http://www.onlamp.com/pub/a/bsd/2006/02/16/os_fingerprint_filtering.html</url>
<site-name>Onlamp.com</site-name>
<site-url>http://www.onlamp.com/</site-url>
- <date>2006~ 2 16</date>
+ <date>2006年 2月 16日</date>
<author>Avleen Vig</author>
- <p>zLϥ FreeBSDBpfBALTQ M squid
- ϯfrBįΩM malware zC</p>
+ <p>透過使用 FreeBSD、pf、ALTQ 和 squid
+ 使病毒、蠕蟲和 malware 遠離您的網路。</p>
</story>
<story>
- <name>}ҫnDC֦~Ʀ줧</name>
+ <name>開啟南非青少年的數位之門</name>
<url>http://www.tectonic.co.za/view.php?id=859</url>
<site-name>tectonic</site-name>
<site-url>http://www.tectonic.co.za/</site-url>
- <date>2006~ 2 08</date>
+ <date>2006年 2月 08日</date>
<author>Lunga Madlala</author>
- <p>@gbЫnDYǬ٥ Ʀ줧 FreeBSD
- ϥΪ峹C</p>
+ <p>一篇在介紹南非某些省份的 “數位之門” 中提到 FreeBSD
+ 使用的文章。</p>
</story>
</month>
@@ -494,34 +494,34 @@
<name>1</name>
<story>
- <name>BSDG t@ئۥѪ UNIX a</name>
+ <name>BSD: 另一種自由的 UNIX 家族</name>
<url>http://www.informit.com/articles/article.asp?p=439601&amp;rl=1</url>
<site-name>InformIT</site-name>
<site-url>http://www.informit.com/</site-url>
<date>20 January 2006</date>
<author>David Chisnall</author>
- <p>ж}񷽽X BSD @~tΡC</p>
+ <p>介紹開放源碼的 BSD 作業系統。</p>
</story>
<story>
- <name>X͡G BSD {pժ Dru Lavigne</name>
+ <name>訪談: BSD 認証小組的 Dru Lavigne</name>
<url>http://business.newsforge.com/business/06/01/13/173233.shtml?tid=35&amp;tid=8</url>
<site-name>Newsforge</site-name>
<site-url>http://www.newsforge.com/</site-url>
<date>20 January 2006</date>
<author>Federico Biancuzzi</author>
- <p>ijXF BSD {pաA@Ӭإ BSD @~tλ{зǦӦߪDQ´ly̡C</p>
+ <p>採訪了 BSD 認証小組,一個為建立 BSD 作業系統認証標準而成立的非營利組織的締造者。</p>
</story>
<story>
- <name>b FreeBSD WBӷ~ Linux n</name>
+ <name>在 FreeBSD 上運行商業 Linux 軟體</name>
<url>http://www.onlamp.com/pub/a/bsd/2006/01/12/Big_Scary_Daemons.html</url>
<site-name>Onlamp.com</site-name>
<site-url>http://www.onlamp.com/</site-url>
- <date>2006~ 1 12</date>
+ <date>2006年 1月 12日</date>
<author>Michael W. Lucas</author>
- <p>@̮iܤFpb FreeBSD WB欰 Linux-based
- @~tνsĶε{C</p>
+ <p>作者展示了如何在 FreeBSD 上運行為 Linux-based
+ 的作業系統編譯的應用程式。</p>
</story>
</month>
</year>
diff --git a/zh_TW.Big5/share/xml/release.l10n.ent b/zh_TW.UTF-8/share/xml/release.l10n.ent
index 3acc284a84..adebc15c3c 100644
--- a/zh_TW.Big5/share/xml/release.l10n.ent
+++ b/zh_TW.UTF-8/share/xml/release.l10n.ent
@@ -1,51 +1,53 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $FreeBSD$ -->
+
<![%beta2.testing;[
<!ENTITY beta.second '
<table xmlns="http://www.w3.org/1999/xhtml" class="tblbasic">
<thead>
<tr style="text-align: center;">
- <td colspan="2"> &amp; x</td>
- <td>o檩wɮ</td>
- <td title="ISO9660 CD 蹳"><a href="&enbase;/doc/zh_TW.Big5/books/handbook/install-diff-media.html#INSTALL-CDROM">ISO</a></td>
- <td>p</td>
- <td>ݸѨMDC</td>
+ <td colspan="2">版本 &amp; 平台</td>
+ <td>發行版安裝檔案</td>
+ <td title="ISO9660 CD 鏡像"><a href="&enbase;/doc/zh_TW.UTF-8/books/handbook/install-diff-media.html#INSTALL-CDROM">ISO</a></td>
+ <td>計劃</td>
+ <td>待解決問題列表</td>
</tr>
</thead>
<tbody>
<tr>
<td colspan="2">FreeBSD &betarel2.current;-&betarel2.vers;</td>
<td colspan="2"></td>
- <td><a href="&enbase;/releases/&betarel2.current;R/schedule.html">[d]</a></td>
- <td><a href="&enbase;/releases/&betarel2.current;R/todo.html">[d]</a></td>
+ <td><a href="&enbase;/releases/&betarel2.current;R/schedule.html">[查看]</a></td>
+ <td><a href="&enbase;/releases/&betarel2.current;R/todo.html">[查看]</a></td>
</tr>
<tr>
<td>&nbsp;&nbsp;&nbsp;</td>
<td>alpha</td>
- <td><a href="&url.rel;/alpha/&betarel2.current;-&betarel2.vers;">[wɮ]</a></td>
+ <td><a href="&url.rel;/alpha/&betarel2.current;-&betarel2.vers;">[安裝檔案]</a></td>
<td><a href="&url.rel;/alpha/ISO-IMAGES/&betarel2.current;/">[ISO]</a></td>
</tr>
<tr>
<td></td>
<td>amd64</td>
- <td><a href="&url.rel;/amd64/&betarel2.current;-&betarel2.vers;">[wɮ]</a></td>
+ <td><a href="&url.rel;/amd64/&betarel2.current;-&betarel2.vers;">[安裝檔案]</a></td>
<td><a href="&url.rel;/amd64/ISO-IMAGES/&betarel2.current;/">[ISO]</a></td>
</tr>
<tr>
<td></td>
<td>i386</td>
- <td><a href="&url.rel;/i386/&betarel2.current;-&betarel2.vers;">[wɮ]</a></td>
+ <td><a href="&url.rel;/i386/&betarel2.current;-&betarel2.vers;">[安裝檔案]</a></td>
<td><a href="&url.rel;/i386/ISO-IMAGES/&betarel2.current;/">[ISO]</a></td>
</tr>
<tr>
<td></td>
<td>ia64</td>
- <td><a href="&url.rel;/ia64/&betarel2.current;-&betarel2.vers;">[wɮ]</a></td>
+ <td><a href="&url.rel;/ia64/&betarel2.current;-&betarel2.vers;">[安裝檔案]</a></td>
<td><a href="&url.rel;/ia64/ISO-IMAGES/&betarel2.current;/">[ISO]</a></td>
</tr>
<tr>
<td></td>
<td>pc98</td>
- <td><a href="&url.rel;/pc98/&betarel2.current;-&betarel2.vers;">[wɮ]</a></td>
+ <td><a href="&url.rel;/pc98/&betarel2.current;-&betarel2.vers;">[安裝檔案]</a></td>
<td><a href="&url.rel;/pc98/ISO-IMAGES/&betarel2.current;/">[ISO]</a></td>
</tr>
<tr>
@@ -55,7 +57,7 @@
<tr>
<td></td>
<td>sparc64</td>
- <td><a href="&url.rel;/sparc64/&betarel2.current;-&betarel2.vers;">[wɮ]</a></td>
+ <td><a href="&url.rel;/sparc64/&betarel2.current;-&betarel2.vers;">[安裝檔案]</a></td>
<td><a href="&url.rel;/sparc64/ISO-IMAGES/&betarel2.current;/">[ISO]</a></td>
</tr>
</tbody>
@@ -68,51 +70,51 @@
<!ENTITY beta.desc '
<div xmlns="http://www.w3.org/1999/xhtml">
<a name="helptest"></a>
- <h2>YNoG FreeBSD U</h2>
+ <h2>為即將發佈的 FreeBSD 版本提供幫助</h2>
- <p>ڭ̪}oHM release engineers ثeb FreeBSD
- UӪVOu@F pGzƱUiաA ФU̷ssĶC
- Ъ`Noǥ蹳O]pΩեتA ]ӤbҤϥΡC</p>
+ <p>我們的開發人員和 release engineers 目前正在為 FreeBSD
+ 接下來的版本努力工作; 如果您希望幫助進行測試, 請下載最新編譯的版本。
+ 請注意這些光碟鏡像是設計用於測試目的, 因而不應在正式環境中使用。</p>
<table class="tblbasic">
<thead>
<tr style="text-align: center;">
- <td colspan="2"> &amp; x</td>
- <td>o檩wɮ</td>
- <td title="ISO9660 CD image"><a href="&enbase;/doc/zh_TW.Big5/books/handbook/install-diff-media.html#INSTALL-CDROM">ISO</a></td>
- <td>p</td>
- <td>ݸѨMDC</td>
+ <td colspan="2">版本 &amp; 平台</td>
+ <td>發行版安裝檔案</td>
+ <td title="ISO9660 CD image"><a href="&enbase;/doc/zh_TW.UTF-8/books/handbook/install-diff-media.html#INSTALL-CDROM">ISO</a></td>
+ <td>計劃</td>
+ <td>待解決問題列表</td>
</tr>
</thead>
<tbody>
<tr>
<td colspan="2">FreeBSD &betarel.current;-&betarel.vers;</td>
<td colspan="2"></td>
- <td rowspan="8"><a href="&enbase;/releases/&betarel.current;R/schedule.html">[d]</a></td>
- <td rowspan="8"><a href="&enbase;/releases/&betarel.current;R/todo.html">[d]</a></td>
+ <td rowspan="8"><a href="&enbase;/releases/&betarel.current;R/schedule.html">[查看]</a></td>
+ <td rowspan="8"><a href="&enbase;/releases/&betarel.current;R/todo.html">[查看]</a></td>
</tr>
<tr>
<td>&nbsp;&nbsp;&nbsp;</td>
<td>alpha</td>
- <td><a href="&url.rel;/alpha/&betarel.current;-&betarel.vers;">[wɮ]</a></td>
+ <td><a href="&url.rel;/alpha/&betarel.current;-&betarel.vers;">[安裝檔案]</a></td>
<td><a href="&url.rel;/alpha/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
</tr>
<tr>
<td></td>
<td>amd64</td>
- <td><a href="&url.rel;/amd64/&betarel.current;-&betarel.vers;">[wɮ]</a></td>
+ <td><a href="&url.rel;/amd64/&betarel.current;-&betarel.vers;">[安裝檔案]</a></td>
<td><a href="&url.rel;/amd64/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
</tr>
<tr>
<td></td>
<td>i386</td>
- <td><a href="&url.rel;/i386/&betarel.current;-&betarel.vers;">[wɮ]</a></td>
+ <td><a href="&url.rel;/i386/&betarel.current;-&betarel.vers;">[安裝檔案]</a></td>
<td><a href="&url.rel;/i386/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
</tr>
<tr>
<td></td>
<td>ia64</td>
- <td><a href="&url.rel;/ia64/&betarel.current;-&betarel.vers;">[wɮ]</a></td>
+ <td><a href="&url.rel;/ia64/&betarel.current;-&betarel.vers;">[安裝檔案]</a></td>
<td><a href="&url.rel;/ia64/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
</tr>
<tr>
@@ -122,7 +124,7 @@
<tr>
<td></td>
<td>sparc64</td>
- <td><a href="&url.rel;/sparc64/&betarel.current;-&betarel.vers;">[wɮ]</a></td>
+ <td><a href="&url.rel;/sparc64/&betarel.current;-&betarel.vers;">[安裝檔案]</a></td>
<td><a href="&url.rel;/sparc64/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
</tr>
</tbody>
diff --git a/zh_TW.Big5/share/xml/trademarks.ent b/zh_TW.UTF-8/share/xml/trademarks.ent
index f47039fa25..f380310060 100644
--- a/zh_TW.Big5/share/xml/trademarks.ent
+++ b/zh_TW.UTF-8/share/xml/trademarks.ent
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
Trademark Legend, as required by The Open Group, Sun, etc..
@@ -13,21 +13,21 @@
$FreeBSD$
-->
-<!ENTITY tm-attrib.3com "<para xmlns='http://docbook.org/ns/docbook'>3Com M HomeConnect O 3Com Corporation
- UӼСC</para>">
+<!ENTITY tm-attrib.3com "<para xmlns='http://docbook.org/ns/docbook'>3Com 和 HomeConnect 是 3Com Corporation
+ 的註冊商標。</para>">
<!-- An SGML entity can't start with a number... -->
<!ENTITY tm.3com "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>3Com</trademark>">
-<!ENTITY tm-attrib.3ware "<para xmlns='http://docbook.org/ns/docbook'>3ware M Escalade O 3ware Inc UӼСC
+<!ENTITY tm-attrib.3ware "<para xmlns='http://docbook.org/ns/docbook'>3ware 和 Escalade 是 3ware Inc 的註冊商標。
</para>">
<!ENTITY tm.3ware "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>3ware</trademark>">
<!-- http://www.adaptec.com/worldwide/company/compeditorial.html?prodkey=legal_copyright -->
-<!ENTITY tm-attrib.adaptec "<para xmlns='http://docbook.org/ns/docbook'>Adaptec O Adaptec, Inc. UӼСC</para>">
+<!ENTITY tm-attrib.adaptec "<para xmlns='http://docbook.org/ns/docbook'>Adaptec 是 Adaptec, Inc. 的註冊商標。</para>">
<!ENTITY adaptec "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>Adaptec</trademark>">
-<!ENTITY tm-attrib.adobe "<para xmlns='http://docbook.org/ns/docbook'>Adobe, Acrobat, Acrobat Reader, H PostScript
- O Adobe Systems Incorporated bM/ΨLaӼЩεUӼСC</para>">
+<!ENTITY tm-attrib.adobe "<para xmlns='http://docbook.org/ns/docbook'>Adobe, Acrobat, Acrobat Reader, 以及 PostScript
+ 是 Adobe Systems Incorporated 在美國和/或其他國家的商標或註冊商標。</para>">
<!ENTITY acrobat "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>Acrobat</trademark>">
<!ENTITY acrobat.reader "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>Acrobat&nbsp;Reader</trademark>">
<!ENTITY adobe "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>Adobe</trademark>">
@@ -35,8 +35,8 @@
<!-- http://www.amd.com/us-en/Trademarkinformation/0,,1435_1442,00.html -->
<!ENTITY tm-attrib.amd "<para xmlns='http://docbook.org/ns/docbook'>AMD, AMD Athlon,
-AMD Opteron, Athlon, &Eacute;lan, Opteron, M PCnet O
- Advanced Micro Devices, Inc. ӼСC</para>">
+AMD Opteron, Athlon, &Eacute;lan, Opteron, 和 PCnet 是
+ Advanced Micro Devices, Inc. 的商標。</para>">
<!ENTITY amd.athlon "<trademark xmlns='http://docbook.org/ns/docbook'>AMD&nbsp;Athlon</trademark>">
<!ENTITY amd.opteron "<trademark xmlns='http://docbook.org/ns/docbook'>AMD&nbsp;Opteron</trademark>">
<!ENTITY athlon "<trademark xmlns='http://docbook.org/ns/docbook'>Athlon</trademark>">
@@ -45,7 +45,7 @@ AMD Opteron, Athlon, &Eacute;lan, Opteron, M PCnet O
<!-- http://www.apple.com/legal/trademark/appletmlist.html -->
<!ENTITY tm-attrib.apple "<para xmlns='http://docbook.org/ns/docbook'>Apple, AirPort, FireWire, Mac, Macintosh, Mac OS,
- Quicktime, H TrueType O Apple Computer, Inc. bHΨLaUӼСC</para>">
+ Quicktime, 以及 TrueType 是 Apple Computer, Inc. 在美國以及其他國家的註冊商標。</para>">
<!ENTITY airport "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>AirPort</trademark>">
<!ENTITY apple "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>Apple</trademark>">
<!ENTITY firewire "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>FireWire</trademark>">
@@ -56,36 +56,36 @@ AMD Opteron, Athlon, &Eacute;lan, Opteron, M PCnet O
<!ENTITY quicktime "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>Quicktime</trademark>">
<!ENTITY truetype "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>TrueType</trademark>">
-<!ENTITY tm-attrib.arm "<para xmlns='http://docbook.org/ns/docbook'>ARM O ARM Limited. UӼСC</para>">
+<!ENTITY tm-attrib.arm "<para xmlns='http://docbook.org/ns/docbook'>ARM 是 ARM Limited. 的註冊商標。</para>">
<!ENTITY arm "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>ARM</trademark>">
<!-- http://www.bluetooth.com/sig/trademark.use.asp -->
<!ENTITY bluetooth "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>Bluetooth</trademark>">
-<!ENTITY tm-attrib.cisco "<para xmlns='http://docbook.org/ns/docbook'>Cisco, Catalyst, M IOS
- O Cisco Systems, Inc. M/ΨݾcbM@ǨLaUӼСC</para>">
+<!ENTITY tm-attrib.cisco "<para xmlns='http://docbook.org/ns/docbook'>Cisco, Catalyst, 和 IOS
+ 是 Cisco Systems, Inc. 和/或其附屬機構在美國和一些其他國家的註冊商標。</para>">
<!ENTITY catalyst "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>Catalyst</trademark>">
<!ENTITY ios "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>IOS</trademark>">
-<!ENTITY tm-attrib.corel "<para xmlns='http://docbook.org/ns/docbook'>Corel M WordPerfect O Corel Corporation
- M/Ψlqb[jBM/ΨLaUӼСC</para>">
+<!ENTITY tm-attrib.corel "<para xmlns='http://docbook.org/ns/docbook'>Corel 和 WordPerfect 是 Corel Corporation
+ 和/或其子公司在加拿大、美國和/或其他國家的註冊商標。</para>">
<!ENTITY wordperfect "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>WordPerfect</trademark>">
<!-- http://www.coverity.com/html/press_story45_07_25_07.html -->
-<!ENTITY tm-attrib.coverity "<para xmlns='http://docbook.org/ns/docbook'>Coverity OUӼСC
- Coverity ExtendBCoverity PreventBCoverity Prevent SQS O Coverity, Inc.
-UӼСC</para>">
+<!ENTITY tm-attrib.coverity "<para xmlns='http://docbook.org/ns/docbook'>Coverity 是註冊商標。
+而 Coverity Extend、Coverity Prevent、Coverity Prevent SQS 是 Coverity, Inc.
+的註冊商標。</para>">
<!ENTITY coverity "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>Coverity</trademark>">
<!ENTITY coverity.prevent "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>Coverity Prevent</trademark>">
<!-- http://www.creative.com/legal.asp -->
-<!ENTITY tm-attrib.creative "<para xmlns='http://docbook.org/ns/docbook'>Sound Blaster O
- Creative Technology Ltd. bM/ΨLaUӼСC</para>">
+<!ENTITY tm-attrib.creative "<para xmlns='http://docbook.org/ns/docbook'>Sound Blaster 是
+ Creative Technology Ltd. 在美國和/或其他國家的註冊商標。</para>">
<!ENTITY soundblaster "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>SoundBlaster</trademark>">
<!-- http://www.cvsup.org/ -->
-<!ENTITY tm-attrib.cvsup "<para xmlns='http://docbook.org/ns/docbook'>CVSup O
- John D. Polstra UӼСC</para>">
+<!ENTITY tm-attrib.cvsup "<para xmlns='http://docbook.org/ns/docbook'>CVSup 是
+ John D. Polstra 的註冊商標。</para>">
<!-- http://www.dell.com/us/en/gen/misc/policy_007_policy.htm -->
<!ENTITY dell "<trademark xmlns='http://docbook.org/ns/docbook'>Dell</trademark>">
@@ -95,16 +95,16 @@ AMD Opteron, Athlon, &Eacute;lan, Opteron, M PCnet O
<!ENTITY epson.perfection "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>EPSON
Perfection</trademark>">
-<!ENTITY tm-attrib.freebsd "<para xmlns='http://docbook.org/ns/docbook'>FreeBSD O FreeBSD|UӼ</para>">
+<!ENTITY tm-attrib.freebsd "<para xmlns='http://docbook.org/ns/docbook'>FreeBSD 是 FreeBSD基金會的註冊商標</para>">
<!-- http://www.heidelberg.com/hq/eng/small_print/trademarks.asp -->
<!ENTITY tm-attrib.heidelberger "<para xmlns='http://docbook.org/ns/docbook'>Heidelberg, Helvetica,
- Palatino, M Times Roman O Heidelberger Druckmaschinen AG bHΨLaӼЩεUӼСC</para>">
+ Palatino, 和 Times Roman 是 Heidelberger Druckmaschinen AG 在美國以及其他國家的商標或註冊商標。</para>">
-<!ENTITY tm-attrib.ibm "<para xmlns='http://docbook.org/ns/docbook'>IBM, AIX, OS/2, PowerPC, PS/2, S/390, M ThinkPad O
- ڰӥξqbMLaUӼЩΰӼСC</para>">
+<!ENTITY tm-attrib.ibm "<para xmlns='http://docbook.org/ns/docbook'>IBM, AIX, OS/2, PowerPC, PS/2, S/390, 和 ThinkPad 是
+ 國際商用機器公司在美國和其他國家的註冊商標或商標。</para>">
<!ENTITY aix "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>AIX</trademark>">
<!ENTITY os2 "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>OS/2</trademark>">
<!ENTITY powerpc "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>PowerPC</trademark>">
@@ -112,14 +112,14 @@ AMD Opteron, Athlon, &Eacute;lan, Opteron, M PCnet O
<!ENTITY s390 "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>S/390</trademark>">
<!ENTITY thinkpad "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>ThinkPad</trademark>">
-<!ENTITY tm-attrib.ieee "<para xmlns='http://docbook.org/ns/docbook'>IEEE, POSIX, M 802 O Institute of Electrical and Electronics Engineers,
- Inc. bꪺUӼСC</para>">
+<!ENTITY tm-attrib.ieee "<para xmlns='http://docbook.org/ns/docbook'>IEEE, POSIX, 和 802 是 Institute of Electrical and Electronics Engineers,
+ Inc. 在美國的註冊商標。</para>">
<!ENTITY posix "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>POSIX</trademark>">
<!-- http://www.intel.com/intel/legal/tmnouns2.htm -->
<!ENTITY tm-attrib.intel "<para xmlns='http://docbook.org/ns/docbook'>Intel, Celeron, EtherExpress, i386,
- i486, Itanium, Pentium, M Xeon O Intel Corporation
- ΨcbMLaӼЩεUӼСC</para>">
+ i486, Itanium, Pentium, 和 Xeon 是 Intel Corporation
+ 及其分支機構在美國和其他國家的商標或註冊商標。</para>">
<!ENTITY celeron "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>Celeron</trademark>">
<!ENTITY etherexpress "<trademark xmlns='http://docbook.org/ns/docbook'>EtherExpress</trademark>">
<!ENTITY i386 "<trademark xmlns='http://docbook.org/ns/docbook'>i386</trademark>">
@@ -131,39 +131,39 @@ AMD Opteron, Athlon, &Eacute;lan, Opteron, M PCnet O
<!ENTITY core "<trademark xmlns='http://docbook.org/ns/docbook'>Core</trademark>">
<!-- http://www.quicken.com/support/trademark/ -->
-<!ENTITY tm-attrib.intuit "<para xmlns='http://docbook.org/ns/docbook'>Intuit M Quicken O Intuit Inc., ΨlqbMLaӼЩεUӼСC</para>">
+<!ENTITY tm-attrib.intuit "<para xmlns='http://docbook.org/ns/docbook'>Intuit 和 Quicken 是 Intuit Inc., 或其子公司在美國和其他國家的商標或註冊商標。</para>">
-<!ENTITY tm-attrib.iomega "<para xmlns='http://docbook.org/ns/docbook'>Iomega, Zip, M Jaz O Iomega Corporation
- bM/ΨLaӼЩεUӼСC</para>">
+<!ENTITY tm-attrib.iomega "<para xmlns='http://docbook.org/ns/docbook'>Iomega, Zip, 和 Jaz 是 Iomega Corporation
+ 在美國和/或其他國家的商標或註冊商標。</para>">
<!ENTITY iomegazip "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>Zip</trademark>">
<!ENTITY jaz "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>Jaz</trademark>">
-<!ENTITY tm-attrib.lantronix "<para xmlns='http://docbook.org/ns/docbook'>Lantronix M EasyIO O Lantronix Corporation ӼСC</para>">
+<!ENTITY tm-attrib.lantronix "<para xmlns='http://docbook.org/ns/docbook'>Lantronix 和 EasyIO 是 Lantronix Corporation 的商標。</para>">
<!ENTITY easyio "<trademark xmlns='http://docbook.org/ns/docbook'>EasyIO</trademark>">
<!-- http://www.linuxmark.org/ -->
-<!ENTITY tm-attrib.linux "<para xmlns='http://docbook.org/ns/docbook'>Linux O Linus Torvalds UӼСC</para>">
+<!ENTITY tm-attrib.linux "<para xmlns='http://docbook.org/ns/docbook'>Linux 是 Linus Torvalds 的註冊商標。</para>">
<!ENTITY linux "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>Linux</trademark>">
<!-- http://www.lsilogic.com/trademrk.html -->
<!ENTITY tm-attrib.lsilogic "<para xmlns='http://docbook.org/ns/docbook'>LSI Logic, AcceleRAID, eXtremeRAID,
- MegaRAID M Mylex O LSI
- Logic Corp ӼЩεUӼСC</para>">
+ MegaRAID 和 Mylex 是 LSI
+ Logic Corp 的商標或註冊商標。</para>">
<!ENTITY acceleraid "<trademark xmlns='http://docbook.org/ns/docbook'>AcceleRAID</trademark>">
<!ENTITY megaraid "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>MegaRAID</trademark>">
<!ENTITY mylex "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>Mylex</trademark>">
-<!ENTITY tm-attrib.macromedia "<para xmlns='http://docbook.org/ns/docbook'>Macromedia, Flash, H Shockwave
- Macromedia, Inc. bM/ΨLaӼЩεUӼСC</para>">
+<!ENTITY tm-attrib.macromedia "<para xmlns='http://docbook.org/ns/docbook'>Macromedia, Flash, 以及 Shockwave
+ Macromedia, Inc. 在美國和/或其他國家的商標或註冊商標。</para>">
<!ENTITY flash "<trademark xmlns='http://docbook.org/ns/docbook'>Flash</trademark>">
<!ENTITY macromedia "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>Macromedia</trademark>">
<!ENTITY tm-attrib.microsoft "<para xmlns='http://docbook.org/ns/docbook'>Microsoft, IntelliMouse, MS-DOS,
- Outlook, Windows, Windows Media, M Windows NT O Microsoft Corporation
- bM/ΨLaӼЩεUӼСC</para>">
+ Outlook, Windows, Windows Media, 和 Windows NT 是 Microsoft Corporation
+ 在美國和/或其他國家的商標或註冊商標。</para>">
<!ENTITY intellimouse "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>IntelliMouse</trademark>">
<!ENTITY microsoft "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>Microsoft</trademark>">
<!ENTITY microsoft.windows "&microsoft;&nbsp;&windows;">
@@ -175,85 +175,85 @@ AMD Opteron, Athlon, &Eacute;lan, Opteron, M PCnet O
<!ENTITY windowsnt "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>Windows&nbsp;NT</trademark>">
<!ENTITY windowsxp "&windows;&nbsp;XP">
-<!ENTITY tm-attrib.mips "<para xmlns='http://docbook.org/ns/docbook'>MIPS M R4000 O MIPS Technologies, Inc.
- bHΨLaUӼСC</para>">
+<!ENTITY tm-attrib.mips "<para xmlns='http://docbook.org/ns/docbook'>MIPS 和 R4000 是 MIPS Technologies, Inc.
+ 在美國以及其他國家的註冊商標。</para>">
<!ENTITY mips "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>MIPS</trademark>">
<!-- http://www.mysql.com/company/trademark.html -->
<!ENTITY mysql "<trademark xmlns='http://docbook.org/ns/docbook'>MySQL</trademark>">
<!-- http://www.m-sys.com/content/LegalTerms.asp -->
-<!ENTITY tm-attrib.m-systems "<para xmlns='http://docbook.org/ns/docbook'>M-Systems M DiskOnChip O M-Systems Flash Disk
- Pioneers, Ltd. ӼЩεUӼСC</para>">
+<!ENTITY tm-attrib.m-systems "<para xmlns='http://docbook.org/ns/docbook'>M-Systems 和 DiskOnChip 是 M-Systems Flash Disk
+ Pioneers, Ltd. 的商標或註冊商標。</para>">
<!ENTITY diskonchip "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>DiskOnChip</trademark>">
<!-- http://www.netbsd.org/Misc/about.html, ack'd by http://www.uspto.gov/ -->
-<!ENTITY tm-attrib.netbsd "<para xmlns='http://docbook.org/ns/docbook'>NetBSDO NetBSD FoundationUӼСC</para>">
+<!ENTITY tm-attrib.netbsd "<para xmlns='http://docbook.org/ns/docbook'>NetBSD是 NetBSD Foundation的註冊商標。</para>">
-<!ENTITY tm-attrib.netscape "<para xmlns='http://docbook.org/ns/docbook'>Netscape H Netscape&nbsp;Navigator
- O Netscape Communications Corporation bMLaUӼСC</para>">
+<!ENTITY tm-attrib.netscape "<para xmlns='http://docbook.org/ns/docbook'>Netscape 以及 Netscape&nbsp;Navigator
+ 是 Netscape Communications Corporation 在美國和其他國家的註冊商標。</para>">
<!ENTITY netscape "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>Netscape</trademark>">
<!ENTITY netscape.navigator "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>Netscape Navigator</trademark>">
<!-- http://www.nexthop.com/legal.shtml -->
-<!ENTITY tm-attrib.nexthop "<para xmlns='http://docbook.org/ns/docbook'>GateD M NextHop O NextHop bMLaӼЩεUӼСC</para>">
+<!ENTITY tm-attrib.nexthop "<para xmlns='http://docbook.org/ns/docbook'>GateD 和 NextHop 是 NextHop 在美國和其他國家的商標或註冊商標。</para>">
<!ENTITY gated "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>GateD</trademark>">
-<!ENTITY tm-attrib.opengroup "<para xmlns='http://docbook.org/ns/docbook'>Motif, OSF/1, M UNIX
- O The Open Group bMLaUӼСF IT DialTone M The Open Group
- OӼСC</para>">
-<!ENTITY tm-attrib.unix "<para xmlns='http://docbook.org/ns/docbook'>UNIXO Open Group
- bM䥦aUӼСC</para>">
+<!ENTITY tm-attrib.opengroup "<para xmlns='http://docbook.org/ns/docbook'>Motif, OSF/1, 和 UNIX
+ 是 The Open Group 在美國和其他國家的註冊商標; IT DialTone 和 The Open Group
+ 是其商標。</para>">
+<!ENTITY tm-attrib.unix "<para xmlns='http://docbook.org/ns/docbook'>UNIX是 Open Group
+ 在美國和其它國家的註冊商標。</para>">
<!ENTITY motif "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>Motif</trademark>">
<!ENTITY unix "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>UNIX</trademark>">
<!-- http://www.oracle.com/html/trademark.html -->
<!-- http://www.oracle.com/html/3party.html -->
-<!ENTITY tm-attrib.oracle "<para xmlns='http://docbook.org/ns/docbook'>Oracle O Oracle Corporation UӼСC</para>">
+<!ENTITY tm-attrib.oracle "<para xmlns='http://docbook.org/ns/docbook'>Oracle 是 Oracle Corporation 的註冊商標。</para>">
<!ENTITY oracle "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>Oracle</trademark>">
<!-- http://www.powerquest.com/legal/ -->
-<!ENTITY tm-attrib.powerquest "<para xmlns='http://docbook.org/ns/docbook'>PowerQuest M PartitionMagic O
- PowerQuest Corporation bM/ΨLaUӼСC</para>">
+<!ENTITY tm-attrib.powerquest "<para xmlns='http://docbook.org/ns/docbook'>PowerQuest 和 PartitionMagic 是
+ PowerQuest Corporation 在美國和/或其他國家的註冊商標。</para>">
<!ENTITY partitionmagic "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>PartitionMagic</trademark>">
<!-- http://www.qualcomm.com/main/legal.html -->
-<!ENTITY tm-attrib.qualcomm "<para xmlns='http://docbook.org/ns/docbook'>QUALCOMM M Eudora O QUALCOMM Incorporated
- UӼСC</para>">
+<!ENTITY tm-attrib.qualcomm "<para xmlns='http://docbook.org/ns/docbook'>QUALCOMM 和 Eudora 是 QUALCOMM Incorporated
+ 的註冊商標。</para>">
<!ENTITY eudora "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>Eudora</trademark>">
<!-- http://www.realnetworks.com/company/logos/policy.html -->
-<!ENTITY tm-attrib.realnetworks "<para xmlns='http://docbook.org/ns/docbook'>RealNetworks, RealPlayer, M
- RealAudio O RealNetworks, Inc. UӼСC</para>">
+<!ENTITY tm-attrib.realnetworks "<para xmlns='http://docbook.org/ns/docbook'>RealNetworks, RealPlayer, 和
+ RealAudio 是 RealNetworks, Inc. 的註冊商標。</para>">
<!ENTITY realplayer "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>RealPlayer</trademark>">
<!-- Note: RedHat doesn't use (r)/(tm) for their own trademarks -->
<!-- http://www.redhat.com/legal/legal_statement.html -->
-<!ENTITY tm-attrib.redhat "<para xmlns='http://docbook.org/ns/docbook'>Red Hat, RPM, O Red Hat, Inc.
- bMLaUӼСC</para>">
+<!ENTITY tm-attrib.redhat "<para xmlns='http://docbook.org/ns/docbook'>Red Hat, RPM, 是 Red Hat, Inc.
+ 在美國和其他國家的註冊商標。</para>">
-<!ENTITY tm-attrib.sap "<para xmlns='http://docbook.org/ns/docbook'>SAP, R/3, M mySAP O SAP AG
- bwHγ\hLaӼЩεUӼСC</para>">
+<!ENTITY tm-attrib.sap "<para xmlns='http://docbook.org/ns/docbook'>SAP, R/3, 和 mySAP 是 SAP AG
+ 在德國以及許多其他國家的商標或註冊商標。</para>">
<!ENTITY r3 "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>R/3</trademark>">
<!ENTITY sap "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>SAP</trademark>">
<!ENTITY sap.r3 "&sap;&nbsp;&r3;">
-<!ENTITY tm-attrib.sgi "<para xmlns='http://docbook.org/ns/docbook'>Silicon Graphics, SGI, M OpenGL O Silicon
- Graphics, Inc. bM/ΨLaUӼСC</para>">
+<!ENTITY tm-attrib.sgi "<para xmlns='http://docbook.org/ns/docbook'>Silicon Graphics, SGI, 和 OpenGL 是 Silicon
+ Graphics, Inc. 在美國和/或其他國家的註冊商標。</para>">
<!ENTITY opengl "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>OpenGL</trademark>">
-<!ENTITY tm-attrib.sparc "<para xmlns='http://docbook.org/ns/docbook'>Sparc, Sparc64, H
- UltraSPARC O SPARC International, Inc bMLaӼСC
- Sun Microsystems, Inc. Ҷ}o[cA]t SPARC ӼЪ~C</para>">
+<!ENTITY tm-attrib.sparc "<para xmlns='http://docbook.org/ns/docbook'>Sparc, Sparc64, 以及
+ UltraSPARC 是 SPARC International, Inc 在美國和其他國家的商標。
+ 為 Sun Microsystems, Inc. 所開發的架構,包含 SPARC 商標的產品。</para>">
<!ENTITY sparc "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>Sparc</trademark>">
<!ENTITY sparc64 "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>Sparc64</trademark>">
<!ENTITY ultrasparc "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>UltraSPARC</trademark>">
<!-- http://www.sun.com/suntrademarks/ -->
<!ENTITY tm-attrib.sun "<para xmlns='http://docbook.org/ns/docbook'>Sun, Sun Microsystems, Java, Java Virtual Machine, JDK, JSP, JVM, Netra, Solaris, StarOffice
- M SunOS O
- Sun Microsystems, Inc. bMLaӼЩεUӼСC</para>">
+ 和 SunOS 是
+ Sun Microsystems, Inc. 在美國和其他國家的商標或註冊商標。</para>">
<!ENTITY java "<trademark xmlns='http://docbook.org/ns/docbook'>Java</trademark>">
<!ENTITY java.virtual.machine "<trademark xmlns='http://docbook.org/ns/docbook'>Java Virtual Machine</trademark>">
<!ENTITY jdk "<trademark xmlns='http://docbook.org/ns/docbook'>JDK</trademark>">
@@ -267,44 +267,44 @@ AMD Opteron, Athlon, &Eacute;lan, Opteron, M PCnet O
<!ENTITY sunos "<trademark xmlns='http://docbook.org/ns/docbook'>SunOS</trademark>">
<!-- http://www.symantec.com/legal/legal_note.html -->
-<!ENTITY tm-attrib.symantec "<para xmlns='http://docbook.org/ns/docbook'>Symantec M Ghost O
- Symantec Corporation bMLaUӼСC</para>">
+<!ENTITY tm-attrib.symantec "<para xmlns='http://docbook.org/ns/docbook'>Symantec 和 Ghost 是
+ Symantec Corporation 在美國和其他國家的註冊商標。</para>">
<!-- http://www.mathworks.com/company/trademarks.shtml -->
-<!ENTITY tm-attrib.themathworks "<para xmlns='http://docbook.org/ns/docbook'>MATLAB O
- The MathWorks, Inc. UӼСC</para>">
+<!ENTITY tm-attrib.themathworks "<para xmlns='http://docbook.org/ns/docbook'>MATLAB 是
+ The MathWorks, Inc. 的註冊商標。</para>">
<!ENTITY matlab "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>MATLAB</trademark>">
-<!ENTITY tm-attrib.thomson "<para xmlns='http://docbook.org/ns/docbook'>SpeedTouch O Thomson ӼСC</para>">
+<!ENTITY tm-attrib.thomson "<para xmlns='http://docbook.org/ns/docbook'>SpeedTouch 是 Thomson 的商標。</para>">
<!ENTITY speedtouch "<trademark xmlns='http://docbook.org/ns/docbook'>SpeedTouch</trademark>">
<!-- http://www.usr.com/adbuilder/ab-usage-guidelines.asp -->
<!-- http://www.usr.com/adbuilder/ab-tips-trade-ref.asp -->
-<!ENTITY tm-attrib.usrobotics "<para xmlns='http://docbook.org/ns/docbook'>U.S. Robotics M Sportster O U.S. Robotics Corporation UӼСC</para>">
+<!ENTITY tm-attrib.usrobotics "<para xmlns='http://docbook.org/ns/docbook'>U.S. Robotics 和 Sportster 是 U.S. Robotics Corporation 的註冊商標。</para>">
<!ENTITY sportster "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>Sportster</trademark>">
<!ENTITY usrobotics "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>U.S. Robotics</trademark>">
<!-- http://www.maplesoft.com/trademarks.shtml -->
-<!ENTITY tm-attrib.waterloomaple "<para xmlns='http://docbook.org/ns/docbook'>Waterloo Maple M Maple O Waterloo Maple Inc ӼЩεUӼ</para>">
+<!ENTITY tm-attrib.waterloomaple "<para xmlns='http://docbook.org/ns/docbook'>Waterloo Maple 和 Maple 是 Waterloo Maple Inc 的商標或註冊商標</para>">
<!ENTITY maple "<trademark xmlns='http://docbook.org/ns/docbook'>Maple</trademark>">
<!-- http://www.wolfram.com/company/terms.html -->
-<!ENTITY tm-attrib.wolframresearch "<para xmlns='http://docbook.org/ns/docbook'>Mathematica O Wolfram Research, Inc UӼСC</para>">
+<!ENTITY tm-attrib.wolframresearch "<para xmlns='http://docbook.org/ns/docbook'>Mathematica 是 Wolfram Research, Inc 的註冊商標。</para>">
<!ENTITY mathematica "<trademark xmlns='http://docbook.org/ns/docbook' class='registered'>Mathematica</trademark>">
<!-- http://www.vmware.com/legal.html -->
-<!ENTITY tm-attrib.vmware "<para xmlns='http://docbook.org/ns/docbook'>VMware O VMware,
- Inc. Ӽ</para>">
+<!ENTITY tm-attrib.vmware "<para xmlns='http://docbook.org/ns/docbook'>VMware 是 VMware,
+ Inc. 的商標</para>">
<!-- http://www.xensource.com/xen-tm-faq.html -->
<!ENTITY xen "<trademark xmlns='http://docbook.org/ns/docbook'>Xen</trademark>">
-<!ENTITY tm-attrib.xfree86 "<para xmlns='http://docbook.org/ns/docbook'>XFree86 O The
- XFree86 Project, Inc ӼСC.</para>">
+<!ENTITY tm-attrib.xfree86 "<para xmlns='http://docbook.org/ns/docbook'>XFree86 是 The
+ XFree86 Project, Inc 的商標。.</para>">
<!ENTITY xfree86 "<trademark xmlns='http://docbook.org/ns/docbook'>XFree86</trademark>">
<!-- http://www.xiph.org/ -->
-<!ENTITY tm-attrib.xiph "<para xmlns='http://docbook.org/ns/docbook'>Ogg Vorbis M Xiph.Org O Xiph.Org ӼСC</para>">
+<!ENTITY tm-attrib.xiph "<para xmlns='http://docbook.org/ns/docbook'>Ogg Vorbis 和 Xiph.Org 是 Xiph.Org 的商標。</para>">
-<!ENTITY tm-attrib.general "<para xmlns='http://docbook.org/ns/docbook'>\hsyөMgPӨϥΤ@Ǻ٬ӼЪϮשΤr]pӹۤv~C
- 夤X{hӼСAH FreeBSD Project sҤHӼСA᭱NH '&trade;' '&reg;' ŸӼеC</para>">
+<!ENTITY tm-attrib.general "<para xmlns='http://docbook.org/ns/docbook'>許多製造商和經銷商使用一些稱為商標的圖案或文字設計來彰顯自己的產品。
+ 本文中出現的眾多商標,以及 FreeBSD Project 本身廣所人知的商標,後面將以 '&trade;' 或 '&reg;' 符號來標註。</para>">
diff --git a/zh_TW.Big5/share/xml/urls.ent b/zh_TW.UTF-8/share/xml/urls.ent
index d712a047fa..cf403ccd31 100644
--- a/zh_TW.Big5/share/xml/urls.ent
+++ b/zh_TW.UTF-8/share/xml/urls.ent
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="big5"?>
+<?xml version="1.0" encoding="utf-8"?>
<!-- $FreeBSD$ -->
<!--
@@ -21,7 +21,7 @@
<!ENTITY url.main "&url.base;">
<!ENTITY doc.langcode.en "en_US.ISO8859-1">
-<!ENTITY doc.langcode.default "zh_TW.Big5">
+<!ENTITY doc.langcode.default "zh_TW.UTF-8">
<!ENTITY doc.langcode "&doc.langcode.default;">
<!ENTITY url.doc.base "&url.base;/doc">